Przejdź do głównej zawartości

Generowanie konfiguracji dla klienta Wireguard - skrypt Powershell

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ślnie 0.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

Popularne posty z tego bloga

Generowanie certyfikatów Let's Encrypt w Windows

Jak wygenerować certyfikat Let's Encrypt w systemie Windows? Przewodnik krok po kroku Certyfikaty SSL/TLS są niezbędne do zabezpieczenia komunikacji między użytkownikami a serwerem. Let's Encrypt to darmowa, zaufana organizacja, która umożliwia generowanie certyfikatów SSL w prosty sposób. W tym wpisie pokażemy, jak wygenerować certyfikat Let's Encrypt w systemie Windows za pomocą narzędzia Certbot oraz jakie opcje i alternatywy są dostępne. Krok 1: Zainstaluj Python Certbot wymaga Pythona do działania. Jeśli nie masz go jeszcze zainstalowanego: Pobierz instalator Pythona ze strony python.org . Uruchom instalator i zaznacz opcję "Add Python to PATH" . Krok 2: Zainstaluj Certbot Otwórz wiersz polecenia (cmd) jako administrator. Zainstaluj Certbot za pomocą pip: pip install certbot Krok 3: Wygeneruj certyfikat ...

Polityka wykonawcza skryptów w PowerShellu

Polityka wykonawcza (Execution Policy) w PowerShell – co to jest i jak ją zmienić? PowerShell to potężne narzędzie do automatyzacji i zarządzania systemem Windows. Jednak domyślne ustawienia bezpieczeństwa mogą uniemożliwić uruchamianie skryptów. W tym wpisie wyjaśniam, czym jest polityka wykonawcza (Execution Policy), jak ją sprawdzić i zmienić, aby móc swobodnie korzystać z PowerShell. Czym jest polityka wykonawcza (Execution Policy)? Polityka wykonawcza to mechanizm bezpieczeństwa w PowerShell, który kontroluje, jakie skrypty mogą być uruchamiane na systemie. Ma ona na celu zapobieganie przypadkowemu lub złośliwemu uruchomieniu niebezpiecznych skryptów. Dostępne polityki wykonawcze PowerShell oferuje kilka poziomów polityki wykonawczej: Restricted – domyślna polityka. Blokuje wszystkie skrypty PowerShell. Można uruchamiać tylko polecenia wprowadzane bezpośrednio w konsoli. AllSigned – pozwala na uruchamianie tylko skryptów pod...

Kalendarz Google - PHP

Jak dodać wydarzenia do Kalendarza Google w PHP? Wprowadzenie Google Calendar API pozwala na automatyczne dodawanie wydarzeń do kalendarza Google za pomocą PHP. W tym artykule pokażemy dwa sposoby: Uwierzytelnienie użytkownika przez OAuth 2.0 Wykorzystanie konta usługi (Service Account) Metoda 1: OAuth 2.0 – Autoryzacja użytkownika 1. Utworzenie projektu w Google Cloud Console 1. Przejdź do Google Cloud Console . 2. Utwórz nowy projekt lub wybierz istniejący. 3. Włącz Google Calendar API w sekcji API & Services . 2. Konfiguracja danych uwierzytelniających 1. Utwórz dane uwierzytelniające: OAuth 2.0 Client ID . 2. Pobierz plik JSON zawierający klucz autoryzacyjny. 3. Instalacja Google Client Library w PHP composer require google/apiclient:^2.0 4. Autoryzacja użytkownika Tworzymy plik auth.php : <?php require 'vendor/autoload.php'; session_start(); $client = new Google_Client(); $client->setAuthConfig('credentials.json'); $clie...