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 soketu i u mnogim stvarnim implementacijama nastavlja na drugom, 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 razmenom ključeva na UDP 500, gde se strane autentifikuju i uspostavljaju bezbednosnu asocijaciju za tunel. Putanja podataka koja sledi 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. Jedan soket nosi kontrolu, a drugi korisni teret.

Zato pravilo koje dozvoljava samo 500 daje najzbunjujući simptom u celoj porodici protokola: pregovaranje uspe i ništa korisno ne sledi. Stanje pokazuje partnera, zapisnik pokazuje uspostavljenu IKE SA, a aplikacija i dalje ističe. Pravilo koje nedostaje pripada drugom toku od onog koji je upravo uspeo.

Zašto 4500 uopšte postoji

Mnogi NAT uređaji ne mogu da prosleđuju protokol osim TCP ili UDP, a neki prepisuju adrese na način koji kvari ESP proveru integriteta. Inkapsulacija ESP-a u UDP rešava oba problema, po ceni 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 delio jednu putanju kroz prevodioca. Marker od četiri bajta koji nije ESP razlikuje kontrolne poruke od podataka na tom soketu. Prebacivanje je odluka protokola, a ne preferencija administratora.

Gde se menja izvorni port

Prevodilac može da prepiše izvorni port klijenta, pa se torka koju vidi server ne poklapa s torkom na klijentu. Pogledajte obe strane svakog NAT skoka pre nego što zaključite da se pravilo ignoriše. Rešavanje problema samo na klijentu može dati pravilo koje izgleda ispravno i ipak ne uspeva.

Implementacije s podrškom za MOBIKE takođe mogu preći na 4500 bez otkrivenog NAT-a, a neke implementacije namerno forsiraju tu putanju. Zato je viđenje 4500 dokaz odluke, a ne dokaz kućnog rutera.

Proverite 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, sledite dokumentovanu konfiguraciju na oba kraja, jer klijent ne može stvoriti slušaoca na serveru birajući poznati broj.

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

Povezani članci