strongSwan ESP-in-UDP: kada nema NAT-a za otkrivanje
Otkrivanje NAT-a pronalazi prevođenje adresa, ne politiku zaštitnog zida. Veza lokacije bez NAT-a ipak može zahtijevati izričit izbor ESP-in-UDP.
Otkrivanje NAT-a odgovara na jedno pitanje: jesu li se adrese ili portovi promijenili na putu? Ne odgovara na to da li zaštitni zid dozvoljava IP protokol 50. Šluzovi lokacija bez ikakvog prevođenja i dalje mogu stajati iza politike koja odbacuje native ESP, a taj se zahtjev mora konfigurisati, a ne otkriti. Mehanizam je ESP-in-UDP i to je odluka, a ne rezervna opcija koja se pojavljuje sama.
Otkrivanje je aritmetika na adresama, a ne provjera zaštitnog zida
IKEv2 nosi korisna opterećenja otkrivanja NAT-a sa heševima adresa i portova izvora i odredišta. Svaka strana poredi ono što je primila sa onim što vidi lokalno, a nepodudarnost joj kaže da je nešto prevelo paket. Ništa u toj razmjeni ne provjerava da li ruter u sredini prosljeđuje protokol 50.
Praktičnu posljedicu vrijedi reći otvoreno. Tunel koji je radio sa native ESP neće sam otkriti novi restriktivni zaštitni zid, a njegov sljedeći pokušaj pada u fazi podataka dok IKE nastavlja uspijevati. Vidjet ćete uspostavljene IKE sigurnosne asocijacije i nema zaštićenog saobraćaja, što izgleda kao greška u rutiranju dok ne snimite na žici.
Inkapsulacija je stoga svojstvo veze koju konfigurišete, a ne ishod o kojem se strane dogovaraju na osnovu ponašanja mreže.
Kako encap mijenja razmjenu
U modernom strongSwan postavljanju kojim se upravlja putem swanctl.conf, postavka encap = yes na vezi utiče na razmjenu otkrivanja NAT-a tako da obje strane koriste UDP inkapsulaciju za ESP. Zaštićeni paketi zatim putuju unutar UDP-a, obično na portu 4500, i oba kraja moraju se dogovoriti o tom rasporedu.
connections {
site {
encap = yes
# existing approved peer, authentication and child settings
}
}
Taj fragment pripada unutar stvarne definicije veze i nije potpun profil lokacije. Zadržite adrese partnera, autentifikaciju i selektore saobraćaja child koje već koristite; jedini dodani ključ mijenja kako se zaštićeni podaci umotavaju, a ne šta štite.
Vodič strongSwan za NAT-traversal opisuje ovo ponašanje, uključujući interakciju sa plutajućim portom kada se koristi MOBIKE.
Koristite postavku koja pripada vašem backendu
strongSwan ima dva backenda za konfiguraciju, a ključ se razlikuje među njima. swanctl.conf veza prima encap, dok naslijeđena ipsec.conf veza prima forceencaps. Stavljanje ključne riječi jednog backenda u drugi stvara konfiguraciju koja se učitava bez žalbe i ništa ne mijenja, što je gore od greške.
Provjerite koji daemon zapravo radi prije bilo kakvog uređivanja. Na mnogim distribucijama postoje obje datoteke jer je jedna ostatak ranije migracije, a aktivna je ona koju pokreće servisna jedinica. Čitajte tu jedinicu umjesto da nagađate iz vremenskih oznaka datoteka. Provjera od pet sekundi ovdje sprječava sate testiranja postavke koju ništa nije učitalo.
Primijenite promjenu kroz vlasnika veze i ponovno uspostavite asocijaciju u kontroliranom prozoru. Već instalirano dijete zadržava trenutnu inkapsulaciju dok se ne zamijeni, pa samo uređivanje datoteke ne dokazuje da je novi raspored u upotrebi.
Provjerite umotane podatke, a ne samo port
Snimite na šluzu dok zaštićeni saobraćaj teče, a zatim to uporedite sa vlastitim pogledom strongSwan-a:
$ sudo tcpdump -ni eth0 'udp port 4500' -c 20
$ sudo swanctl --list-sas --ike site
$ sudo ip xfrm state list
Native ESP se pojavljuje kao IP protokol 50 i nimalo ne liči na UDP. Umotani ESP se pojavljuje kao UDP datagrami na 4500 čije opterećenje nije IKE. IKE saobraćaj na tom istom portu nije dokaz inkapsulacije, jer MOBIKE može premjestiti IKE tamo dok putanja podataka ostaje native, pa čitajte opterećenje, a ne broj porta.
Imajte na umu i MTU putanje. Omotač dodaje dodatni trošak, a putanja koja je nosila native ESP može zahtijevati prilagodbe kada paketi narastu. Potrebno rukovanje ICMP-om već bi trebalo biti dio dizajna; inkapsulacija ne uklanja tu zavisnost.
Prihvatite promjenu kada je svježi saobraćaj aplikacija unutar tunela vidljiv u snimci kao umotani ESP na oba kraja i kada unutrašnja usluga i njezina povratna ruta još rade. Sve manje od toga je konfiguracija koja u datoteci izgleda ispravno.