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

🔒 Jak wdrożyć HTTPS w Apache za pomocą mkcert – prosta i bezpieczna konfiguracja SSL

Bezpieczeństwo połączenia HTTPS to dziś standard — nawet w sieciach lokalnych i aplikacjach testowych. W tym poradniku pokażę Ci, jak w prosty sposób wdrożyć SSL w Apache z pomocą narzędzia mkcert , które tworzy w pełni zaufane certyfikaty lokalne — bez potrzeby kontaktu z Let’s Encrypt czy urzędami certyfikacji. 🧩 Dlaczego warto używać mkcert? mkcert to lekkie narzędzie, które automatycznie generuje certyfikaty zaufane przez przeglądarkę — bez ostrzeżeń o „niebezpiecznym połączeniu”. ✅ działa w sieci lokalnej, ✅ nie wymaga dostępu do Internetu, ✅ certyfikaty są natychmiast zaufane po instalacji CA, ✅ idealne dla środowisk firmowych i intranetów. ⚙️ Krok 1: Instalacja Apache sudo apt update sudo apt install apache2 -y sudo systemctl enable apache2 sudo systemctl start apache2 Po instalacji otwórz w przeglądarce: http://10.0.0.123 Powinna się wyświetlić strona powitalna Apache. 🔧 Krok 2: Instalacja mkcert sudo apt install libnss3-tools wget...

API SHOPER

Jak korzystać z API Shoper - Kompletny przewodnik 1. Wprowadzenie API Shoper umożliwia zautomatyzowanie wielu operacji w Twoim sklepie internetowym, takich jak zarządzanie produktami, zdjęciami, zamówieniami i wieloma innymi elementami. W tym artykule pokażę Ci krok po kroku, jak połączyć się z API Shoper oraz wykonać podstawowe operacje, takie jak dodawanie produktów, zarządzanie zdjęciami i przypisywanie produktów powiązanych. 2. Autoryzacja - Uzyskanie Access Token Aby korzystać z API Shoper, najpierw musisz uzyskać access token : POST https://twojsklep.shoper.pl/webapi/oauth/token Content-Type: application/x-www-form-urlencoded grant_type=client_credentials&client_id=TWOJE_CLIENT_ID&client_secret=TWOJE_CLIENT_SECRET Przykład w PHP: <?php $client_id = 'TWOJE_CLIENT_ID'; $client_secret = 'TWOJE_CLIENT_SECRET'; $ch = curl_init('https://twojsklep.shoper.pl/webapi/oauth/token'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch...

Najbardziej przydatne komendy PowerShell dla admina

Administracja lokalną domeną oraz Microsoft 365 Business Standard wymaga efektywnego zarządzania użytkownikami, komputerami, bezpieczeństwem i integracją z chmurą. Oto zestaw kluczowych komend PowerShell, które pomogą w codziennej pracy administratora IT. 🔹 1. Zarządzanie użytkownikami w Active Directory Lista użytkowników w domenie: Get-ADUser -Filter * Dodanie nowego użytkownika: New-ADUser -Name "Jan Kowalski" -UserPrincipalName jan.kowalski@firma.local -AccountPassword (ConvertTo-SecureString "Hasło123!" -AsPlainText -Force) -Enabled $true Resetowanie hasła użytkownika: Set-ADAccountPassword -Identity jan.kowalski -NewPassword (ConvertTo-SecureString "NoweHasło!" -AsPlainText -Force) Dodanie użytkownika do grupy: Add-ADGroupMember -Identity "IT_Admins" -Members jan.kowalski 🔹 2. Zarządzanie komputerami w domenie Lista komputerów w domenie: Get-ADComputer -Filter * Dodanie nowego komputera do domen...