Je scant de VPN-poort, krijgt geen antwoord en concludeert dat de dienst platligt of dat de firewall dicht is. Bij WireGuard, en bij OpenVPN-besturingskanalen die hun eigen authenticatie meebrengen, volgt die conclusie niet. Een datagram zonder geldig authenticatiemateriaal wordt zonder antwoord weggegooid, dus stilte is hoe een gezonde dienst er van buiten uitziet. De test klopt niet voordat de tunnel dat doet.

Stilte is het protocol, geen storing

UDP kent geen verbindingsopbouw, dus er is geen SYN en geen bevestiging waarmee een scanner een open poort van een gefilterde kan onderscheiden. Een probe komt binnen als een geïsoleerd datagram, en de dienst controleert of het bij het protocol past dat hij verwacht. Zo niet, dan wordt het pakket weggegooid, en weggooien is het gedocumenteerde gedrag en geen storing.

WireGuard valideert zijn handshake-berichten cryptografisch en negeert alles wat mislukt. OpenVPN doet met tls-auth of tls-crypt hetzelfde voor zijn besturingskanaal. In beide gevallen bereikt een willekeurige payload nooit een gebruikersgerichte fase, dus er is niets om mee te antwoorden en geen fout om terug te geven.

TCP zou je een reset van een gesloten poort hebben gegeven. UDP laat je achter met onduidelijkheid, die scanners oplossen door open of gefilterd af te drukken in plaats van te gissen.

Wat een scanner wel en niet kan concluderen

Een scanresultaat is alleen zo informatief als de payload die het stuurde. Sorteer de mogelijke waarnemingen naar wat elk ervan werkelijk ondersteunt:

ProbeObserved resultWhat it supports
Empty datagramNo replyNothing beyond the fact that UDP was used
Random payloadNo replyConsistent with an authenticated service
Valid handshake from a real clientA protocol replyThe service is alive and reachable
ICMP port unreachableUnreachable messageThe host answered, usually because nothing listens

Lees de derde rij als de enige positieve test in de lijst. Die vereist het echte profiel, de echte sleutel en het juiste eindpunt, en dat is precies wat een generieke scanner niet heeft.

Kijk naar beide uiteinden van het pad

Voor een server die je beheert, leg vast op de interface voordat je enige conclusie trekt, en vraag daarna de dienst wat hij zag. Beide commando's vereisen root op de gateway:

tcpdump -ni any udp port 51820
tcpdump -ni any udp port 1194
wg show

Als er geen pakket op de interface verschijnt, heeft het pad het weggegooid voordat de dienst iets zag, en de volgende stop is routing en filtering. Als pakketten aankomen maar er geen handshake voltooit, is de dienst bereikbaar en zit de mismatch in sleutels, eindpuntconfiguratie of protocolversie. Die vergelijking beantwoordt de vraag die de scanner niet kon. Voer hem uit terwijl een echte client probeert te verbinden, niet terwijl de scanner zichzelf herhaalt.

Verander de test, niet de bescherming

De verleidelijke kortere weg is de bescherming van het besturingskanaal uitzetten zodat een diagnose antwoord krijgt. Dat ruilt een echte beveiligingseigenschap voor een mooier scanresultaat, en dat is de verkeerde richting. Gebruik in plaats daarvan een geldig profiel uit een goedgekeurd netwerk, en noteer het eindpunt en de tijd zodat de vergelijking herhaalbaar is.

De nuttigste test is een differentiële: hetzelfde profiel op een pad dat werkt en op het pad dat dat niet doet. Als het werkende pad een handshake oplevert en het falende pad niets op de interface, heb je de breuk gelokaliseerd zonder iets te verzwakken.

Een onbeantwoord UDP-pakket bewijst dus niet dat de server offline is en ook niet dat hij veilig is. Het bewijst dat deze probe, op dit pad, op dit moment, niet is geaccepteerd.

Gerelateerde artikelen