Automatyczne generowanie konfiguracji WireGuard dla klienta na Windows
WireGuard to nowoczesny, lekki i bezpieczny protokół VPN, który zyskuje coraz większą popularność. W tym wpisie pokażę, jak automatycznie generować konfiguracje dla klientów WireGuard na systemie Windows, korzystając z PowerShell.
Problem: Polityka wykonawcza PowerShell
Podczas próby uruchomienia skryptu PowerShell możesz napotkać błąd:
... cannot be loaded because running scripts is disabled on this system.
Ten błąd wynika z domyślnych ustawień polityki wykonawczej (Execution Policy) w PowerShell. Aby go rozwiązać, należy zmienić tę politykę na bardziej elastyczną, np. RemoteSigned:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
Po tej zmianie skrypty PowerShell będą mogły być uruchamiane bez problemów. Wiecej na temat polityki wykonawczej w PowerShellu w artykule "Polityka wykonawcza skryptów w PowerShell"
Skrypt do generowania konfiguracji WireGuard
Poniżej znajduje się skrypt PowerShell, który generuje plik konfiguracyjny WireGuard dla klienta. Skrypt przyjmuje dwa parametry:
clientIP– adres IP klienta w sieci WireGuard (np.10.0.0.2/32).AllowedIPs– zakres adresów IP, które klient może routować przez tunel (domyślnie0.0.0.0/0).
param (
[string]$clientIP, # Parametr 1: Adres IP klienta w sieci WireGuard
[string]$AllowedIPs = "0.0.0.0/0" # Parametr 2: Dozwolone adresy IP
)
if (-not $clientIP) {
Write-Host "Błąd: Musisz podać parametr clientIP." -ForegroundColor Red
exit 1
}
$serverPublicKey = "SERVER_PUBLIC_KEY" # Klucz publiczny serwera
$serverEndpoint = "SERVER_IP:51820" # Adres IP i port serwera
$clientPrivateKey = (wg genkey) # Generowanie klucza prywatnego
$clientPublicKey = ($clientPrivateKey | wg pubkey) # Generowanie klucza publicznego
$configContent = @"
[Interface]
PrivateKey = $clientPrivateKey
Address = $clientIP
DNS = 8.8.8.8
[Peer]
PublicKey = $serverPublicKey
Endpoint = $serverEndpoint
AllowedIPs = $AllowedIPs
PersistentKeepalive = 25
"@
$configFilePath = "C:\path\to\client_$clientIP.conf"
$configContent | Out-File -FilePath $configFilePath -Encoding ASCII
Write-Host "Konfiguracja została zapisana w $configFilePath" -ForegroundColor Green
Jak używać skryptu?
Skrypt można uruchomić z poziomu PowerShell, podając odpowiednie parametry:
.\generate-wireguard-config.ps1 -clientIP "10.0.0.2/32" -AllowedIPs "10.0.0.0/24"
Jeśli nie podasz parametru AllowedIPs, skrypt użyje domyślnej wartości 0.0.0.0/0.
Podsumowanie
Dzięki temu skryptowi możesz szybko i łatwo generować konfiguracje WireGuard dla klientów na systemie Windows. Skrypt jest elastyczny i pozwala na dostosowanie parametrów, takich jak adres IP klienta czy zakres dozwolonych adresów IP. Jeśli masz dodatkowe pytania lub potrzebujesz pomocy, daj znać w komentarzach!
Komentarze
Prześlij komentarz