Vyhledávání na webu

Jak nastavit VPN na bázi IPsec pomocí Strongswan na CentOS/RHEL 8


strongSwan je open source, multiplatformní, moderní a kompletní řešení VPN založené na IPsec pro Linux, které poskytuje plnou podporu pro Internet Key Exchange (jak IKEv1, tak IKEv2) k vytvoření přidružení zabezpečení (SA) mezi dvěma partnery. Je plně vybavený, modulární a nabízí desítky pluginů, které vylepšují základní funkce.

Související článek: Jak nastavit VPN na bázi IPsec pomocí Strongswan na Debianu a Ubuntu

V tomto článku se dozvíte, jak nastavit brány IPsec VPN typu site-to-site pomocí strongSwan na serverech CentOS/RHEL 8. To umožňuje kolegům vzájemně se ověřovat pomocí silného předsdíleného klíče (PSK). Nastavení typu site-to-site znamená, že každá bezpečnostní brána má za sebou podsíť.

Testovací prostředí

Nezapomeňte během konfigurací používat své skutečné IP adresy a postupujte podle pokynů.

Brána webu 1
Public IP: 192.168.56.7
Private IP: 10.10.1.1/24
Private Subnet: 10.10.1.0/24
Brána webu 2
Public IP:  192.168.56.6
Private IP: 10.20.1.1/24
Private Subnet: 10.20.1.0/24

Krok 1: Povolení předávání IP adresy jádra v CentOS 8

1. Začněte povolením funkce předávání IP adresy jádra v konfiguračním souboru /etc/sysctl.conf na obou branách VPN.

vi /etc/sysctl.conf

Přidejte tyto řádky do 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. Po uložení změn do souboru spusťte následující příkaz k načtení nových parametrů jádra za běhu.

sysctl -p

3. Dále vytvořte trvalou statickou cestu v souboru /etc/sysconfig/network-scripts/route-eth0 na obou bezpečnostních bránách.

vi /etc/sysconfig/network-scripts/route-eth0

Přidejte do souboru následující řádek.

#Site 1 Gateway
10.20.1.0/24  via 192.168.56.7

#Site 2 Gateway
10.10.1.0/24 via 192.168.56.6

4. Poté restartujte správce sítě, aby se nové změny uplatnily.

systemctl restart NetworkManager

Krok 2: Instalace strongSwan v CentOS 8

5. Balíček strongswan je poskytován v úložišti EPEL. Chcete-li jej nainstalovat, musíte povolit úložiště EPEL a poté nainstalovat strongwan na obě bezpečnostní brány.

dnf install epel-release
dnf install strongswan

6. Chcete-li zkontrolovat verzi strongswan nainstalované na obou branách, spusťte následující příkaz.

strongswan version

7. Dále spusťte službu strongswan a povolte, aby se automaticky spouštěla při spouštění systému. Poté ověřte stav na obou bezpečnostních branách.

systemctl start strongswan 
systemctl enable strongswan
systemctl status strongswan

Poznámka: Nejnovější verze strongswan v CentOS/REHL 8 přichází s podporou obou swanctl (nový přenosný nástroj příkazového řádku představený ve verzi strongSwan 5.2.0, který se používá ke konfiguraci, ovládání a sledování démona IKE Charon pomocí pluginu vici) a starter (nebo ipsec) pomocí zastaralého pluginu zdvihu.

8. Hlavním konfiguračním adresářem je /etc/strongswan/, který obsahuje konfigurační soubory pro oba pluginy:

ls /etc/strongswan/

V této příručce použijeme nástroj IPsec, který se spouští pomocí příkazu strongswan a rozhraní zdvihu. Použijeme tedy následující konfigurační soubory:

  • /etc/strongswan/ipsec.conf – konfigurační soubor pro subsystém strongSwan IPsec.
  • /etc/strongswan/ipsec.secrets – tajný soubor.

Krok 3: Konfigurace bezpečnostních bran

9. V tomto kroku musíte nakonfigurovat profily připojení na každé bezpečnostní bráně pro každý web pomocí konfiguračního souboru strongswan /etc/strongswan/ipsec.conf.

Konfigurace profilu připojení Site 1

cp /etc/strongswan/ipsec.conf /etc/strongswan/ipsec.conf.orig
vi /etc/strongswan/ipsec.conf

Zkopírujte a vložte následující konfiguraci do souboru.

config setup
        charondebug="all"
        uniqueids=yes
conn ateway1-to-gateway2
        type=tunnel
        auto=start
        keyexchange=ikev2
        authby=secret
        left=192.168.56.7
        leftsubnet=10.10.1.1/24
        right=192.168.56.6
        rightsubnet=10.20.1.1/24
        ike=aes256-sha1-modp1024!
        esp=aes256-sha1!
        aggressive=no
        keyingtries=%forever
        ikelifetime=28800s
        lifetime=3600s
        dpddelay=30s
        dpdtimeout=120s
        dpdaction=restart

Konfigurace profilu připojení Site 2

cp /etc/strongswan/ipsec.conf /etc/strongswan/ipsec.conf.orig
vi /etc/strongswan/ipsec.conf

Zkopírujte a vložte do souboru následující konfiguraci:

config setup
        charondebug="all"
        uniqueids=yes
conn 2gateway-to-gateway1
        type=tunnel
        auto=start
        keyexchange=ikev2
        authby=secret
        left=192.168.56.6
        leftsubnet=10.20.1.1/24
        right=192.168.56.7
        rightsubnet=10.10.1.1/24
        ike=aes256-sha1-modp1024!
        esp=aes256-sha1!
        aggressive=no
        keyingtries=%forever
        ikelifetime=28800s
        lifetime=3600s
        dpddelay=30s
        dpdtimeout=120s
        dpdaction=restart

Pojďme si stručně popsat každý z výše uvedených konfiguračních parametrů:

  • nastavení konfigurace – definuje obecné konfigurační informace pro IPSec, které platí pro všechna připojení.
  • charondebug – určuje, 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é.
  • gateway1-to-gateway2 – slouží k nastavení názvu připojení.
  • type – určuje typ připojení.
  • Automaticky – používá se k deklaraci způsobu zpracování připojení při spuštění nebo restartu IPSec.
  • keyexchange – deklaruje verzi protokolu IKE, která se má použít.
  • authby – určuje, jak se mají kolegové navzájem ověřovat.
  • left – deklaruje IP adresu rozhraní veřejné sítě levého účastníka.
  • leftsubnet – deklaruje soukromou podsíť za levým účastníkem.
  • vpravo – deklaruje IP adresu rozhraní veřejné sítě správného účastníka.
  • rightsubnet – deklaruje soukromou podsíť za levým účastníkem.
  • ike – používá se k deklaraci seznamu šifrovacích/ověřovacích algoritmů IKE/ISAKMP SA, které mají být použity. Všimněte si, že toto může být seznam oddělený čárkami.
  • esp – uvádí seznam šifrovacích/ověřovacích algoritmů ESP, které mají být použity pro připojení.
  • agresivní – deklaruje, zda použít agresivní nebo hlavní režim.
  • keyingtries – deklaruje počet pokusů, které by měly být provedeny k vyjednání spojení.
  • ikelifetime – určuje, jak dlouho by měl klíčovací kanál připojení trvat, než bude znovu vyjednán.
  • životnost – určuje, jak dlouho má konkrétní instance připojení trvat, od úspěšného vyjednávání do vypršení platnosti.
  • dpddelay – deklaruje časový interval, ve kterém jsou R_U_THERE zprávy/informační výměny odesílány na peer.
  • dpdtimeout – používá se k deklaraci časového limitu, po kterém jsou v případě nečinnosti smazána všechna spojení s peerem.
  • dpdaction – určuje, jak používat protokol Dead Peer Detection (DPD) ke správě připojení.

Popis všech konfiguračních parametrů subsystému strongSwan IPsec naleznete na manuálové stránce ipsec.conf.

man ipsec.conf

Krok 4: Konfigurace PSK pro ověřování Peer-to-Peer

10. Dále musíte vygenerovat silné PSK, které budou používat kolegové k ověření následovně.

head -c 24 /dev/urandom | base64

11. Přidejte PSK do souboru /etc/strongswan/ipsec.conf na obou bezpečnostních bránách.

vi /etc/strongswan/ipsec.secrets

Zadejte do souboru následující řádek.

#Site 1 Gateway
192.168.56.7  192.168.56.6 : PSK "0GE0dIEA0IOSYS2o22wYdicj/lN4WoCL"

#Site 1 Gateway
192.168.56.6  192.168.56.7 : PSK "0GE0dIEA0IOSYS2o22wYdicj/lN4WoCL"

12. Poté spusťte službu strongsan a zkontrolujte stav připojení.

systemctl restart strongswan
strongswan status

13. Spuštěním příkazu ping otestujte, zda máte přístup k soukromým podsítím z některé z bezpečnostních bran.

ping 10.20.1.1
ping 10.10.1.1

14. V neposlední řadě, pokud se chcete dozvědět více o příkazech strongswan pro ruční vyvolání/snížení připojení a další, podívejte se na stránku nápovědy pro strongswan.

strongswan --help

To je prozatím vše! Chcete-li se s námi podělit o své myšlenky nebo položit otázky, kontaktujte nás prostřednictvím formuláře pro zpětnou vazbu níže. Chcete-li se dozvědět více o novém nástroji swanctl a nové flexibilnější konfigurační struktuře, podívejte se na uživatelskou dokumentaci strongSwan.