6.4 KiB
6.4 KiB
WireGuard Windows Firewall - Pr?fung und Fix
Problem
Traffic kommt NICHT ?ber VPN, obwohl WireGuard verbunden ist. Windows Firewall k?nnte VPN-Traffic blockieren.
Schritt 1: Aktuelle Firewall-Regeln pr?fen
Als Administrator in PowerShell:
# Pr?fe ob WireGuard-Regeln vorhanden sind
Get-NetFirewallRule | Where-Object {$_.DisplayName -like "*WireGuard*" -or $_.DisplayName -like "*VPN*"} | Select-Object DisplayName, Enabled, Direction, Action
# Pr?fe alle ausgehenden Regeln
Get-NetFirewallRule -Direction Outbound | Where-Object {$_.Enabled -eq $true} | Select-Object DisplayName, Direction, Action | Format-Table -AutoSize
# Pr?fe Firewall-Status
Get-NetFirewallProfile | Select-Object Name, Enabled
Schritt 2: Pr?fe ob WireGuard-Programm-Regeln vorhanden sind
# Suche nach WireGuard-Programm-Regeln
Get-NetFirewallApplicationFilter | Where-Object {$_.Program -like "*WireGuard*"} | Select-Object Program
# Oder pr?fe alle Programm-Regeln
Get-NetFirewallRule | Where-Object {$_.Program -like "*WireGuard*"} | Select-Object DisplayName, Enabled, Direction, Action, Program
Schritt 3: Erstelle Firewall-Regeln f?r WireGuard
Falls keine Regeln vorhanden sind:
# Als Administrator
# Erlaube WireGuard-Programm (TCP und UDP)
$wgPath = "C:\Program Files\WireGuard\wireguard.exe"
if (Test-Path $wgPath) {
New-NetFirewallRule -DisplayName "WireGuard VPN - Allow TCP" -Direction Outbound -Program $wgPath -Protocol TCP -Action Allow -Enabled True
New-NetFirewallRule -DisplayName "WireGuard VPN - Allow UDP" -Direction Outbound -Program $wgPath -Protocol UDP -Action Allow -Enabled True
New-NetFirewallRule -DisplayName "WireGuard VPN - Allow Inbound TCP" -Direction Inbound -Program $wgPath -Protocol TCP -Action Allow -Enabled True
New-NetFirewallRule -DisplayName "WireGuard VPN - Allow Inbound UDP" -Direction Inbound -Program $wgPath -Protocol UDP -Action Allow -Enabled True
Write-Host "WireGuard Firewall-Regeln erstellt"
} else {
Write-Host "WireGuard-Programm nicht gefunden in: $wgPath"
Write-Host "Bitte pr?fe den Pfad und passe ihn an"
}
# Alternative: Erlaube WireGuard-Interface (falls bekannt)
# Get-NetAdapter | Where-Object {$_.Name -like "*WireGuard*" -or $_.Name -like "*grafana-test*"} | ForEach-Object {
# $ifIndex = $_.InterfaceIndex
# New-NetFirewallRule -DisplayName "WireGuard Interface $($_.Name) - Allow Outbound" -Direction Outbound -InterfaceIndex $ifIndex -Action Allow -Enabled True
# New-NetFirewallRule -DisplayName "WireGuard Interface $($_.Name) - Allow Inbound" -Direction Inbound -InterfaceIndex $ifIndex -Action Allow -Enabled True
# }
Schritt 4: Pr?fe Interface-basierte Regeln
# Finde WireGuard Interface
$wgInterface = Get-NetAdapter | Where-Object {$_.Name -like "*grafana-test*" -or $_.Name -like "*WireGuard*"}
if ($wgInterface) {
Write-Host "WireGuard Interface gefunden: $($wgInterface.Name), Index: $($wgInterface.InterfaceIndex)"
# Pr?fe Interface-basierte Firewall-Regeln
Get-NetFirewallRule | Where-Object {$_.InterfaceIndex -eq $wgInterface.InterfaceIndex} | Select-Object DisplayName, Enabled, Direction, Action
}
Schritt 5: Erlaube Traffic f?r VPN-Netzwerk
# Als Administrator
# Erlaube ausgehenden Traffic zu VPN-Netzwerk (10.8.0.0/24)
New-NetFirewallRule -DisplayName "WireGuard VPN Network - Allow Outbound" `
-Direction Outbound `
-RemoteAddress "10.8.0.0/24" `
-Protocol TCP `
-Action Allow `
-Enabled True
New-NetFirewallRule -DisplayName "WireGuard VPN Network - Allow Outbound UDP" `
-Direction Outbound `
-RemoteAddress "10.8.0.0/24" `
-Protocol UDP `
-Action Allow `
-Enabled True
New-NetFirewallRule -DisplayName "WireGuard VPN Network - Allow Inbound" `
-Direction Inbound `
-RemoteAddress "10.8.0.0/24" `
-Protocol TCP `
-Action Allow `
-Enabled True
New-NetFirewallRule -DisplayName "WireGuard VPN Network - Allow Inbound UDP" `
-Direction Inbound `
-RemoteAddress "10.8.0.0/24" `
-Protocol UDP `
-Action Allow `
-Enabled True
Write-Host "VPN-Netzwerk Firewall-Regeln erstellt"
Schritt 6: Teste nach Firewall-?nderungen
# Pr?fe Route
route print | findstr "10.8"
# Teste Ping
ping 10.8.0.1
# Teste Grafana (im Browser)
# https://grafana.michaelschiemer.de
Schritt 7: Pr?fe Logs
Nach den ?nderungen:
- WireGuard neu verbinden (Disconnect ? Connect)
- Teste Grafana:
https://grafana.michaelschiemer.de - Warte 5 Sekunden
- Dann pr?fe ich die Traefik-Logs, ob
ClientHost: 10.8.0.7erscheint
Troubleshooting
Firewall-Regeln werden nicht angewendet
# Pr?fe ob Firewall aktiv ist
Get-NetFirewallProfile | Select-Object Name, Enabled
# Falls Firewall deaktiviert ist, aktiviere sie (falls gew?nscht)
# Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled True
WireGuard-Programm-Pfad ist anders
# Finde WireGuard-Installationspfad
Get-ChildItem "C:\Program Files" -Recurse -Filter "wireguard.exe" -ErrorAction SilentlyContinue
Get-ChildItem "C:\Program Files (x86)" -Recurse -Filter "wireguard.exe" -ErrorAction SilentlyContinue
# Oder suche in allen Programmen
Get-ChildItem "C:\" -Recurse -Filter "wireguard.exe" -ErrorAction SilentlyContinue | Select-Object FullName
Tempor?re Firewall-Regeln zum Testen
Falls du schnell testen m?chtest, ohne spezifische Regeln:
# Als Administrator - ERLAUBE ALLEN AUSGEHENDEN TRAFFIC TEMPOR?R (NUR ZUM TESTEN!)
# WARNUNG: Diese Regel erlaubt ALLEN ausgehenden Traffic - nur zum Testen verwenden!
New-NetFirewallRule -DisplayName "TEST - Allow All Outbound (TEMPORARY)" `
-Direction Outbound `
-Action Allow `
-Enabled True
# Teste dann Grafana
# Falls es funktioniert: L?sche diese Regel und erstelle spezifische Regeln
# Remove-NetFirewallRule -DisplayName "TEST - Allow All Outbound (TEMPORARY)"
N?chste Schritte
Nach dem Erstellen der Firewall-Regeln:
- ? Firewall-Regeln erstellt
- ? WireGuard neu verbinden
- ? Teste Grafana-Zugriff
- ? Pr?fe Traefik-Logs (ich pr?fe dann, ob
ClientHost: 10.8.0.7erscheint)
Wichtige Hinweise
- Firewall-Regeln sollten spezifisch sein (nicht "Allow All")
- Programm-Regeln sind sicherer als allgemeine Regeln
- Interface-Regeln k?nnen helfen, wenn Programm-Regeln nicht funktionieren
- VPN-Netzwerk-Regeln sind am spezifischsten