Vyhledávání na webu

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.