Konfiguracja IPsec z IKEv2 – bezpieczny tunel VPN
Linux

Konfiguracja IPsec z IKEv2 – bezpieczny tunel VPN

Konfiguracja IPsec z IKEv2 – bezpieczny tunel VPN

Protokoły IPsec i IKEv2 to jedno z najbezpieczniejszych rozwiązań do tworzenia tuneli VPN. IPsec zapewnia szyfrowanie i uwierzytelnianie pakietów, a IKEv2 odpowiada za dynamiczną wymianę kluczy i negocjację parametrów połączenia.

W tym artykule omówimy:

Jak skonfigurować IPsec z IKEv2 na serwerze Linux?
Generowanie i wymiana kluczy IKEv2.
Konfiguracja transformacji IPsec (ESP, AH).
Bezpieczne połączenie VPN krok po kroku.


1. Czym jest IPsec i IKEv2?

🔹 IPsec (Internet Protocol Security) – protokół zabezpieczający ruch IP przez szyfrowanie i uwierzytelnianie.
🔹 IKEv2 (Internet Key Exchange version 2) – protokół negocjacji kluczy i uwierzytelniania w IPsec.

📌 Zalety IKEv2:
Lepsza stabilność – automatyczne ponowne nawiązywanie połączenia po zerwaniu.
Większa wydajność – szybkie zestawianie tunelu VPN.
Obsługa mobilności – idealne do telefonów i urządzeń przenośnych.

Konfiguracja IPsec z IKEv2 – bezpieczny tunel VPN
Konfiguracja IPsec z IKEv2 – bezpieczny tunel VPN

2. Instalacja i konfiguracja StrongSwan (IPsec/IKEv2) na Linux

W tym poradniku użyjemy StrongSwan, który jest jednym z najpopularniejszych pakietów IPsec na systemach Linux.

📢 Instalacja StrongSwan:

Debian/Ubuntu:

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

CentOS/RHEL:

sudo yum install epel-release
sudo yum install strongswan

3. Generowanie i wymiana kluczy IKEv2

Aby zestawić bezpieczne połączenie, należy wygenerować klucz prywatny, certyfikat serwera i certyfikat klienta.

📢 Tworzenie katalogu dla certyfikatów:

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

📢 Generowanie klucza prywatnego dla CA:

ipsec pki --gen --outform pem > ~/pki/private/ca-key.pem

📢 Tworzenie certyfikatu CA:

ipsec pki --self --in ~/pki/private/ca-key.pem --dn "CN=My VPN CA" --ca --outform pem > ~/pki/cacerts/ca-cert.pem

📢 Generowanie klucza prywatnego serwera VPN:

ipsec pki --gen --outform pem > ~/pki/private/server-key.pem

📢 Tworzenie certyfikatu serwera VPN:

ipsec pki --pub --in ~/pki/private/server-key.pem | ipsec pki --issue --lifetime 3650 --cacert ~/pki/cacerts/ca-cert.pem --cakey ~/pki/private/ca-key.pem --dn "CN=vpn.example.com" --san "vpn.example.com" --flag serverAuth --flag ikeIntermediate --outform pem > ~/pki/certs/server-cert.pem

📌 Ważne!
Zastąp vpn.example.com swoją rzeczywistą domeną lub adresem IP serwera.

Czytaj  Linux Mint: Konfiguracja Wi-Fi w kilku prostych krokach

4. Konfiguracja IPsec/IKEv2

📢 Edytujemy plik konfiguracyjny:

sudo nano /etc/ipsec.conf

Dodajemy konfigurację:

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

conn ikev2-vpn
    auto=add
    compress=yes
    type=tunnel
    keyexchange=ikev2
    ike=aes256-sha2_256-modp2048!
    esp=aes256-sha2_256!
    dpdaction=clear
    dpddelay=300s
    left=%any
    leftid=@vpn.example.com
    leftcert=server-cert.pem
    leftsendcert=always
    leftsubnet=0.0.0.0/0
    right=%any
    rightdns=8.8.8.8,8.8.4.4
    rightsourceip=10.10.10.0/24
    rightsendcert=never

📌 Co oznaczają te opcje?

  • keyexchange=ikev2 – wymuszamy użycie IKEv2.
  • ike=aes256-sha2_256-modp2048! – ustalamy algorytmy szyfrowania dla IKE.
  • esp=aes256-sha2_256! – określamy algorytmy szyfrowania dla ESP.
  • left – ustawienia serwera VPN.
  • right – ustawienia klientów VPN.

5. Konfiguracja uwierzytelniania użytkowników

📢 Edytujemy plik /etc/ipsec.secrets

sudo nano /etc/ipsec.secrets

Dodajemy:

vpn.example.com : RSA "server-key.pem"
user1 : EAP "haslo123"

📌 To ustawienie oznacza, że użytkownik user1 będzie się logował hasłem haslo123.


6. Włączenie i uruchomienie IPsec/IKEv2

📢 Restartujemy StrongSwan:

sudo systemctl restart strongswan
sudo systemctl enable strongswan

📢 Sprawdzamy status połączenia:

sudo ipsec status

📢 Testowanie połączenia VPN:

sudo ipsec up ikev2-vpn

7. Konfiguracja transformacji IPsec (ESP, AH)

IPsec używa dwóch głównych protokołów zabezpieczeń:

🔹 ESP (Encapsulating Security Payload) – szyfruje i uwierzytelnia pakiety.
🔹 AH (Authentication Header) – tylko uwierzytelnia pakiety, bez szyfrowania.

📢 ESP + SHA-256 + AES-256:

esp=aes256-sha2_256!

📢 AH (opcjonalnie):

authby=ah

💡 ESP jest rekomendowanym protokołem, ponieważ zapewnia pełne szyfrowanie transmisji.


8. Podsumowanie

IPsec z IKEv2 to jedno z najbezpieczniejszych rozwiązań VPN.
StrongSwan pozwala na łatwą konfigurację na serwerach Linux.
IKEv2 umożliwia szybką wymianę kluczy i stabilne połączenie.
ESP zapewnia szyfrowanie danych, a AH – integralność pakietów.

💡 Teraz Twój serwer VPN jest gotowy do obsługi bezpiecznych połączeń!

Polecane wpisy
Ubuntu poradnik
Ubuntu poradnik

Ubuntu to jedna z najpopularniejszych dystrybucji Linuxa, dostępna dla każdego. Jest łatwy w użyciu i oferuje szeroki zakres funkcji. Istnieje Czytaj dalej