Zašto IKEv2 na Androidu ne radi na nestandardnom UDP portu
Izvorni IKEv2 obrazac prima adresu, a ne port. Provjerite podržava li ga klijent, postavite oba serverska porta, pa pogledajte uokvirivanje i zapise.
Prolaz odgovara na IKEv2 na UDP 4443 s razlogom, profil ima polje označeno s Server, upišete ime hosta i port, a telefon javlja da ne može doći do servera ili da ne može razriješiti adresu. Ništa se ne blokira. Izvorni obrazac na Androidu očekuje host, i isto vrijedi na Windowsu. Prilagođeni port je mogućnost klijenta prije nego postavka servera, i samo ga neki klijenti dopuštaju izraziti. Prođite kroz tri dijela po redu: što klijent može reći, na što server sluša i uokviruju li oba kraja pakete na isti način.
Što je telefon zapravo poslao
Niz host:port u polju namijenjenom imenu razrješava se kao ime. Razrješivač ne vraća ništa za vpn.example.net:4443, a greška koju vidite je neuspjeh razrješavanja imena ili nedostupnosti, a ne istek vremena na portu. Ta razlika je važna, jer ponovni pokušaj s kraćim imenom ili drugom mrežom nikada neće popraviti niz koji obrazac ne može raščlaniti.
Izvorni IKEv2 profil na Androidu, kao i ugrađeni Windows VPN klijent, fiksiran je na standardne IKE portove. Nijedan ne izlaže polje porta, i nikakvo uređivanje profila ga ne dodaje. Ako je operatorov slušalac zaista na 4443, ugrađeni klijent je pogrešan alat, a ne pogrešno konfiguriran.
Koristite klijent koji izlaže port
strongSwanov Android klijent dokumentira konfigurabilni serverski port u naprednim postavkama profila, zato se pojavljuje u gotovo svakom radnom receptu za ovaj dizajn. Ta podrška pripada tom klijentu: druga IKEv2 aplikacija, ili dobavljački ogranak iste aplikacije, možda ne izlaže isto polje iako ga osnovni strongSwan demon podržava.
Zatražite od operatora cijeli skup odjednom: ime prolaza, UDP port, metodu provjere identiteta i identitet servera koji klijent mora očekivati. Prilagođeni port nije razlog da isključite provjeru certifikata ili promijenite protokole. Upišite port tamo gdje ga instalirani klijent očekuje, a ako taj klijent nema takvo polje, odgovor je drugi odobreni klijent, a ne nagađana zaobilaznica.
Server ima dva porta i oba se moraju podudarati
IKE počinje na UDP 500, a NAT prolaz obično premješta IKE i enkapsulirani ESP na UDP 4500. To su odvojene postavke u strongSwanu, pa server premješten na jedan prilagođeni port mora oba promijeniti na istu vrijednost:
plugins {
socket-default {
port = 4443
port_nat_t = 4443
}
}
S jednim portom za obje uloge, demon mora razlikovati IKE od ESP-in-UDP na istom socketu, što čini pomoću četverobajtnog markera koji nije ESP i prethodi IKE poruci. Zato klijent ne može pregovarati na prilagođenom portu i zatim tiho nastaviti na 4500, i zato fraza “samo promijeni port” skriva zahtjev za uokvirivanjem.
Prosljeđivanje nije slušalac
Prosljeđivanje 4443 na običan IKE slušalac je način neuspjeha koji izgleda gotovo uspješno. Prva razmjena stigne, server odgovori, a veza zatim stane ili obnovi ključeve u ništa, jer odgovor izlazi s drugog porta i kasniji enkapsulirani promet nikada ne odgovara stanju koje su oba kraja stvorila. Pravilo koje prepisuje odredišni port bez premještanja slušaoca daje točno taj poluotvoreni rezultat.
Put također mora dopuštati UDP od kraja do kraja. Prolazak TCP 443 kroz hotelsku ili mobilnu mrežu ne govori ništa o IKEv2 na UDP portu, čak i s istim brojem. Gdje je dopušten samo TCP 443, prilagođeni UDP port ne pretvara IKEv2 u HTTPS, a točan odgovor može biti drugi put pristupa, a ne još jedan pokus s portom.
Razdvojite tri faze pri testiranju
Snimajte na serveru dok klijent pokuša jednom. Zahtjev koji nikada ne stigne pitanje je krajnje točke ili vatrozida; zahtjev koji stigne bez odgovora pitanje je slušaoca ili pravila; odgovor nakon kojeg slijedi tišina pitanje je uokvirivanja ili identiteta.
tcpdump -ni eth0 -vv udp port 4443
Zatim čitajte poruku klijenta, a ne njegov vrteći pokazivač. Greška u prijedlogu znači da se algoritmi ne slažu, greška provjere identiteta znači da se identiteti ili certifikati ne slažu, a ponovljena slanja bez odgovora znače da na tom portu ništa ne odgovara. Testirajte jednu fazu po put i mijenjajte jedno polje između pokušaja; strongSwanova dokumentacija o NAT prolazu opisuje marker i ponašanje porta koje vam snimka pokazuje.