GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So richten Sie IKEv2 VPN mit Strongswan und Lets encrypt unter CentOS 7 ein

Strongswan ist eine Open-Source-Multiplattform-IPSec-Implementierung. Es handelt sich um eine IPSec-basierte VPN-Lösung, die sich auf starke Authentifizierungsmechanismen konzentriert. Strongswan bietet Unterstützung für IKEv1- und IKEv2-Schlüsselaustauschprotokolle, Authentifizierung basierend auf X.509-Zertifikaten oder vorinstallierten Schlüsseln und sichere IKEv2-EAP-Benutzerauthentifizierung.

In dieser Anleitung zeige ich Ihnen, wie Sie einen IPSec-VPN-Server mit Strongswan installieren. Wir werden einen IKEv2-VPN-Server mit der Authentifizierung „EAP-MSCHAPv2“ erstellen und Letsencrypt-Zertifikate auf dem CentOS 7-Server verwenden.

Voraussetzungen

  • CentOS 7-Server
  • Root-Rechte

Was werden wir tun?

  1. Installieren Sie Strongswan auf CentOS 7
  2. SSL Letsencrypt generieren
  3. Strongswan konfigurieren
  4. NAT-Firewall aktivieren
  5. Port-Weiterleitung aktivieren
  6. Testen

Schritt 1 – Installieren Sie Strongswan auf CentOS 7

In diesem ersten Schritt installieren wir die Strongswan-IPsec-Implementierungssoftware und alle erforderlichen Pakete aus dem EPEL-Repository.

Installieren Sie das EPEL-Repository und das Strongswan-Paket mit den folgenden yum-Befehlen.

yum -y install epel-release
yum -y install strongswan

Warten Sie, bis das Strongswan-Paket installiert ist.

Schritt 2 - SSL-Zertifikat mit Let's encrypt generieren

Wir werden den IKEv2-VPN-Server mit einem Domänennamen „ikev2.hakase-labs.io“ erstellen und von letsencrypt generierte Zertifikate verwenden.

In diesem Schritt installieren wir das letsencrypt-Tool „certbot“ und generieren Zertifikate für den Serverdomänennamen „ikev2.hakase-labs.io“.

Installieren Sie das Letsencrypt-Tool „certbot“.

yum -y install certbot

Nach der certbot-Installation müssen wir den HTTP- und HTTPS-Port des Servers mit firewall-cmd öffnen.

Fügen Sie die HTTP- und HTTPS-Dienste zur Liste der Firewalld-Dienste hinzu, indem Sie die folgenden Firewall-cmd-Befehle ausführen.

firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --reload

Jetzt können wir mit dem letsencrypt-Tool certbot neue SSL-Zertifikatsdateien generieren.

Führen Sie den folgenden certbot-Befehl aus.

certbot certonly --rsa-key-size 4096 --standalone --agree-tos --no-eff-email --email [email protected] -d ikev2.hakase-labs.io

Letsencrypt-Zertifikate für den VPN-Domänennamen „ikev2.hakase-labs.io“ wurden generiert und befinden sich im Verzeichnis „/etc/letsencrypt/live“.

Als nächstes müssen wir die Zertifikatsdateien „fullchain.pem“, „privkey.pem“ und „chain.pem“ in das Verzeichnis „/etc/strongswan/ipsec.d/“ kopieren.

cp /etc/letsencrypt/live/ikev2.hakase-labs.io/fullchain.pem /etc/strongswan/ipsec.d/certs/
cp /etc/letsencrypt/live/ikev2.hakase-labs.io/privkey.pem /etc/strongswan/ipsec.d/private/
cp /etc/letsencrypt/live/ikev2.hakase-labs.io/chain.pem /etc/strongswan/ipsec.d/cacerts/

Alle letsencrypt-Zertifikate für das Strongswan-VPN mit dem Namen „ikev2.hakase-labs.io“ wurden generiert und in das Verzeichnis „/etc/strongswan/ipsec.d“ kopiert.

tree /etc/strongswan/ipsec.d/

Schritt 3 – Strongswan konfigurieren

Gehen Sie in das Verzeichnis „/etc/strongswan“ und sichern Sie die Standardkonfigurationsdatei „ipsec.conf“.

cd /etc/strongswan/
mv ipsec.conf ipsec.conf.asli

Erstellen Sie mit dem vim Editor eine neue „ipsec.conf“.

vim ipsec.conf

Und fügen Sie die folgende Konfiguration ein.

#global configuration IPsec
#chron logger
config setup
    charondebug="ike 1, knl 1, cfg 0"
    uniqueids=no

#define new ipsec connection
conn hakase-vpn
    auto=add
    compress=no
    type=tunnel
    keyexchange=ikev2
    ike=aes128-sha1-modp1024,aes128-sha1-modp1536,aes128-sha1-modp2048,aes128-sha256-ecp256,aes128-sha256-modp1024,aes128-sha256-modp1536,aes128-sha256-modp2048,aes256-aes128-sha256-sha1-modp2048-modp4096-modp1024,aes256-sha1-modp1024,aes256-sha256-modp1024,aes256-sha256-modp1536,aes256-sha256-modp2048,aes256-sha256-modp4096,aes256-sha384-ecp384,aes256-sha384-modp1024,aes256-sha384-modp1536,aes256-sha384-modp2048,aes256-sha384-modp4096,aes256gcm16-aes256gcm12-aes128gcm16-aes128gcm12-sha256-sha1-modp2048-modp4096-modp1024,3des-sha1-modp1024!
    esp=aes128-aes256-sha1-sha256-modp2048-modp4096-modp1024,aes128-sha1,aes128-sha1-modp1024,aes128-sha1-modp1536,aes128-sha1-modp2048,aes128-sha256,aes128-sha256-ecp256,aes128-sha256-modp1024,aes128-sha256-modp1536,aes128-sha256-modp2048,aes128gcm12-aes128gcm16-aes256gcm12-aes256gcm16-modp2048-modp4096-modp1024,aes128gcm16,aes128gcm16-ecp256,aes256-sha1,aes256-sha256,aes256-sha256-modp1024,aes256-sha256-modp1536,aes256-sha256-modp2048,aes256-sha256-modp4096,aes256-sha384,aes256-sha384-ecp384,aes256-sha384-modp1024,aes256-sha384-modp1536,aes256-sha384-modp2048,aes256-sha384-modp4096,aes256gcm16,aes256gcm16-ecp384,3des-sha1!
    fragmentation=yes
    forceencaps=yes
    dpdaction=clear
    dpddelay=300s
    rekey=no
    left=%any
    [email protected]
    leftcert=fullchain.pem
    leftsendcert=always
    leftsubnet=0.0.0.0/0
    right=%any
    rightid=%any
    rightauth=eap-mschapv2
    rightsourceip=10.15.1.0/24
    rightdns=1.1.1.1,8.8.8.8
    rightsendcert=never
    eap_identity=%identity

Speichern und beenden.

Konfigurationsdetails:

  • Erstellen Sie eine neue IPSec-VPN-Tunnelverbindung mit dem Namen „hakase-vpn“.
  • Geben Sie die IKEv2- und ESP-Verschlüsselungssammlungen für die Authentifizierung an.
  • Die „linke“ Serverkonfiguration mit einem Domänennamen „ikev2.hakase-labs.io“ und mit dem letsencrypt-Zertifikat „fullchain.pem“, das sich im Verzeichnis „/etc/strongswan/ipsec.d/certs“ befindet.
  • Das 'richtige' Clients/Remote-Setup mit der EAP-Authentifizierungsmethode 'eap-mschapv2', Weisen Sie allen verbundenen Clients den virtuellen IP-Adressbereich '10.15.1.0/24' zu und verwenden Sie öffentliches DNS Cloudflare und Google.

Als Nächstes müssen wir die Datei „ipsec.secrets“ bearbeiten, um den privaten Schlüssel des RSA-Servers und die Anmeldeinformationen für das EAP-Benutzerpasswort zu definieren.

Bearbeiten Sie die Datei „ipsec.secrets“.

vim ipsec.secrets

Fügen Sie die Konfiguration unten ein.

: RSA "privkey.pem"
hakase : EAP "[email protected]"
tensai : EAP "[email protected]"

Speichern und beenden.

Konfigurationsdetails:

  • Geben Sie den privaten Schlüssel des RSA-Servers mit dem letsencrypt-Zertifikat „privkey.pem“ an, das sich im Verzeichnis „/etc/strongswan/ipsec.d/private“ befindet.
  • Definieren Sie die EAP-Benutzeranmeldeinformationen im Format 'Benutzer:EAP "Passwort"'.

Die Strongswan-IPSec-Konfiguration ist abgeschlossen. Starten Sie den Strongswan-Dienst und aktivieren Sie ihn so, dass er jedes Mal beim Systemstart gestartet wird.

systemctl start strongswan
systemctl enable strongswan

Schritt 4 – NAT in Firewalld aktivieren

In diesem Schritt aktivieren wir das NAT-Masquerading und fügen die IPSec-Protokolle Authentication Header (AH) und Encapsulating Security Payload (ESP) auf Firewalld mit der „Rich-Rule“-Konfiguration hinzu.

Fügen Sie 'AH' und 'ESP' für Authentifizierungs- und Verschlüsselungsprotokolle zur Firewall hinzu.

firewall-cmd --zone=public --permanent --add-rich-rule='rule protocol value="esp" accept'
firewall-cmd --zone=public --permanent --add-rich-rule='rule protocol value="ah" accept'

Fügen Sie die IPsec-UDP-Ports und -Dienste hinzu.

firewall-cmd --zone=public --permanent --add-port=500/udp
firewall-cmd --zone=public --permanent --add-port=4500/udp
firewall-cmd --zone=public --permanent --add-service="ipsec"

Aktivieren Sie nun die NAT-Modus-Maskierung und laden Sie die Firewall-Konfigurationsregeln neu.

firewall-cmd --zone=public --permanent --add-masquerade
firewall-cmd --reload

Der NAT-Modus auf Firewalld wurde aktiviert, überprüfen Sie dies mit dem folgenden Befehl.

firewall-cmd --list-all

Nachfolgend das Ergebnis.

Schritt 5 – Portweiterleitung aktivieren

Um die Portweiterleitung zu aktivieren, müssen wir die Datei „sysctl.conf“ bearbeiten.

Bearbeiten Sie die Datei „/etc/sysctl.conf“ mit dem vim-Editor.

vim /etc/sysctl.conf

Fügen Sie dort die folgende Konfiguration ein.

net.ipv4.ip_forward = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0

Speichern und beenden, jetzt mit dem sysctl-Befehl unten neu laden.

sysctl -p

Portweiterleitung wurde aktiviert. Starten Sie nun den Strongswan-Dienst neu.

systemctl restart strongswan

Schritt 6 – Strongswan IPSec VPN testen

In diesem Fall führen wir den Test auf dem MacOS X und dem Android-Telefon durch.

Unter MacOS

- Öffnen Sie die „Systemeinstellungen“ und klicken Sie auf das Menü „Netzwerk“.

Klicken Sie auf die Schaltfläche „+“, um eine neue VPN-Verbindung zu erstellen.

    • Schnittstelle:'VPN'
    • VPN-Typ:„IKEv2“
    • Dienstname:'IKEv2-vpn

- Geben Sie unter "Serveradresse" und "Remote-ID" den VPN-Domänennamen "ikev2.hakase-labs.io" ein.
- Klicken Sie auf "Authentifizierungseinstellungen".
- Authentifizierung mit einem "Benutzernamen". .
- Geben Sie den Benutzernamen „tensai“ mit dem Passwort „[E-Mail-geschützt]“ ein.
- Klicken Sie auf „OK“ und dann auf „Übernehmen“.


Auf dem Client wurde eine neue IKEv2-VPN-Verbindung erstellt. Klicken Sie nun auf die Schaltfläche Verbinden.


Und der Client wurde mit dem Strongswan-VPN-Server verbunden und hat eine interne/private IP-Adresse 10.15.1.1.

Auf Android

- Laden Sie die native Strongswan-Android-Anwendung von Google-Play herunter und installieren Sie sie.
- Fügen Sie ein neues VPN-Profil hinzu
- Geben Sie den Serverdomänennamen „ikev2.hakase-labs.io“ ein und verwenden Sie den IKEv2 EAP-Benutzernamen und das Passwort Authentifizierung.

Folgendes ist das Ergebnis, wenn wir uns mit dem VPN-Server verbinden.

Der IKEv2 IPSec-basierte VPN-Server wurde mit Strongswan und Letsencrypt auf einem CentOS 7-Server erstellt.


Cent OS
  1. So richten Sie IKEv2 VPN mit Strongswan und Lets Encrypt unter CentOS 8 ein

  2. So installieren und konfigurieren Sie DRBD unter CentOS

  3. So richten Sie Oracle Weblogic in CentOS 7 ein und installieren es

  4. So installieren Sie Shopware mit NGINX und Lets Encrypt unter CentOS 7

  5. So installieren Sie WonderCMS mit Nginx und Lets Encrypt SSL unter CentOS 7

So installieren Sie Shopware 6 mit NGINX und Lets Encrypt unter CentOS 8

So installieren Sie PrestaShop mit Apache und Lets Encrypt SSL unter CentOS 8

So installieren und konfigurieren Sie Asterisk 13 (PBX) auf Centos 7

So installieren und verwalten Sie Pakete auf CentOS mit RPM

So installieren Sie Webmin unter CentOS 8 und Rocky Linux 8

So installieren Sie PPTP VPN auf CentOS 6