UDP VPN mlčí pri skenovaní portov? Prečo sa to deje
WireGuard a spevnený OpenVPN zahadzujú datagramy, ktoré neprejdú autentifikáciou, bez odpovede. Ticho od skenera je očakávané správanie, nie zatvorený port.
Skenujete port VPN, nedostanete odpoveď a usúdite, že služba nefunguje alebo že je firewall zatvorený. Pri WireGuarde a pri riadiacich kanáloch OpenVPN, ktoré nesú vlastnú autentifikáciu, tento záver neplatí. Datagram bez platného autentifikačného materiálu sa zahodí bez odpovede, takže ticho je to, ako zdravá služba vyzerá zvonka. Sonda je nesprávna skôr, než je nesprávny tunel.
Ticho je protokol, nie porucha
UDP nemá nadväzovanie spojenia, takže neexistuje SYN ani potvrdenie, ktoré by skeneru umožnilo rozlíšiť otvorený port od filtrovaného. Sonda prichádza ako izolovaný datagram a služba overuje, či zodpovedá protokolu, ktorý očakáva. Keď nezodpovedá, paket sa zahodí, a zahodenie je dokumentované správanie, nie porucha.
WireGuard kryptograficky overuje svoje správy handshake a všetko, čo neprejde, ignoruje. OpenVPN s tls-auth alebo tls-crypt robí to isté pre svoj riadiaci kanál. V oboch prípadoch sa ľubovoľný užitočný obsah nikdy nedostane do fázy obrátenej k používateľovi, takže niet čím odpovedať a niet chybu vrátiť.
TCP by vám dal reset zo zatvoreného portu. UDP vás necháva v neurčitosti, ktorú skenery riešia vypísaním otvorený alebo filtrovaný namiesto hádania.
Čo skener môže a čo nemôže usúdiť
Výsledok skenovania je len taký informatívny, aký informatívny je odoslaný užitočný obsah. Zoraďte možné pozorovania podľa toho, čo každé z nich skutočne potvrdzuje:
| Probe | Observed result | What it supports |
|---|---|---|
| Empty datagram | No reply | Nothing beyond the fact that UDP was used |
| Random payload | No reply | Consistent with an authenticated service |
| Valid handshake from a real client | A protocol reply | The service is alive and reachable |
| ICMP port unreachable | Unreachable message | The host answered, usually because nothing listens |
Čítajte tretí riadok ako jediný pozitívny test v zozname. Vyžaduje skutočný profil, skutočný kľúč a správny koncový bod, a presne to bežný skener nemá.
Pozrite sa na oba konce cesty
Pri serveri, ktorý spravujete, zachyťte premávku na rozhraní, skôr než urobíte akýkoľvek záver, a potom sa služby opýtajte, čo videla. Oba príkazy vyžadujú root na bráne:
tcpdump -ni any udp port 51820
tcpdump -ni any udp port 1194
wg show
Ak sa na rozhraní neobjaví žiadny paket, cesta ho zahodila skôr, než služba čokoľvek videla, a ďalšou zastávkou je smerovanie a filtrovanie. Ak pakety dorazia, ale handshake sa nedokončí, služba je dostupná a nezhoda je v kľúčoch, konfigurácii koncového bodu alebo verzii protokolu. To porovnanie odpovedá na otázku, ktorú skener nedokázal. Spustite ho, kým sa skutočný klient pokúša pripojiť, nie kým skener opakuje sám seba.
Zmeňte test, nie ochranu
Lákavou skratkou je vypnúť ochranu riadiaceho kanála, aby diagnostika dostala odpoveď. To vymieňa skutočnú bezpečnostnú vlastnosť za krajší výsledok skenovania a je to nesprávny smer. Namiesto toho použite platný profil zo schválenej siete a poznačte koncový bod a čas, aby bolo porovnanie opakovateľné.
Najužitočnejší test je diferenciálny: rovnaký profil na ceste, ktorá funguje, a na ceste, ktorá nefunguje. Ak funkčná cesta vytvorí handshake a zlyhávajúca cesta nevytvorí na rozhraní nič, lokalizovali ste prerušenie bez toho, aby ste čokoľvek oslabili.
Neodpovedaný UDP paket teda nedokazuje ani to, že server je offline, ani to, že je bezpečný. Dokazuje, že táto sonda, na tejto ceste, v tomto okamihu nebola prijatá.