Konfiguracja tuneli VPN z wykorzystaniem OpenSwan – Kompletny przewodnik
Linux

Konfiguracja tuneli VPN z wykorzystaniem OpenSwan – Kompletny przewodnik

Konfiguracja tuneli VPN z wykorzystaniem OpenSwan – Kompletny przewodnik

OpenSwan to popularna implementacja IPsec VPN na systemach Linux, często stosowana w starszych systemach lub tam, gdzie wymagane jest zachowanie kompatybilności ze starszymi rozwiązaniami. Chociaż obecnie OpenSwan jest stopniowo zastępowany przez StrongSwan, nadal znajduje zastosowanie w wielu środowiskach.

W tym artykule omówimy:
Jak skonfigurować tunel VPN IPsec za pomocą OpenSwan
Jak skonfigurować pliki konfiguracyjne OpenSwan
Jak zarządzać kluczami i transformacjami IPsec


1. Instalacja OpenSwan

📢 Na Debian/Ubuntu:

sudo apt update
sudo apt install openswan

📢 Na CentOS/RHEL:

sudo yum install openswan

📌 Sprawdzamy wersję OpenSwan:

ipsec --version

📌 Upewniamy się, że moduły IPsec są włączone:

lsmod | grep af_key

Jeśli nie są załadowane, dodajemy je ręcznie:

sudo modprobe af_key

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 OpenSwan – Kompletny przewodnik
Konfiguracja tuneli VPN z wykorzystaniem OpenSwan – Kompletny przewodnik

Konfiguracja OpenSwan na Serwerze A

📢 Edytujemy /etc/ipsec.conf:

config setup
    protostack=netkey
    nat_traversal=yes
    virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16
    oe=off
    interfaces=%defaultroute

conn site-to-site
    authby=secret
    auto=start
    left=203.0.113.1
    leftsubnet=192.168.1.0/24
    right=203.0.113.2
    rightsubnet=192.168.2.0/24
    ike=aes256-sha1;modp1024
    esp=aes256-sha1
    pfs=yes

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

203.0.113.1 203.0.113.2 : PSK "SilneHaslo123!"

📢 Restartujemy OpenSwan:

sudo systemctl restart ipsec
sudo systemctl enable ipsec

Konfiguracja OpenSwan na Serwerze B

📢 Edytujemy /etc/ipsec.conf:

config setup
    protostack=netkey
    nat_traversal=yes
    virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16
    oe=off
    interfaces=%defaultroute

conn site-to-site
    authby=secret
    auto=start
    left=203.0.113.2
    leftsubnet=192.168.2.0/24
    right=203.0.113.1
    rightsubnet=192.168.1.0/24
    ike=aes256-sha1;modp1024
    esp=aes256-sha1
    pfs=yes

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

203.0.113.2 203.0.113.1 : PSK "SilneHaslo123!"

📢 Restartujemy OpenSwan:

sudo systemctl restart ipsec
sudo systemctl enable ipsec

📌 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:

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

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

203.0.113.1 %any : PSK "SilneHaslo123!"

📢 Restartujemy OpenSwan:

sudo systemctl restart ipsec

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

nmcli connection add type vpn vpn-type openswan \
    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 certyfikatów dla uwierzytelniania

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 OpenSwan:

sudo systemctl restart ipsec

5. Podsumowanie

OpenSwan umożliwia konfigurację tuneli VPN IPsec
Obsługuje połączenia site-to-site i road warrior
Wspiera uwierzytelnianie PSK i certyfikaty
Dobrze sprawdza się w starszych systemach Linux

Czytaj  Konfiguracja serwera bazy danych (MySQL/MariaDB/PostgreSQL) w Debianie: Instalacja i konfiguracja serwera bazy danych

Polecane wpisy
Problemy z instalacją oprogramowania w Linux Ubuntu – jak je rozwiązać?
Problemy z instalacją oprogramowania w Linux Ubuntu – jak je rozwiązać?

Problemy z instalacją oprogramowania w Linux Ubuntu – jak je rozwiązać? Instalacja oprogramowania w systemie Linux Ubuntu może wydawać się Czytaj dalej

Zarządzanie użytkownikami i uprawnieniami w systemie Linux
Zarządzanie użytkownikami i uprawnieniami w systemie Linux

Zarządzanie użytkownikami i uprawnieniami w systemie Linux W systemach operacyjnych Linux, zarządzanie użytkownikami i uprawnieniami jest jednym z kluczowych aspektów Czytaj dalej