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.

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:
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.
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ń!