Jak nastavit VPN na bázi IPsec pomocí Strongswan na Debianu a Ubuntu
strongSwan je open source, multiplatformní, plně vybavená a široce používaná implementace VPN (Virtual Private Network) založená na IPsec, která běží na Linuxu, FreeBSD, OS X, Windows, Android a iOS. Jedná se především o klíčovacího démona, který podporuje protokoly Internet Key Exchange (IKEv1 a IKEv2) k vytvoření přidružení zabezpečení (SA silný>) mezi dvěma vrstevníky.
Tento článek popisuje, jak nastavit brány IPSec VPN site-to-site pomocí strongSwan na serverech Ubuntu a Debian . Pod pojmem site-to-site rozumíme, že každá bezpečnostní brána má za sebou podsíť. Kromě toho se partneři navzájem ověří pomocí předem sdíleného klíče (PSK).
Testovací prostředí
Nezapomeňte nahradit následující IP adresy vašimi skutečnými IP, abyste nakonfigurovali své prostředí.
Brána webu 1 (tecmint-devgateway)
OS 1: Debian or Ubuntu
Public IP: 10.20.20.1
Private IP: 192.168.0.101/24
Private Subnet: 192.168.0.0/24
Brána webu 2 (tecmint-prodgateway)
OS 2: Debian or Ubuntu
Public IP: 10.20.20.3
Private IP: 10.0.2.15/24
Private Subnet: 10.0.2.0/24
Krok 1: Povolení předávání paketů jádra
1. Nejprve musíte nakonfigurovat jádro tak, aby umožňovalo předávání paketů přidáním příslušných systémových proměnných do konfiguračního souboru /etc/sysctl.conf na obou bezpečnostních bránách.
sudo vim /etc/sysctl.conf
Vyhledejte následující řádky a odkomentujte je a nastavte jejich hodnoty podle obrázku (další informace si přečtěte v komentářích v souboru).
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
2. Dále načtěte nová nastavení spuštěním následujícího příkazu.
sudo sysctl -p
3. Pokud máte povolenou službu brány firewall UFW, musíte do konfiguračního souboru /etc/ufw/before.rules přidat následující pravidla těsně před pravidla filtrování v buď bezpečnostní brány.
Brána webu 1 (tecmint-devgateway)
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.0.2.0/24 -d 192.168.0.0/24 -j MASQUERADE
COMMIT
Brána webu 2 (tecmint-prodgateway)
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 192.168.0.0/24 -d 10.0.2.0/24 -j MASQUERADE
COMMIT
4. Po přidání pravidel brány firewall aplikujte nové změny restartováním UFW, jak je znázorněno.
sudo ufw disable
sudo ufw enable
Krok 2: Instalace strongSwan v Debianu a Ubuntu
5. Aktualizujte mezipaměť balíčků na obou bezpečnostních branách a nainstalujte balíček strongswan pomocí správce balíčků APT.
sudo apt update
sudo apt install strongswan
6. Jakmile je instalace dokončena, instalační skript spustí službu strongswan a umožní jí automatické spuštění při startu systému. Jeho stav a zda je povoleno můžete zkontrolovat pomocí následujícího příkazu.
sudo systemctl status strongswan.service
sudo systemctl is-enabled strongswan.service
Krok 3: Konfigurace bezpečnostních bran
7. Dále musíte nakonfigurovat bezpečnostní brány pomocí konfiguračního souboru /etc/ipsec.conf.
Brána webu 1 (tecmint-devgateway)
sudo cp /etc/ipsec.conf /etc/ipsec.conf.orig
sudo nano /etc/ipsec.conf
Zkopírujte a vložte následující konfiguraci do souboru.
config setup
charondebug="all"
uniqueids=yes
conn devgateway-to-prodgateway
type=tunnel
auto=start
keyexchange=ikev2
authby=secret
left=10.20.20.1
leftsubnet=192.168.0.101/24
right=10.20.20.3
rightsubnet=10.0.2.15/24
ike=aes256-sha1-modp1024!
esp=aes256-sha1!
aggressive=no
keyingtries=%forever
ikelifetime=28800s
lifetime=3600s
dpddelay=30s
dpdtimeout=120s
dpdaction=restart
Brána webu 2 (tecmint-prodgateway)
sudo cp /etc/ipsec.conf /etc/ipsec.conf.orig
sudo nano /etc/ipsec.conf
Zkopírujte a vložte následující konfiguraci do souboru.
config setup
charondebug="all"
uniqueids=yes
conn prodgateway-to-devgateway
type=tunnel
auto=start
keyexchange=ikev2
authby=secret
left=10.20.20.3
leftsubnet=10.0.2.15/24
right=10.20.20.1
rightsubnet=192.168.0.101/24
ike=aes256-sha1-modp1024!
esp=aes256-sha1!
aggressive=no
keyingtries=%forever
ikelifetime=28800s
lifetime=3600s
dpddelay=30s
dpdtimeout=120s
dpdaction=restart
Zde je význam každého konfiguračního parametru:
- config setup – určuje obecné konfigurační informace pro IPSec, které platí pro všechna připojení.
- charondebug – definuje, kolik výstupů ladění Charonu má být protokolováno.
- uniqueids – určuje, zda má být ID konkrétního účastníka ponecháno jedinečné.
- conn prodgateway-to-devgateway – definuje název připojení.
- type – určuje typ připojení.
- auto – jak zacházet s připojením při spuštění nebo restartu IPSec.
- keyexchange – definuje verzi protokolu IKE, která se má použít.
- authby – definuje, jak by se kolegové měli navzájem ověřovat.
- levá – definuje IP adresu rozhraní veřejné sítě levého účastníka.
- leftsubnet – uvádí soukromou podsíť za levým účastníkem.
- vpravo – určuje IP adresu rozhraní veřejné sítě pravého účastníka.
- rightsubnet – uvádí soukromou podsíť za levým účastníkem.
- ike – definuje seznam IKE/ISAKMP SA šifrovacích/ověřovacích algoritmů, které mají být použity. Můžete přidat seznam oddělený čárkami.
- esp – definuje seznam šifrovacích/ověřovacích algoritmů ESP, které mají být použity pro připojení. Můžete přidat seznam oddělený čárkami.
- aggressive – určuje, zda použít agresivní nebo hlavní režim.
- keyingtries – uvádí počet pokusů, které by měly být provedeny k vyjednání spojení.
- ikelifetime – uvádí, jak dlouho by měl klíčovací kanál připojení trvat, než bude znovu vyjednán.
- životnost – definuje, jak dlouho má konkrétní instance připojení trvat, od úspěšného vyjednávání do vypršení platnosti.
- dpddelay – specifikuje časový interval, ve kterém jsou R_U_THERE zprávy/informační výměny odesílány na peer.
- dpdtimeout – určuje časový limit, po kterém jsou všechna spojení s peerem v případě nečinnosti smazána.
- dpdaction – definuje, jak používat protokol Dead Peer Detection (DPD) ke správě připojení.
Další informace o výše uvedených konfiguračních parametrech naleznete na stránce ipsec.conf spuštěním příkazu.
man ipsec.conf
Krok 4: Konfigurace PSK pro ověřování Peer-to-Peer
8. Po konfiguraci obou bezpečnostních bran vygenerujte pomocí následujícího příkazu zabezpečený PSK, který budou používat kolegové.
head -c 24 /dev/urandom | base64
9. Dále přidejte PSK do souboru /etc/ipsec.secrets na obě brány.
sudo vim /etc/ipsec.secrets
Zkopírujte a vložte následující řádek.
------- Site 1 Gateway (tecmint-devgateway) -------
10.20.20.1 10.20.20.3 : PSK "qLGLTVQOfqvGLsWP75FEtLGtwN3Hu0ku6C5HItKo6ac="
------- Site 2 Gateway (tecmint-prodgateway) -------
10.20.20.3 10.20.20.1 : PSK "qLGLTVQOfqvGLsWP75FEtLGtwN3Hu0ku6C5HItKo6ac="
10. Restartujte program IPSec a zkontrolujte jeho stav, abyste viděli připojení.
sudo ipsec restart
sudo ipsec status
11. Nakonec ověřte, že máte přístup k soukromým podsítím z obou bezpečnostních bran spuštěním příkazu ping.
ping 192.168.0.101
ping 10.0.2.15
12. Kromě toho můžete zastavit a spustit IPSec, jak je znázorněno.
sudo ipsec stop
sudo ipsec start
13. Chcete-li se dozvědět více o příkazech IPSec pro ruční vyvolání připojení a další, podívejte se na stránku nápovědy IPSec.
ipsec --help
To je vše! V tomto článku jsme popsali, jak nastavit site-to-site IPSec VPN pomocí strongSwan na serverech Ubuntu a Debian, kde obojí bezpečnostní brány byly nakonfigurovány tak, aby se navzájem ověřovaly pomocí PSK. Máte-li jakékoli dotazy nebo myšlenky, o které se chcete podělit, kontaktujte nás prostřednictvím formuláře pro zpětnou vazbu níže.