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  Konfiguracja serwera SSH w Debianie: Zabezpieczanie serwera SSH (zmiana portu, wyłączenie logowania roota, uwierzytelnianie kluczem publicznym)
Polecane wpisy
Formatowanie partycji dyskowej w systemie Linux: Poradnik dla użytkowników
Formatowanie partycji dyskowej w systemie Linux: Poradnik dla użytkowników

Formatowanie partycji dyskowej w systemie Linux: Poradnik dla użytkowników Formatowanie partycji dyskowej to proces nadawania jej określonego systemu plików, który Czytaj dalej

Zarządzanie użytkownikami i uprawnieniami bazy danych w Debianie
Zarządzanie użytkownikami i uprawnieniami bazy danych w Debianie

Zarządzanie użytkownikami i uprawnieniami bazy danych w Debianie Wstęp Zarządzanie użytkownikami i uprawnieniami bazy danych jest kluczowym elementem administracji systemami Czytaj dalej

Marek "Netbe" Lampart Inżynier informatyki Marek Lampart to doświadczony inżynier informatyki z ponad 25-letnim stażem w zawodzie. Specjalizuje się w systemach Windows i Linux, bezpieczeństwie IT, cyberbezpieczeństwie, administracji serwerami oraz diagnostyce i optymalizacji systemów. Na netbe.pl publikuje praktyczne poradniki, analizy i instrukcje krok po kroku, pomagając administratorom, specjalistom IT oraz zaawansowanym użytkownikom rozwiązywać realne problemy techniczne.