Otvaranje UDP 500 na vatrozidu omogućava tunelu da pregovara, a zatim veza prestaje da propušta saobraćaj. Lista portova je bila nepotpuna, a ne pogrešna. IKEv2 počinje na jednom utičnici i u mnogim stvarnim implementacijama nastavlja na drugoj, dok korisni teret možda uopšte 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 autentifikuju i uspostavljaju sigurnosnu asocijaciju za tunel. Putanja podataka koja slijedi je odvojeno pitanje: to može biti izvorni ESP, koji je broj IP protokola, a ne port, ili saobraćaj inkapsuliran u UDP na 4500. Razdvajanje toga u pregledu vatrozida je razlika između tunela koji pregovara i tunela koji radi. Jedna utičnica nosi kontrolu, a druga korisni teret.

Zato pravilo koje dozvoljava samo 500 daje najzbunjujući simptom u cijeloj porodici protokola: pregovaranje uspije i ništa korisno ne slijedi. Stanje pokazuje partnera, zapisnik pokazuje uspostavljenu IKE SA, a aplikacija i dalje istekom vremena. Pravilo koje nedostaje pripada drugom toku od onog koji je upravo uspio.

Zašto 4500 uopšte 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 dozvoliti. Ta inkapsulacija je razlog zašto drugi port uopšte postoji.

Kada se NAT otkrije, sam IKE se takođe premešta na 4500 kako bi sav saobraćaj dijelio jednu putanju kroz prevodioca. Marker od četiri bajta koji nije ESP razlikuje kontrolne poruke od podataka na toj utičnici. Prebacivanje je odluka protokola, a ne preferencija administratora.

Gdje se mijenja izvorni port

Prevodilac može prepisati izvorni port klijenta, pa se torka koju vidi server ne poklapa s torkom na klijentu. Pogledajte obje strane svakog NAT skoka prije nego zaključite da se pravilo ignoriše. Rješavanje problema samo na klijentu može dati pravilo koje izgleda ispravno i ipak ne uspijeva.

Implementacije s podrškom za MOBIKE takođe mogu preć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 rutera.

Provjerite oba toka na svakoj granici

Prođite kroz tri granice: mrežu klijenta, bilo koji posredni vatrozid i server. Svakoj su potrebni tokovi koje implementacija dokumentuje, 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 listi vatrozida je podudaranje protokola, pa je pravilo porta nikada ne pokriva. Ako operater koristi prilagođeni port, slijedite dokumentovanu konfiguraciju na oba kraja, jer klijent ne može stvoriti slušaoca na serveru birajući poznati broj.

Zabilježite gdje su pregovori stali i da li je podređena sigurnosna asocijacija instalirana, jer taj par razdvaja blokiranu putanju od greške autentifikacije ili politike. Zatim ponovite test s uključenom provjerom servera, jer dostupnost nije autentifikacija. Taj posljednji korak razdvaja dozvoljeni port od pouzdanog partnera.

Povezani članci