IKEv2 koristi UDP 500 i 4500: koji od njih nosi podatke?
Prva razmjena i putanja koja nosi podatke nisu isti tok. Provjerite oba porta i zapamtite da je izvorni ESP broj protokola, a ne port.
Otvaranje UDP 500 na vatrozidu omogućuje tunelu da pregovara, a zatim veza prestaje propuštati promet. Popis portova bio je nepotpun, a ne pogrešan. IKEv2 počinje na jednom socketu i u mnogim stvarnim implementacijama nastavlja na drugom, dok korisni teret možda uopće nije port. Čitanje faza po redu objašnjava koje pravilo nedostaje.
Dva porta, dva posla
IKEv2 počinje razmjenom ključeva na UDP 500, gdje se strane autentificiraju i uspostavljaju sigurnosnu asocijaciju za tunel. Putanja podataka koja slijedi zasebno je pitanje: to može biti izvorni ESP, koji je broj IP protokola, a ne port, ili promet inkapsuliran u UDP na 4500. Razdvajanje toga u pregledu vatrozida razlika je između tunela koji pregovara i tunela koji radi. Jedan socket nosi kontrolu, a drugi korisni teret.
Zato pravilo koje dopušta samo 500 daje najzbunjujući simptom u cijeloj obitelji protokola: pregovaranje uspije i ništa korisno ne slijedi. Stanje pokazuje partnera, zapisnik pokazuje uspostavljenu IKE SA, a aplikacija i dalje istječe. Pravilo koje nedostaje pripada drugom toku od onoga koji je upravo uspio.
Zašto 4500 uopće postoji
Mnogi NAT uređaji ne mogu prosljeđivati protokol osim TCP ili UDP, a neki prepisuju adrese na način koji kvari ESP provjeru integriteta. Inkapsulacija ESP-a u UDP rješava oba problema, po cijeni dodatnog zaglavlja i drugog porta koji treba dopustiti. Ta inkapsulacija razlog je zašto drugi port uopće postoji.
Kada se NAT otkrije, sam IKE također prelazi na 4500 kako bi sav promet dijelio jednu putanju kroz prevoditelja. Marker od četiri bajta koji nije ESP razlikuje kontrolne poruke od podataka na tom socketu. Prebacivanje je odluka protokola, a ne preferencija administratora.
Gdje se mijenja izvorni port
Prevoditelj može prepisati izvorni port klijenta, pa se torka koju vidi poslužitelj ne poklapa s torkom na klijentu. Pogledajte obje strane svakog NAT skoka prije nego zaključite da se pravilo ignorira. Rješavanje problema samo na klijentu može dati pravilo koje izgleda ispravno i ipak ne uspijeva.
Implementacije s podrškom za MOBIKE također mogu prijeći na 4500 bez otkrivenog NAT-a, a neke implementacije namjerno forsiraju tu putanju. Zato je viđenje 4500 dokaz odluke, a ne dokaz kućnog usmjerivača.
Provjerite oba toka na svakoj granici
Prođite kroz tri granice: mrežu klijenta, bilo koji posredni vatrozid i poslužitelj. Svakoj su potrebni tokovi koje implementacija dokumentira, a ne tokovi iz teksta o drugom slučaju.
sudo swanctl --list-sas
sudo tcpdump -ni any 'udp port 500 or udp port 4500'
sudo iptables -S | grep -E '500|4500|esp'
ip xfrm state
Linija ESP na popisu vatrozida je podudaranje protokola, pa je pravilo porta nikada ne pokriva. Ako operater koristi prilagođeni port, slijedite dokumentiranu konfiguraciju na oba kraja, jer klijent ne može stvoriti slušatelja na poslužitelju birajući poznati broj.
Zabilježite gdje su pregovori stali i je li podređena sigurnosna asocijacija instalirana, jer taj par razdvaja blokiranu putanju od pogreške autentifikacije ili politike. Zatim ponovite test s uključenom provjerom poslužitelja, jer dostupnost nije autentifikacija. Taj posljednji korak razdvaja dopušteni port od pouzdanog partnera.