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  Jak ustawić routing OSPFv3 lub BGP4+ na IPv6?

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
Tworzenie Własnych Skryptów do Monitorowania Zasobów Systemowych
Tworzenie Własnych Skryptów do Monitorowania Zasobów Systemowych

Monitorowanie zasobów systemowych jest ważną częścią zarządzania systemami operacyjnymi. Pozwala identyfikować potencjalne problemy z wydajnością i ostrzegać o nadmiernym wykorzystaniu 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.