Website-Suche

So richten Sie ein IPsec-basiertes VPN mit Strongswan unter CentOS/RHEL 8 ein


strongSwan ist eine Open-Source-, plattformübergreifende, moderne und vollständige IPsec-basierte VPN-Lösung für Linux, die vollständige Unterstützung für Internet Key Exchange (sowohl IKEv1 als auch ) bietet IKEv2), um Sicherheitsbeziehungen (SA) zwischen zwei Peers einzurichten. Es ist voll ausgestattet, modular aufgebaut und bietet Dutzende Plugins, die die Kernfunktionalität erweitern.

Verwandter Artikel: So richten Sie ein IPsec-basiertes VPN mit Strongswan unter Debian und Ubuntu ein

In diesem Artikel erfahren Sie, wie Sie Site-to-Site-IPsec-VPN-Gateways mit strongSwan auf CentOS/RHEL 8-Servern einrichten. Dies ermöglicht es Peers, sich gegenseitig mithilfe eines starken Pre-Shared Key (PSK) zu authentifizieren. Eine Site-to-Site-Einrichtung bedeutet, dass sich hinter jedem Sicherheits-Gateway ein Subnetz befindet.

Testumgebung

Vergessen Sie nicht, während der Konfiguration Ihre realen IP-Adressen zu verwenden, während Sie der Anleitung folgen.

Standort 1-Gateway
Public IP: 192.168.56.7
Private IP: 10.10.1.1/24
Private Subnet: 10.10.1.0/24
Standort 2-Gateway
Public IP:  192.168.56.6
Private IP: 10.20.1.1/24
Private Subnet: 10.20.1.0/24

Schritt 1: Aktivieren der Kernel-IP-Weiterleitung in CentOS 8

1. Aktivieren Sie zunächst die Kernel-IP-Weiterleitungsfunktion in der Konfigurationsdatei /etc/sysctl.conf auf beiden VPN-Gateways.

vi /etc/sysctl.conf

Fügen Sie diese Zeilen in die Datei ein.

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. Nachdem Sie die Änderungen in der Datei gespeichert haben, führen Sie den folgenden Befehl aus, um die neuen Kernel-Parameter zur Laufzeit zu laden.

sysctl -p

3. Erstellen Sie als Nächstes eine permanente statische Route in der Datei /etc/sysconfig/network-scripts/route-eth0 auf beiden Sicherheitsgateways.

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

Fügen Sie die folgende Zeile in die Datei ein.

#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. Starten Sie dann den Netzwerkmanager neu, um die neuen Änderungen zu übernehmen.

systemctl restart NetworkManager

Schritt 2: StrongSwan in CentOS 8 installieren

5. Das Paket strongswan wird im EPEL-Repository bereitgestellt. Um es zu installieren, müssen Sie das EPEL-Repository aktivieren und dann strongwan auf beiden Sicherheits-Gateways installieren.

dnf install epel-release
dnf install strongswan

6. Um die auf beiden Gateways installierte Version von strongswan zu überprüfen, führen Sie den folgenden Befehl aus.

strongswan version

7. Starten Sie als Nächstes den Dienst strongswan und aktivieren Sie ihn so, dass er automatisch beim Systemstart startet. Überprüfen Sie dann den Status auf beiden Sicherheits-Gateways.

systemctl start strongswan 
systemctl enable strongswan
systemctl status strongswan

Hinweis: Die neueste Version von strongswan in CentOS/REHL 8 unterstützt sowohl swanctl (ein neues, portables Befehlszeilen-Dienstprogramm, das mit strongSwan 5.2.0 eingeführt wurde und zur Konfiguration, Steuerung und Überwachung des IKE-Daemons Charon mithilfe des vici-Plugins verwendet wird) und starter (oder ipsec)-Dienstprogramm mit dem veralteten Stroke-Plugin.

8. Das Hauptkonfigurationsverzeichnis ist /etc/strongswan/, das Konfigurationsdateien für beide Plugins enthält:

ls /etc/strongswan/

Für diese Anleitung verwenden wir das IPsec-Dienstprogramm, das mit dem Befehl strongswan und der Stroke-Schnittstelle aufgerufen wird. Daher werden wir die folgenden Konfigurationsdateien verwenden:

  • /etc/strongswan/ipsec.conf – Konfigurationsdatei für das strongSwan IPsec-Subsystem.
  • /etc/strongswan/ipsec.secrets – Geheimdatei.

Schritt 3: Sicherheits-Gateways konfigurieren

9. In diesem Schritt müssen Sie die Verbindungsprofile auf jedem Sicherheits-Gateway für jede Site mithilfe der Strongswan-Konfigurationsdatei /etc/strongswan/ipsec.conf konfigurieren.

Konfigurieren des Verbindungsprofils für Standort 1

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

Kopieren Sie die folgende Konfiguration und fügen Sie sie in die Datei ein.

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

Konfigurieren des Verbindungsprofils für Standort 2

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

Kopieren Sie die folgende Konfiguration und fügen Sie sie in die Datei ein:

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

Lassen Sie uns jeden der oben genannten Konfigurationsparameter kurz beschreiben:

  • config setup – definiert die allgemeinen Konfigurationsinformationen für IPSec, die für alle Verbindungen gelten.
  • charondebug – gibt an, wie viel Charon-Debugging-Ausgabe protokolliert werden soll.
  • uniqueids – legt fest, ob eine bestimmte Teilnehmer-ID eindeutig bleiben soll.
  • Verbindung Gateway1-zu-Gateway2 – wird zum Festlegen des Verbindungsnamens verwendet.
  • Typ – definiert den Verbindungstyp.
  • Auto – wird verwendet, um anzugeben, wie mit der Verbindung umgegangen wird, wenn IPSec gestartet oder neu gestartet wird.
  • keyexchange – deklariert die zu verwendende Version des IKE-Protokolls.
  • authby – gibt an, wie Peers sich gegenseitig authentifizieren sollen.
  • links – gibt die IP-Adresse der öffentlichen Netzwerkschnittstelle des linken Teilnehmers an.
  • leftsubnet – deklariert das private Subnetz hinter dem linken Teilnehmer.
  • right – gibt die IP-Adresse der öffentlichen Netzwerkschnittstelle des richtigen Teilnehmers an.
  • rightsubnet – deklariert das private Subnetz hinter dem linken Teilnehmer.
  • ike – wird verwendet, um eine Liste der zu verwendenden IKE/ISAKMP SA-Verschlüsselungs-/Authentifizierungsalgorithmen zu deklarieren. Beachten Sie, dass dies eine durch Kommas getrennte Liste sein kann.
  • esp – gibt eine Liste der ESP-Verschlüsselungs-/Authentifizierungsalgorithmen an, die für die Verbindung verwendet werden sollen.
  • aggressiv – gibt an, ob der aggressive oder der Hauptmodus verwendet werden soll.
  • keyingtries – gibt die Anzahl der Versuche an, die unternommen werden sollten, um eine Verbindung auszuhandeln.
  • ikelifetime – gibt an, wie lange der Schlüsselkanal einer Verbindung dauern soll, bevor er neu ausgehandelt wird.
  • Lebensdauer – gibt an, wie lange eine bestimmte Instanz einer Verbindung dauern soll, von der erfolgreichen Aushandlung bis zum Ablauf.
  • dpddelay – gibt das Zeitintervall an, mit dem R_U_THERE-Nachrichten/INFORMATIONAL-Austausche an den Peer gesendet werden.
  • dpdtimeout – wird verwendet, um das Timeout-Intervall festzulegen, nach dem alle Verbindungen zu einem Peer bei Inaktivität gelöscht werden.
  • dpdaction – gibt an, wie das Dead Peer Detection (DPD)-Protokoll zur Verwaltung der Verbindung verwendet wird.

Eine Beschreibung aller Konfigurationsparameter für das strongSwan IPsec-Subsystem finden Sie auf der Manpage ipsec.conf.

man ipsec.conf

Schritt 4: PSK für die Peer-to-Peer-Authentifizierung konfigurieren

10. Als Nächstes müssen Sie wie folgt einen starken PSK generieren, der von den Peers für die Authentifizierung verwendet wird.

head -c 24 /dev/urandom | base64

11. Fügen Sie den PSK in der Datei /etc/strongswan/ipsec.conf auf beiden Sicherheits-Gateways hinzu.

vi /etc/strongswan/ipsec.secrets

Geben Sie die folgende Zeile in die Datei ein.

#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. Starten Sie dann den Dienst strongsan und überprüfen Sie den Status der Verbindungen.

systemctl restart strongswan
strongswan status

13. Testen Sie, ob Sie von beiden Sicherheits-Gateways aus auf die privaten Subnetze zugreifen können, indem Sie einen Ping-Befehl ausführen.

ping 10.20.1.1
ping 10.10.1.1

14. Zu guter Letzt erfahren Sie auf der Strongswan-Hilfeseite mehr über strongswan-Befehle zum manuellen Herstellen/Herunterfahren von Verbindungen und mehr.

strongswan --help

Das ist alles für jetzt! Wenn Sie uns Ihre Gedanken mitteilen oder Fragen stellen möchten, erreichen Sie uns über das unten stehende Feedback-Formular. Weitere Informationen zum neuen Dienstprogramm swanctl und der neuen, flexibleren Konfigurationsstruktur finden Sie in der Benutzerdokumentation von strongSwan.