GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

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

strongSwan ist eine quelloffene, plattformübergreifende, voll funktionsfähige und weit verbreitete IPsec-basierte VPN-Implementierung (Virtual Private Network), die unter Linux, FreeBSD, OS X, Windows, Android und iOS läuft. Es ist in erster Linie ein Keying-Daemon, der den Internet Key Exchange unterstützt Protokolle (IKEv1 und IKEv2 ), um Sicherheitszuordnungen (SA ) zwischen zwei Peers.

In diesem Artikel wird beschrieben, wie Sie ein Site-to-Site-IPSec-VPN einrichten Gateways mit strongSwan auf Ubuntu und Debian Server. Mit Standort-zu-Standort meinen wir, dass hinter jedem Sicherheits-Gateway ein Subnetz steht. Außerdem authentifizieren sich die Peers gegenseitig mit einem vorinstallierten Schlüssel (PSK ).

Testumgebung

Denken Sie daran, die folgenden IPs durch Ihre realen IPs zu ersetzen, um Ihre Umgebung zu konfigurieren.

Standort-1-Gateway (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

Site 2 Gateway (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

Schritt 1:Kernel-Paketweiterleitung aktivieren

1. Zuerst müssen Sie den Kernel konfigurieren, um die Paketweiterleitung zu aktivieren, indem Sie die entsprechenden Systemvariablen in /etc/sysctl.conf hinzufügen Konfigurationsdatei auf beiden Sicherheitsgateways.

$ sudo vim /etc/sysctl.conf

Suchen Sie nach den folgenden Zeilen, kommentieren Sie sie aus und setzen Sie ihre Werte wie gezeigt (lesen Sie die Kommentare in der Datei für weitere Informationen).

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. Laden Sie als Nächstes die neuen Einstellungen, indem Sie den folgenden Befehl ausführen.

$ sudo sysctl -p

Sysctl-Kernel-Einstellungen laden

3. Wenn Sie einen UFW-Firewalldienst aktiviert haben, müssen Sie die folgenden Regeln zu /etc/ufw/before.rules hinzufügen Konfigurationsdatei direkt vor den Filterregeln in beiden Sicherheitsgateways.

Standort-1-Gateway (tecmint-devgateway)

*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.0.2.0/24  -d 192.168.0.0/24 -j MASQUERADE
COMMIT

Site 2 Gateway (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. Sobald Firewallregeln hinzugefügt wurden, wenden Sie die neuen Änderungen an, indem Sie UFW neu starten wie abgebildet.

$ sudo ufw disable 
$ sudo ufw enable

Schritt 2:StrongSwan in Debian und Ubuntu installieren

5. Aktualisieren Sie Ihren Paket-Cache auf beiden Sicherheits-Gateways und installieren Sie strongswan Paket mit dem APT-Paketmanager.

$ sudo apt update
$ sudo apt install strongswan 

6. Sobald die Installation abgeschlossen ist, startet das Installationsskript den strongswan Dienst und aktivieren Sie ihn so, dass er beim Systemstart automatisch gestartet wird. Mit dem folgenden Befehl können Sie seinen Status überprüfen und ob er aktiviert ist.

$ sudo systemctl status strongswan.service
$ sudo systemctl is-enabled strongswan.service

Schritt 3:Sicherheits-Gateways konfigurieren

7. Als nächstes müssen Sie die Sicherheits-Gateways mit /etc/ipsec.conf konfigurieren Konfigurationsdatei.

Standort-1-Gateway (tecmint-devgateway)

$ sudo cp /etc/ipsec.conf /etc/ipsec.conf.orig
$ sudo nano /etc/ipsec.conf 

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

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

Site 2 Gateway (tecmint-prodgateway)

$ sudo cp /etc/ipsec.conf /etc/ipsec.conf.orig
$ sudo cp /etc/ipsec.conf 

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

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

Hier ist die Bedeutung der einzelnen Konfigurationsparameter:

  • Konfigurationseinstellungen – gibt allgemeine Konfigurationsinformationen für IPSec an, die für alle Verbindungen gelten.
  • charondebug – definiert, wie viel Charon-Debugging-Ausgabe protokolliert werden soll.
  • Uniqueids – legt fest, ob eine bestimmte Teilnehmer-ID eindeutig gehalten werden soll.
  • conn prodgateway-to-devgateway – definiert den Verbindungsnamen.
  • tippen – definiert den Verbindungstyp.
  • automatisch – Umgang mit der Verbindung, wenn IPSec gestartet oder neu gestartet wird.
  • Schlüsselaustausch – definiert die Version des zu verwendenden IKE-Protokolls.
  • authby – definiert, wie Peers sich gegenseitig authentifizieren sollen.
  • links – definiert die IP-Adresse der öffentlichen Netzwerkschnittstelle des linken Teilnehmers.
  • linkes Subnetz – gibt das private Subnetz hinter dem linken Teilnehmer an.
  • richtig – gibt die IP-Adresse der öffentlichen Netzwerkschnittstelle des richtigen Teilnehmers an.
  • rightsubnet – gibt das private Subnetz hinter dem linken Teilnehmer an.
  • wie – definiert eine Liste der zu verwendenden IKE/ISAKMP SA-Verschlüsselungs-/Authentifizierungsalgorithmen. Sie können eine durch Kommas getrennte Liste hinzufügen.
  • besonders – definiert eine Liste von ESP-Verschlüsselungs-/Authentifizierungsalgorithmen, die für die Verbindung verwendet werden sollen. Sie können eine durch Kommas getrennte Liste hinzufügen.
  • aggressiv – gibt an, ob Aggressive oder Main Mode verwendet werden soll.
  • Eingabeversuche – gibt die Anzahl der Versuche an, die unternommen werden sollen, um eine Verbindung auszuhandeln.
  • wielebensdauer – gibt an, wie lange der Schlüsselkanal einer Verbindung dauern soll, bevor er neu ausgehandelt wird.
  • lebenslang – definiert, wie lange eine bestimmte Instanz einer Verbindung dauern soll, von der erfolgreichen Aushandlung bis zum Ablauf.
  • dpddelay – gibt das Zeitintervall an, in dem R_U_THERE-Nachrichten/INFORMATIONAL-Austausche an die Gegenstelle gesendet werden.
  • dpdtimeout – gibt das Timeout-Intervall an, nach dem alle Verbindungen zu einem Peer bei Inaktivität gelöscht werden.
  • dpdaktion – definiert, wie das Dead Peer Detection (DPD)-Protokoll verwendet wird, um die Verbindung zu verwalten.

Weitere Informationen zu den oben genannten Konfigurationsparametern finden Sie in der ipsec.conf Manpage durch Ausführen des Befehls.

$ man ipsec.conf

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

8. Nachdem Sie beide Sicherheitsgateways konfiguriert haben, generieren Sie einen sicheren PSK von den Peers mit dem folgenden Befehl verwendet werden.

$ head -c 24 /dev/urandom | base64

PSK-Schlüssel generieren

9. Fügen Sie als Nächstes den PSK hinzu in /etc/ipsec.secrets Datei auf beiden Gateways.

$ sudo vim /etc/ipsec.secrets

Kopieren Sie die folgende Zeile und fügen Sie sie ein.

------- 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. Starten Sie IPSec neu Programm und überprüfen Sie seinen Status, um die Verbindungen anzuzeigen.

$ sudo ipsec restart
$ sudo ipsec status

IPSec-Verbindungsstatus anzeigen

11. Stellen Sie schließlich sicher, dass Sie von beiden Sicherheits-Gateways aus auf die privaten Subnetze zugreifen können, indem Sie einen Ping-Befehl ausführen.

$ ping 192.168.0.101
$ ping 10.0.2.15

Überprüfen Sie die Site-to-Site-VPN-Einrichtung

12. Außerdem können Sie IPSec wie gezeigt stoppen und starten.

$ sudo ipsec stop
$ sudo ipsec start

13. Weitere Informationen zu IPSec-Befehlen zum manuellen Herstellen von Verbindungen und mehr finden Sie auf der IPSec-Hilfeseite.

$ ipsec --help

Das ist alles! In diesem Artikel haben wir beschrieben, wie Sie mit strongSwan ein Site-to-Site-IPSec-VPN einrichten auf Ubuntu und Debian Server, bei denen beide Sicherheitsgateways so konfiguriert wurden, dass sie sich gegenseitig mit einem PSK authentifizieren . Wenn Sie Fragen oder Gedanken haben, die Sie uns mitteilen möchten, erreichen Sie uns über das unten stehende Feedback-Formular.

Sharing is Caring…
Auf Facebook teilenAuf Twitter teilenAuf Linkedin teilenAuf Reddit teilen
Ubuntu
  1. So richten Sie WireGuard VPN unter Ubuntu 20.04 ein

  2. So verwenden Sie APT mit Proxy unter Ubuntu und Debian

  3. So installieren und richten Sie Gerbera Media Server in Ubuntu / Debian ein

  4. So installieren und konfigurieren Sie mysql 8 unter Ubuntu 20.04

  5. So stellen oder ändern Sie die Zeitzone unter Ubuntu 20.04 und 21.04

So richten Sie einen IKEv2-VPN-Server mit StrongSwan unter Ubuntu 22.04 ein

So richten Sie ModSecurity mit Nginx unter Debian/Ubuntu ein

So installieren Sie Drupal mit Apache auf Debian und Ubuntu

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

So richten Sie Mailman mit Debian und ISPConfig ein

So richten Sie ein VPN mit OpenVPN unter Ubuntu 18.04 ein und konfigurieren es