Konfiguracja tuneli VPN z wykorzystaniem StrongSwan – Kompletny przewodnik
Linux

Konfiguracja tuneli VPN z wykorzystaniem StrongSwan – Kompletny przewodnik

Konfiguracja tuneli VPN z wykorzystaniem StrongSwan – Kompletny przewodnik

StrongSwan to jedna z najpopularniejszych implementacji IPsec VPN na systemach Linux. Jest elastyczna, bezpieczna i wspiera różne metody uwierzytelniania oraz typy połączeń VPN.

W tym artykule pokażę:
Jak skonfigurować tunel VPN IPsec za pomocą StrongSwan
Jak utworzyć tunel site-to-site i road warrior
Jak skonfigurować różne metody uwierzytelniania (PSK, certyfikaty)


1. Instalacja StrongSwan

📢 Na Debian/Ubuntu:

sudo apt update
sudo apt install strongswan strongswan-pki libcharon-extra-plugins

📢 Na CentOS/RHEL:

sudo yum install strongswan

📌 Sprawdzamy wersję StrongSwan:

ipsec --version

2. Konfiguracja tunelu Site-to-Site (LAN ↔ LAN VPN)

Założenia:
🔹 Serwer A (192.168.1.1) – publiczny IP: 203.0.113.1
🔹 Serwer B (192.168.2.1) – publiczny IP: 203.0.113.2

 

Konfiguracja tuneli VPN z wykorzystaniem StrongSwan – Kompletny przewodnik
Konfiguracja tuneli VPN z wykorzystaniem StrongSwan – Kompletny przewodnik

Konfiguracja StrongSwan na Serwerze A

📢 Edytujemy /etc/ipsec.conf:

config setup
    charondebug="ike 2, knl 2, cfg 2"

conn site-to-site
    auto=start
    keyexchange=ikev2
    left=203.0.113.1
    leftsubnet=192.168.1.0/24
    right=203.0.113.2
    rightsubnet=192.168.2.0/24
    authby=secret
    ike=aes256-sha256-modp2048
    esp=aes256-sha256

📢 Dodajemy klucz PSK do /etc/ipsec.secrets:

203.0.113.1 203.0.113.2 : PSK "SilneHaslo123!"

📢 Restartujemy StrongSwan:

sudo systemctl restart strongswan
sudo systemctl enable strongswan

Konfiguracja StrongSwan na Serwerze B

📢 Edytujemy /etc/ipsec.conf:

config setup
    charondebug="ike 2, knl 2, cfg 2"

conn site-to-site
    auto=start
    keyexchange=ikev2
    left=203.0.113.2
    leftsubnet=192.168.2.0/24
    right=203.0.113.1
    rightsubnet=192.168.1.0/24
    authby=secret
    ike=aes256-sha256-modp2048
    esp=aes256-sha256

📢 Dodajemy klucz PSK do /etc/ipsec.secrets:

203.0.113.2 203.0.113.1 : PSK "SilneHaslo123!"

📢 Restartujemy StrongSwan:

sudo systemctl restart strongswan
sudo systemctl enable strongswan

📌 Testujemy tunel:

ipsec status
ping -c 4 192.168.2.1  # Z serwera A do serwera B
ping -c 4 192.168.1.1  # Z serwera B do serwera A

3. Konfiguracja VPN Road Warrior (Dostęp dla użytkowników zdalnych)

Uwierzytelnianie przy użyciu PSK

📢 Edytujemy /etc/ipsec.conf:

config setup
    charondebug="ike 2, knl 2, cfg 2"

conn roadwarrior
    auto=add
    keyexchange=ikev2
    left=203.0.113.1
    leftsubnet=0.0.0.0/0
    right=%any
    rightsourceip=10.10.10.0/24
    authby=secret
    ike=aes256-sha256-modp2048
    esp=aes256-sha256

📢 Dodajemy klucz PSK do /etc/ipsec.secrets:

203.0.113.1 %any : PSK "SilneHaslo123!"

📌 Restartujemy StrongSwan:

sudo systemctl restart strongswan

📌 Na kliencie (np. Linux) dodajemy połączenie VPN:

nmcli connection add type vpn vpn-type strongswan \
    con-name roadwarrior-vpn \
    ifname -- vpn.data username=myuser password=SilneHaslo123!

📢 Łączymy się:

nmcli connection up roadwarrior-vpn

📢 Testujemy tunel:

ip addr show
ping -c 4 10.10.10.1

4. Konfiguracja uwierzytelniania za pomocą certyfikatów

Generowanie certyfikatów

📢 Tworzymy katalog dla certyfikatów:

mkdir -p ~/pki/{cacerts,certs,private}

📢 Generujemy klucz CA:

pki --gen --type rsa --size 4096 --outform pem > ~/pki/private/ca-key.pem
pki --self --ca --lifetime 3650 --in ~/pki/private/ca-key.pem \
    --dn "CN=VPN CA" --outform pem > ~/pki/cacerts/ca-cert.pem

📢 Generujemy certyfikat dla serwera:

pki --gen --type rsa --size 4096 --outform pem > ~/pki/private/server-key.pem
pki --req --in ~/pki/private/server-key.pem --dn "CN=203.0.113.1" --outform pem > ~/pki/certs/server-req.pem
pki --sign --ca ~/pki/cacerts/ca-cert.pem --cakey ~/pki/private/ca-key.pem \
    --in ~/pki/certs/server-req.pem --outform pem > ~/pki/certs/server-cert.pem

📌 Przenosimy certyfikaty do /etc/ipsec.d/

sudo cp ~/pki/cacerts/ca-cert.pem /etc/ipsec.d/cacerts/
sudo cp ~/pki/certs/server-cert.pem /etc/ipsec.d/certs/
sudo cp ~/pki/private/server-key.pem /etc/ipsec.d/private/

📢 Restartujemy StrongSwan:

sudo systemctl restart strongswan

5. Podsumowanie

StrongSwan umożliwia konfigurację elastycznych i bezpiecznych tuneli VPN
Możemy skonfigurować zarówno połączenia site-to-site, jak i road warrior
Obsługa różnych metod uwierzytelniania (PSK, certyfikaty)
Dzięki IPsec, ruch VPN jest szyfrowany i odporny na ataki

Czytaj  Linux w Twórczości Multimedialnej: Edycja Grafiki, Audio i Wideo
Polecane wpisy
Utwórz kopię zapasową wszystkich danych Linux
Utwórz kopię zapasową wszystkich danych Linux

Utwórz kopię zapasową wszystkich danych Linux Regularne tworzenie kopii zapasowych danych jest kluczowe dla ochrony przed ich utratą w przypadku Czytaj dalej

Instalacja i konfiguracja serwera MySQL lub PostgreSQL w systemie Linux
Instalacja i konfiguracja serwera MySQL lub PostgreSQL w systemie Linux

Instalacja i konfiguracja serwera MySQL lub PostgreSQL w systemie Linux W dzisiejszym świecie, w którym aplikacje webowe, systemy zarządzania treścią Czytaj dalej