Konfiguracja WireGuard – szybki i bezpieczny VPN
Linux

Konfiguracja WireGuard – szybki i bezpieczny VPN

Konfiguracja WireGuard – szybki i bezpieczny VPN

WireGuard to nowoczesny, lekki i bezpieczny protokół VPN, który oferuje wyższą wydajność i lepszą ochronę niż tradycyjne rozwiązania, takie jak OpenVPN czy IPsec. Jest łatwy w konfiguracji, a dzięki szyfrowaniu opartego na krzywych eliptycznych (Curve25519) zapewnia solidną ochronę transmisji.

W tym poradniku dowiesz się:
Jak skonfigurować WireGuard na serwerze i kliencie
Jak wygenerować klucze publiczne i prywatne
Jak skonfigurować interfejsy WireGuard i routing


1. Instalacja WireGuard

📢 Na Debian/Ubuntu:

sudo apt update
sudo apt install wireguard

📢 Na CentOS/RHEL:

sudo yum install epel-release
sudo yum install wireguard-tools

📢 Na Arch Linux:

sudo pacman -S wireguard-tools

2. Generowanie kluczy publicznych i prywatnych

WireGuard używa kluczy publicznych i prywatnych do uwierzytelniania i szyfrowania. Każdy klient oraz serwer potrzebuje unikalnego zestawu kluczy.

Konfiguracja WireGuard – szybki i bezpieczny VPN
Konfiguracja WireGuard – szybki i bezpieczny VPN

📌 Tworzymy katalog na klucze:

mkdir -p /etc/wireguard/keys
chmod 700 /etc/wireguard/keys
cd /etc/wireguard/keys

📌 Generujemy klucze serwera:

wg genkey | tee privatekey | wg pubkey > publickey

📌 Generujemy klucze klienta:

wg genkey | tee client_privatekey | wg pubkey > client_publickey

📌 Sprawdzamy klucze:

cat privatekey
cat publickey

3. Konfiguracja serwera WireGuard

📢 Tworzymy plik konfiguracyjny:

sudo nano /etc/wireguard/wg0.conf

📌 Dodajemy konfigurację serwera:

[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = SERVER_PRIVATE_KEY
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]
PublicKey = CLIENT_PUBLIC_KEY
AllowedIPs = 10.0.0.2/32

📌 Podmieniamy SERVER_PRIVATE_KEY na rzeczywisty klucz:

sudo sed -i "s|SERVER_PRIVATE_KEY|$(cat /etc/wireguard/keys/privatekey)|" /etc/wireguard/wg0.conf

📌 Włączamy przekazywanie pakietów:

echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

📌 Uruchamiamy i dodajemy WireGuard do autostartu:

sudo systemctl start wg-quick@wg0
sudo systemctl enable wg-quick@wg0

📌 Sprawdzamy status:

sudo systemctl status wg-quick@wg0

4. Konfiguracja klienta WireGuard

📢 Tworzymy plik konfiguracyjny na kliencie:

sudo nano /etc/wireguard/wg0.conf

📌 Dodajemy konfigurację klienta:

[Interface]
Address = 10.0.0.2/24
PrivateKey = CLIENT_PRIVATE_KEY
DNS = 8.8.8.8

[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = SERWER_IP:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25

📌 Podmieniamy CLIENT_PRIVATE_KEY na rzeczywisty klucz:

sudo sed -i "s|CLIENT_PRIVATE_KEY|$(cat /etc/wireguard/keys/client_privatekey)|" /etc/wireguard/wg0.conf

📌 Uruchamiamy WireGuard na kliencie:

sudo systemctl start wg-quick@wg0
sudo systemctl enable wg-quick@wg0

📌 Sprawdzamy status:

sudo wg show

5. Konfiguracja routingu i przekierowania ruchu

📌 Dodajemy reguły iptables na serwerze:

sudo iptables -A FORWARD -i wg0 -o eth0 -j ACCEPT
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

📌 Zapisujemy reguły iptables:

sudo apt install iptables-persistent
sudo netfilter-persistent save

📌 Testujemy tunel VPN:

ping 10.0.0.1
ping 8.8.8.8

Jeśli odpowiedzi wracają, WireGuard działa poprawnie! 🎉

Czytaj  Konfiguracja zapory sieciowej w Linuksie na przykładzie iptables

6. Automatyczne uruchamianie WireGuard

📢 Dodajemy usługę do autostartu:

sudo systemctl enable wg-quick@wg0

📢 Sprawdzamy interfejsy:

ip a

📢 Lista podłączonych klientów:

sudo wg

7. Testowanie połączenia

📌 Pingujemy serwer z klienta:

ping 10.0.0.1

📌 Pingujemy klienta z serwera:

ping 10.0.0.2

📌 Sprawdzamy stan WireGuard:

sudo wg show

Jeśli wszystko działa poprawnie, połączenie VPN jest gotowe do użytku! 🎉


8. Podsumowanie

WireGuard to nowoczesne, szybkie i bezpieczne rozwiązanie VPN
Prosta konfiguracja i niskie zużycie zasobów
Łatwe zarządzanie kluczami i konfiguracją
Możliwość szybkiego uruchomienia w środowiskach produkcyjnych

📌 Dzięki tej konfiguracji masz w pełni funkcjonalny serwer VPN oparty na WireGuard!

Polecane wpisy
Jak sprawdzić model dysku twardego w Linux
Jak sprawdzić model dysku twardego w Linux

Jak sprawdzić model dysku twardego Linux Model dysku twardego to informacja, która może być przydatna w różnych sytuacjach. Na przykład, Czytaj dalej

Tworzenie użytkownika w systemie Linux
Tworzenie użytkownika w systemie Linux

Tworzenie użytkownika w systemie Linux – Kompletny przewodnik System Linux, znany ze swojej elastyczności i wszechstronności, pozwala administratorom na efektywne Czytaj dalej