Wéi Dir IPsec-baséiert VPN mat Strongswan op CentOS/RHEL 8


strongSwan ass eng Open-Source, Multi-Plattform, modern a komplett IPsec-baséiert VPN-Léisung fir Linux déi voll Ënnerstëtzung fir Internet Key Exchange (souwuel IKEv1 an IKEv2) ubitt fir Sécherheetsassociatiounen (SA) tëscht zwee Peer opzebauen. Et ass voll ausgestatt, modulär vum Design a bitt Dosende vu Plugins déi d'Kärfunktionalitéit verbesseren.

Verbonnen Artikel: Wéi Dir IPsec-baséiert VPN mat Strongswan op Debian an Ubuntu opstellt

An dësem Artikel léiert Dir wéi Dir Site-zu-Site IPsec VPN Gateways opstellt mat strongSwan op CentOS/RHEL 8 Serveren. Dëst erméiglecht de Peer géigesäiteg ze authentifizéieren mat engem staarke pre-shared Key (PSK). E Site-to-Site Setup heescht datt all Sécherheetspaart en Ënner-Netz hannert sech huet.

Vergiesst net Är real Welt IP Adressen wärend den Konfiguratiounen ze benotzen wann Dir de Guide verfollegt.

Public IP: 192.168.56.7
Private IP: 10.10.1.1/24
Private Subnet: 10.10.1.0/24
Public IP:  192.168.56.6
Private IP: 10.20.1.1/24
Private Subnet: 10.20.1.0/24

Schrëtt 1: Kernel IP Forwarding an CentOS 8 aktivéieren

1. Start andeems Dir Kernel IP Forwarding Funktionalitéit an /etc/sysctl.conf Konfiguratiounsdatei op béide VPN Gateways aktivéiert.

# vi /etc/sysctl.conf

Füügt dës Zeilen an der Datei.

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. Nodeems Dir d'Ännerungen an der Datei gespäichert hutt, lafen de folgende Kommando fir déi nei Kernelparameter an der Runtime ze lueden.

# sysctl -p

3. Erstellt dann eng permanent statesch Route an der Datei /etc/sysconfig/network-scripts/route-eth0 op béide Sécherheetspaarten.

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

Füügt déi folgend Zeil an der Datei.

#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. Da restart de Reseau Manager fir déi nei Ännerungen ze gëllen.

# systemctl restart NetworkManager

Schrëtt 2: Installéiere vun strongSwan am CentOS 8

5. De Strongswan Package gëtt am EPEL Repository geliwwert. Fir et z'installéieren, musst Dir den EPEL-Repository aktivéieren, installéieren dann strongwan op béide Sécherheetspaarten.

# dnf install epel-release
# dnf install strongswan

6. Fir z'iwwerpréiwen der Versioun vun strongswan installéiert op béide Paarte, lafen déi folgend Kommando.

# strongswan version

7. Nächst, starten de Strongswan Service an aktivéiert et automatesch um System Stiwwel ufänken. Da kontrolléiert de Status op béide Sécherheetspaarten.

# systemctl start strongswan 
# systemctl enable strongswan
# systemctl status strongswan

Notiz: Déi lescht Versioun vu strongswan am CentOS/REHL 8 kënnt mat Ënnerstëtzung fir béid swanctl (en neien, portable Kommandozeil Utility agefouert mat strongSwan 5.2.0, benotzt fir den IKE Daemon Charon mat dem vici Plugin ze konfiguréieren, ze kontrolléieren an ze iwwerwaachen) an Starter (oder ipsec) Utility mat dem deprecéierten Stroke Plugin.

8. Den Haaptkonfiguratiounsverzeichnis ass /etc/strongswan/ deen Konfiguratiounsdateien fir béid Plugins enthält:

# ls /etc/strongswan/

Fir dëse Guide benotze mir d'IPsec Utility déi mam Strongswan Kommando an der Schlag-Interface opgeruff gëtt. Also benotze mir déi folgend Konfiguratiounsdateien:

  • /etc/strongswan/ipsec.conf – Konfiguratiounsdatei fir de strongSwan IPsec Subsystem.
  • /etc/strongswan/ipsec.secrets – Geheimnisdatei.

Schrëtt 3: Sécherheetsgateways konfiguréieren

9. An dësem Schrëtt musst Dir d'Verbindungsprofile op all Sécherheetspaart fir all Site konfiguréieren mat der /etc/strongswan/ipsec.conf strongswan Konfiguratiounsdatei.

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

Kopéiert a paste déi folgend Konfiguratioun an der Datei.

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
# cp /etc/strongswan/ipsec.conf /etc/strongswan/ipsec.conf.orig
# vi /etc/strongswan/ipsec.conf

Kopéiert a paste déi folgend Konfiguratioun an der Datei:

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

Loosst eis kuerz jiddereng vun den Konfiguratiounsparameter hei uewen beschreiwen:

  • Config Setup - definéiert déi allgemeng Konfiguratiounsinformatioun fir IPSec déi op all Verbindungen gëlt.
  • charondebug - spezifizéiert wéi vill Charon Debugging Output soll protokolléiert ginn.
  • uniqueids - definéiert ob eng bestëmmte Participant ID eenzegaarteg gehale soll ginn.
  • conn gateway1-to-gateway2 - benotzt fir de Verbindungsnumm ze setzen.
  • Typ - definéiert Verbindungstyp.
  • Auto - benotzt fir ze deklaréieren wéi d'Verbindung behandelt gëtt wann IPSec gestart oder nei gestart gëtt.
  • keyexchange - deklaréiert d'Versioun vum IKE Protokoll fir ze benotzen.
  • authby - spezifizéiert wéi Peer géigesäiteg solle authentifizéieren.
  • lénks - deklaréiert d'IP Adress vum ëffentlechen Netzwierk vum lénke Participant.
  • leftsubnet - deklaréiert de private Subnet hannert dem lénksen Participant.
  • Recht - deklaréiert d'IP Adress vum ëffentlechen Netzwierk Interface vum richtege Participant.
  • rightsubnet - deklaréiert de private Subnet hannert dem lénksen Participant.
  • ike - benotzt fir eng Lëscht vun IKE/ISAKMP SA Verschlësselung/Authentifikatioun Algorithmen ze deklaréieren. Bedenkt datt dëst eng komma-getrennte Lëscht kann sinn.
  • esp - spezifizéiert eng Lëscht vun ESP Verschlësselung/Authentifikatioun Algorithmen fir d'Verbindung ze benotzen.
  • aggressiv - deklaréiert ob Aggressiv oder Main Modus benotzt gëtt.
  • keyingtries - deklaréiert d'Zuel vun de Versich, déi gemaach gi sollte fir eng Verbindung ze verhandelen.
  • ikelifetime - spezifizéiert wéi laang de Schlësselkanal vun enger Verbindung sollt daueren ier se nei verhandelt ginn.
  • Liewensdauer - spezifizéiert wéi laang eng bestëmmten Instanz vun enger Verbindung soll daueren, vun der erfollegräicher Verhandlung bis zum Oflaf.
  • dpddelay - deklaréiert den Zäitintervall mat deem R_U_THERE Messagen/INFORMATIONAL Austausch un de Peer geschéckt ginn.
  • dpdtimeout – benotzt fir den Timeout-Intervall ze deklaréieren, no deem all Verbindunge mat engem Peer am Fall vun Inaktivitéit geläscht ginn.
  • dpdaction - spezifizéiert wéi Dir den Dead Peer Detection (DPD) Protokoll benotzt fir d'Verbindung ze verwalten.

Dir kënnt eng Beschreiwung vun all Konfiguratiounsparameter fir de strongSwan IPsec Subsystem fannen andeems Dir d'ipsec.conf Man Säit liest.

# man ipsec.conf

Schrëtt 4: PSK fir Peer-to-Peer Authentifikatioun konfiguréieren

10. Als nächst musst Dir e staarken PSK generéieren fir vun de Peer fir d'Authentifikatioun ze benotzen wéi follegt.

# head -c 24 /dev/urandom | base64

11. Füügt de PSK an der /etc/strongswan/ipsec.conf Datei op béide Sécherheetspaarten.

# vi /etc/strongswan/ipsec.secrets

Gitt déi folgend Linn an der Datei.

#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. Start dann de Strongsan Service a kontrolléiert de Status vun de Verbindungen.

# systemctl restart strongswan
# strongswan status

13. Test ob Dir Zougang zu de privaten Ënnernetzer vun entweder Sécherheetspaarten kënnt andeems Dir e Ping-Kommando leeft.

# ping 10.20.1.1
# ping 10.10.1.1

14. Lescht awer net zulescht, fir méi Strongswan Kommandoen ze léieren fir manuell Verbindungen op/erof ze bréngen a méi, kuckt d'strongswan Hëllef Säit.

# strongswan --help

Dat ass alles fir elo! Fir Är Gedanken mat eis ze deelen oder Froen ze stellen, erreechen eis iwwer de Feedback Form hei drënner. A fir méi iwwer déi nei Swanctl Utility an déi nei méi flexibel Konfiguratiounsstruktur ze léieren, kuckt d'strongSwan User Documentation.