SSH naar het openbare IP van de WireGuard-server mislukt op Windows
Een route en een firewallregel zijn twee aparte beslissingen. Op Windows schakelt een peer met /0 beperkende regels in, en het transport van de tunnel zelf is de uitzondering.
Tunnels die omhoogkomen terwijl SSH naar het openbare adres van de server stopt met werken, zien eruit als een server die de verbinding weigert. Op Windows is de waarschijnlijkere oorzaak lokaal: een AllowedIPs van een voltunnel met /0 schakelt beperkende firewallregels in die het transport van de tunnel zelf en heel weinig anders toestaan. Versleutelde pakketten die dat adres bereiken zeggen niets over of een aparte TCP-verbinding naar hetzelfde adres naar buiten mag.
Scheid het openbare adres van het eindpunt van zijn interne tunneladres voordat je de peerlijst aanraakt. Bijna elke poging om dit te repareren door AllowedIPs te bewerken maakt het beleid zwakker in plaats van de route juist.
Routeringstoestemming en firewalltoestemming zijn verschillend
Een route bepaalt waar een pakket naartoe zou gaan, en een firewallregel bepaalt of het überhaupt verzonden mag worden. Een route toevoegen voor het openbare IP van het eindpunt levert dus een pad op dat de filter nog steeds kan blokkeren, en dat is precies de verwarring die dit symptoom veroorzaakt. Op Windows maakt de filter deel uit van de implementatie en is het geen toevoeging, dus geen enkele route-invoer verandert hem. De twee beslissingen zijn elders ook gescheiden, al verschillen de standaardwaarden.
Daarom kan een traceroute naar het eindpunt slagen terwijl een SSH-poging mislukt. De eerste wordt gedragen door de dienst die de uitzondering bezit, de tweede niet.
Wat /0 op Windows doet
Met één peer waarvan de toegestane adressen de hele IPv4-ruimte beslaan, past WireGuard for Windows een beperkende firewallhouding toe die verkeer blokkeert dat anders buiten de tunnel zou vertrekken. Het transport van de tunneldienst zelf is toegestaan, omdat de VPN anders niet zou kunnen werken. Een andere toepassing naar hetzelfde openbare adres krijgt zo'n toestemming niet, omdat de uitzondering bij het transport hoort en niet bij het adres. Windows-netwerknotities beschrijven dit gedrag en de bijbehorende bediening in de editor.
Die regels zijn het mechanisme achter de term kill switch. Ze worden geactiveerd door de vorm van de configuratie en niet door een selectievakje met die naam.
Uitzonderingen veranderen het beschermingsmodel
/0 vervangen door twee halfstandaardprefixen is de gedocumenteerde manier om brede routering te behouden zonder de beperkende semantiek, en het is een ander beschermingsmodel, geen kortere spelling. Het eindpuntadres aftrekken van de toegestane prefixen is de andere gangbare oplossing, die de lijst verlengt en ook verandert welke regels geactiveerd worden. Geen van beide is een lokale wijziging met lokaal effect. Elk verschuift de grens voor elke stroom op de machine, niet alleen voor de verbinding die je repareerde.
Waar directe openbare SSH echt nodig is, moet de profieleigenaar zowel de buitenroute als de firewalltoestemming daarvoor ontwerpen, en beslissen wat er met ongerelateerd verkeer gebeurt als de tunnel wegvalt. IPv4 en IPv6 apart beoordelen hoort daarbij, omdat de regels per familie worden uitgedrukt. Een brede omleiding die wordt toegevoegd om één beheersessie te redden, legt meestal meer bloot dan de sessie.
Test het beheerpad dat je hebt gekozen
Bepaal eerst of beheer binnen of buiten de tunnel moet verlopen, en test dan die keuze in plaats van beide tegelijk. De onderstaande opdrachten controleren de adressen van de client, de toestand van de peer en een verbinding naar elk doel. Voer ze uit vanaf de Windows-client terwijl de tunnel actief is.
ipconfig | findstr /i "WireGuard IPv4"
wg show
ssh -v [email protected]
Test-NetConnection 203.0.113.9 -Port 22
Een geslaagde SSH naar het interne adres bewijst dat de tunnel beheerverkeer draagt en dat de firewall van de server het uit het peerbereik accepteert. Een fout op beide doelen is een server- of sleutelprobleem en geen Windows-routeringsprobleem. Als het interne adres werkt en het externe niet, de lokale firewallhouding doet precies waarvoor hij is ontworpen. Lees de drie resultaten in die volgorde voordat je een profiel bewerkt.
Noteer het beheerpad, het gebruikte adres en het gedrag wanneer de tunnel neerligt. Die notitie is wat de volgende persoon ervan weerhoudt de omleiding te verbreden om vijf minuten te besparen.