strongSwan ESP-in-UDP: når det ikkje er nokon NAT å oppdage
NAT-deteksjon finn adresseomsetjing, ikkje brannmurpolitikk. Ei nettstadstilkopling utan NAT kan likevel trengje eit eksplisitt ESP-in-UDP-val.
NAT-deteksjon svarar på eitt spørsmål: har adressene eller portane endra seg undervegs? Han svarar ikkje på om ein brannmur tillèt IP-protokoll 50. Nettstadgatewayar heilt utan omsetjing kan framleis liggje bak ein politikk som droppar native ESP, og det kravet må konfigurerast i staden for å oppdagast. Mekanismen er ESP-in-UDP, og det er ei avgjerd, ikkje ein reserve som dukkar opp av seg sjølv.
Deteksjon er aritmetikk på adresser, ikkje ein brannmursondering
IKEv2 ber NAT-deteksjonsnyttelaster med hashar av kjelde- og måladdresse og -portar. Kvar side samanliknar det ho fekk med det ho ser lokalt, og eit avvik fortel henne at noko har omsett pakken. Ingenting i den utvekslinga testar om ein ruter i midten vidaresender protokoll 50.
Den praktiske konsekvensen er verdt å seie rett ut. Ein tunnel som verka med native ESP, oppdagar ikkje sjølv ein ny restriktiv brannmur, og neste forsøk feilar i datatrinnet medan IKE held fram med å lukkast. Du vil sjå etablerte IKE-tryggleiksassosiasjonar og ingen verna trafikk, noko som ser ut som ein rutefeil til du fangar på kabelen.
Innkapsling er derfor ein eigenskap ved tilkoplinga du konfigurerer, ikkje eit resultat partane forhandlar fram frå framferda til nettet.
Korleis encap endrar utvekslinga
I ein moderne strongSwan-installasjon som blir administrert via swanctl.conf, påverkar innstillinga encap = yes på tilkoplinga NAT-deteksjonsutvekslinga slik at begge partar brukar UDP-innkapsling for ESP. Dei verna pakkane reiser deretter inne i UDP, vanlegvis på port 4500, og begge endane må bli samde om den ordninga.
connections {
site {
encap = yes
# existing approved peer, authentication and child settings
}
}
Det fragmentet høyrer heime i ein ekte tilkoplingsdefinisjon og er ikkje ein fullstendig nettstadprofil. Behald peer-adressene, autentiseringa og child-trafikkveljarane du allereie køyrer; den einaste tilføyde nøkkelen endrar korleis dei verna dataa blir pakka inn, ikkje kva dei vernar.
Rettleiinga strongSwan om NAT-traversal skildrar denne framferda, inkludert samspelet med port floating når MOBIKE blir brukt.
Bruk innstillinga som høyrer til backend-en din
strongSwan har to konfigurasjonsbackend-ar, og nøkkelen er ulik mellom dei. Ei swanctl.conf tilkopling tek encap, medan ei eldre ipsec.conf tilkopling tek forceencaps. Å setje nøkkelordet frå ein backend i den andre gjev ein konfigurasjon som blir lasta utan klager og ikkje endrar noko, noko som er verre enn ein feil.
Sjekk kva daemon som faktisk køyrer før du redigerer noko. På mange distribusjonar finst båe filene fordi den eine er ein rest frå ein tidlegare migrasjon, og den aktive er den tenesteeininga startar. Les den eininga i staden for å gjette ut frå tidsstempla til filene. Ein kontroll på fem sekund her sparer timar med testing av ei innstilling som ingenting har lasta.
Bruk endringa via eigaren av tilkoplinga og gjenopprett assosiasjonen i eit kontrollert vindauge. Eit allereie installert child held på den noverande innkapslinga si til det blir erstatta, så ei filendring åleine beviser ikkje at den nye ordninga er i bruk.
Stadfest dei innpakka dataa, ikkje berre porten
Fang på gatewayen medan verna trafikk flyt, og samanlikn det deretter med strongSwans eige bilete:
$ sudo tcpdump -ni eth0 'udp port 4500' -c 20
$ sudo swanctl --list-sas --ike site
$ sudo ip xfrm state list
Native ESP viser seg som IP-protokoll 50 og liknar slett ikkje på UDP. Innpakka ESP viser seg som UDP-datagram på 4500 der nyttelasta ikkje er IKE. IKE-trafikk på same port er ikkje prov på innkapsling, fordi MOBIKE kan flytte IKE dit medan datastien held fram som native, så les nyttelasta i staden for portnummeret.
Hugs også MTU-en til banen. Innpakkinga legg til overhead, og ein bane som bar native ESP kan trengje justeringar når pakkane veks. Naudsynt ICMP-handtering bør allereie vere del av designet; innkapsling fjernar ikkje den avhengnaden.
Godta endringa når ny applikasjonstrafikk inne i tunnelen er synleg i opptaket som innpakka ESP i båe endar, og når den indre tenesta og returvegen hennar framleis verkar. Alt mindre er ein konfigurasjon som ser rett ut i ei fil.