Not-Aus oder LAN-Zugang? Zwei Antworten für WireGuard
Der Windows-Client blockiert nicht getunnelten Verkehr, wenn das Profil 0.0.0.0/0 angibt. Entscheiden Sie, welche Eigenschaft Sie brauchen, und drücken Sie dann die Vorgabe entsprechend aus.
Der Handshake kommt zustande, das Surfen funktioniert, und Drucker, NAS und lokale SSH-Hosts verschwinden. Beim Windows-Client ist das meist gar kein Routingfehler: Ein Peer, dessen erlaubte Präfixe die wörtliche Vorgabe enthalten, aktiviert Nicht getunnelten Verkehr blockieren, und diese Option ist als Firewallregeln umgesetzt, die Pakete verwerfen, die über eine andere Schnittstelle hinausgehen. Die Routentabelle führt das lokale Subnetz weiterhin als direkt verbunden, deshalb fühlt sich das Symptom wie eine Lüge an. Drei Bedingungen entscheiden, was dagegen zu tun ist, und nur eine davon betrifft das Routing.
Zwei Fehler tragen dasselbe Symptom
Der erste Fehler ist der Fail-Closed-Modus des Clients, und sein Kennzeichen ist, dass alles außerhalb des Tunnels stoppt, während der Tunnel selbst einwandfrei arbeitet. Der zweite ist ein echtes Erreichbarkeitsproblem: eine fehlende Route, ein fehlender Eintrag auf dem Server für ein Subnetz hinter dem Client oder zwei Netze mit demselben Adressbereich. Beide ergeben eine Maschine, die surfen und nicht drucken kann, und ihre Lösungen sind gegensätzlich, also muss die Diagnose vor der Konfiguration kommen.
Die entscheidende Beobachtung ist, ob das lokale Subnetz noch in der Routentabelle steht, während Verkehr dorthin verworfen wird.
Drei Bedingungen entscheiden die Antwort
Erstens, braucht diese Maschine Fail-Closed? Lautet die Antwort ja, muss ein abgebrochener Tunnel den Verkehr anhalten, statt ihn auf die physische Schnittstelle zurückfallen zu lassen, und diese Anforderung wiegt schwerer als lokale Bequemlichkeit. Zweitens, müssen lokale Geräte erreichbar bleiben, solange der Tunnel steht? Drucken, Netzwerkspeicher und lokale Verwaltungskonsolen sind die üblichen Gründe, und das sind berechtigte Anforderungen und keine Ausnahmen, für die man sich entschuldigt. Drittens, drückt das Profil die Vorgabe als wörtliches 0.0.0.0/0 aus? Genau dieses Detail löst die Regeln des Clients aus, und es ist änderbar.
Beantworten Sie diese drei Fragen schriftlich, bevor Sie ein Profil anfassen, denn jede Antwort zeigt auf eine andere Konfiguration.
Wählen Sie Fail-Closed und geben Sie das LAN auf
Wenn Leckage wichtiger ist als lokale Erreichbarkeit, behalten Sie die wörtliche Vorgabe und lassen Sie Nicht getunnelten Verkehr blockieren aktiviert. Das ist eine stimmige Haltung: Die Maschine gilt als Gerät, das entweder im Tunnel oder offline ist, und lokale Dienste werden von einem anderen Gerät oder durch den Tunnel erreicht, wenn der Server sie routet. Der Preis ist real und sollte in den Betriebsnotizen stehen, statt von der Person entdeckt zu werden, die drucken muss.
Das ist die richtige Wahl für Maschinen, die Arbeit erledigen, die in einem Café-Netz nicht auftauchen darf, wenn der Tunnel abreißt. Für einen Heim-Laptop, der auch den Scanner braucht, ist es eine schlechte Vorgabe.
Wählen Sie LAN-Zugang und drücken Sie die Vorgabe anders aus
Wenn lokale Geräte erreichbar bleiben müssen, drücken Sie dieselbe Abdeckung ohne das wörtliche Vorgabepräfix aus. Zwei halbe Präfixe decken jede IPv4-Adresse ab, das entsprechende Paar deckt IPv6 ab, und der Client fügt die blockierenden Regeln nicht mehr ein, weil die Zeichenfolge fehlt, nach der er sucht.
[Peer]
AllowedIPs = 0.0.0.0/1
AllowedIPs = 128.0.0.0/1
AllowedIPs = ::/1
AllowedIPs = 8000::/1
Endpoint = vpn.example.net:51820
Das Häkchen zu entfernen bringt den Client dazu, dieselben zwei Paare ins Profil zu schreiben, deshalb ist der Vergleich der erzeugten Datei mit dem Block oben ein schneller Weg, den Mechanismus zu bestätigen, statt ihn zu erraten. Daraus folgen zwei Konsequenzen. Die Abdeckung ist identisch, am Tunnel ändert sich sonst nichts. Der Schutz ist nicht identisch: Ohne die Regeln lässt ein abgebrochener Tunnel die Maschine ihre physische Schnittstelle nutzen, und genau das hat Fail-Closed verhindert.
Prüfen Sie die beiden anderen Verdächtigen trotzdem
Sobald die Firewall-Frage geklärt ist, bestätigen Sie, dass das lokale Subnetz tatsächlich geroutet wird und dass die Gegenseite von allem hinter diesem Client weiß. Ein Server, der ein LAN hinter einem Client erreichen muss, braucht dieses Präfix in der erlaubten Liste des Clients am Hub; lassen Sie es weg, kann der Hub keinen Peer für diese Adressen wählen, und keine Client-Konfiguration erzeugt einen.
Get-NetConnectionProfile | Select-Object Name, InterfaceAlias, NetworkCategory
Get-NetFirewallProfile | Select-Object Name, Enabled, DefaultOutboundAction
route print 0.0.0.0
Die Netzkategorie zählt mehr, als Leute erwarten: Ein neu erstellter Tunneladapter, der als öffentlich eingestuft wird, ändert, welche Regeln für ihn gelten, und das Ergebnis kann wie eine Firewallsperre auf der Gegenseite aussehen. Die Routenausgabe zeigt, ob überhaupt eine Vorgabe vorhanden ist, was ein Richtlinienproblem von einer fehlenden Route trennt.
Testen Sie dann drei Dinge in einem Durchgang: das Internet, einen lokalen Host per Adresse und einen Host über den Tunnel. Der Handshake beweist nur, dass die Schlüssel übereinstimmen, also zeigen die drei Tests die Richtlinie. Verweigert der lokale Host bei gelöschtem Häkchen weiterhin, sind die verbleibenden Verdächtigen die Route, die erlaubte Liste der Gegenseite und das doppelte Subnetz, in dieser Reihenfolge.