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

Libreswan-basiertes Ipsec-VPN mit vorinstallierten und RSA-Schlüsseln auf Ubuntu

In diesem Tutorial wird LibreSwan auf der Ubuntu-Plattform installiert. LibreSwan ist eine Open-Source-Implementierung des IPsec-Protokolls, es basiert auf dem FreeSwan-Projekt und ist als gebrauchsfertiges Paket auf RedHat-basierten Linux-Distributionen verfügbar. Im Quellcode des Projekts finden Sie jedoch detaillierte Anweisungen, um es auf anderen Linux-Plattformen zu kompilieren. Nach dem Installationsvorgang wird ein Gateway-zu-Gateway-basiertes IPsec-VPN konfiguriert, um Daten von Sender- zu Empfänger-Peers zu sichern.

Details zum IPsec-Protokoll finden Sie in unserem vorherigen Artikel. Nachfolgend wird jedoch eine kurze Information über die beiden Teile des IPsec-Protokolls in Bezug auf LibreSwan erläutert.

Ein IPsec-basiertes VPN besteht aus dem Internet Keying Exchange Protokoll und die Encapsulating Security Payload (ESP)-Protokoll.

-->   IKE

Wie der Name schon sagt, besteht der Zweck des IKE-Protokolls darin, Peers eines VPNs zu authentifizieren (unter Verwendung eines vorinstallierten Schlüssels, Public-Key-Kryptografie, Freeradius), Schlüssel dynamisch zu generieren und die Schlüssel mit den VPN-Peers zu teilen. Die Verschlüsselungsschlüssel für die zweite Phase des IPsec sind ebenfalls von IKE abhängig. Libreswan implementiert das IKE-Protokoll unter Verwendung des Pluto-Programms des Projekts.

-->  ESP

Das ESP-Protokoll ist die eigentliche Spezifikation der zwischen den Peers vereinbarten Richtlinie, die im IPsec-Stack des Linux-Kernels (NETEY/XFRM) implementiert ist.

Libreswan-Funktionen

  • Unterstützung für Pre-Shared-Key-basierte Authentifizierung.
  • Unterstützung für Authentifizierung auf Basis öffentlicher Schlüssel.
  • Unterstützt beide IKE v1/v2-Versionen des Schlüsselaustauschs.
  • NSS-Kryptobibliothek wird unterstützt.
  • Xauth und DNSSec werden ebenfalls unterstützt.

Erforderliche Pakete für Ubuntu 16.04

Für eine erfolgreiche Kompilierung von LibreSwan müssen die folgenden Pakete unter Ubuntu installiert werden. Im Quellcode wird auch eine kurze Information gegeben, wie man Plugins/Features und Befehle aktiviert oder deaktiviert, wenn man LibreSwan installiert.

apt-get -y update
apt-get install  libunbound-dev libevent-dev  libsystemd-dev libnss3-dev libnspr4-dev pkg-config \ libpam0g-dev libcap-ng-dev libcap-ng-utils libselinux1-dev libcurl4-nss-dev flex bison gcc make libnss3-tools

Die Installation der erforderlichen Pakete wird unten gezeigt.

Der neueste Quellcode des IPsec-Tools wird mit dem wget-Befehl heruntergeladen und mit dem folgenden tar-Befehl extrahiert.

wget https://download.libreswan.org/libreswan-3.20.tar.gz
tar -xzf libreswan-3.20.tar.gz
cd libreswan-3.20

Es ist nicht erforderlich, den Befehl configure auszuführen, führen Sie einfach das make aus Befehl die zwei Möglichkeiten zeigt, LibreSwan wie unten gezeigt zu erstellen.

Führen Sie abschließend make all  aus Befehl zum Erstellen von LibreSwan auf der Plattform.

make all

Führen Sie nun make install aus Befehl zum Installieren des IPsec-Programms.

IPsec-Dienst starten

Wie im obigen Screenshot gezeigt, ist es erforderlich, den IPSec-Dienst auf der Ubuntu-Plattform mit dem folgenden Befehl zu aktivieren.

systemctl enable ipsec.service

Es ist erforderlich, die NSS-Kryptobibliothek zu initialisieren, bevor der IPsec-Dienst gestartet wird. Es wird von LibreSwan für die Verwendung des kryptografischen Algorithmus in IPsec VPN verwendet.

IPsec initnss

Starten Sie schließlich den IPSec-Dienst mit dem folgenden Befehl.

ipsec setup start

Führen Sie ipsec status aus Befehl, um die Einstellungen von LibreSwan auf der Ubuntu-Plattform anzuzeigen.

ipsec status

LibreSwan-Konfiguration

In diesem Tutorial wird ein IPsec-VPN zwischen Peers mit einem vorinstallierten Schlüssel und RSA-Schlüsseln (öffentliche/private Schlüsselpaare) eingerichtet. Die Konfiguration beider Peers (links/rechts) ist unten angegeben.

Preshared Key-basiertes VPN

ipsec.conf (configuration file of left VM)              ipsec.secrets  (configuration file of left VM)

Version 2                                                                          192.168.15.145 192.168.15.245:PSK "vpn_psk1.23"

Konfigurationseinstellungen                                                        
                 protostack=netkey
conn vpn_psk

                  ike=aes256-sha256;modp4096
                  phase2alg=aes256-sha256;modp4096
                  left=192.168.15.145
                  leftsubnet=172.16.10.0/24
                  rechts=192.168.15.245
                  rightsubnet=192.169.50.0/24
                  authby=secret
                  type=tunnel
                  auto=start

ipsec.conf (configuration file of right VM)              ipsec.secrets  (configuration file of right VM)

Version 2                                                                          192.168.15.245 192.168.15.145:PSK "vpn_psk123"

Konfigurationseinstellungen                                                        
                 protostack=netkey
conn vpn_psk

         ike=aes256-sha256;modp4096
         phase2alg=aes256-sha256;modp4096
         left=192.168.15.245
         leftsubnet=192.169.50.0/24
         rechts=192.168.15.145
         rightsubnet=172.16.10.0/24
         authby=secret
         type=tunnel
         auto=start

Nachdem Sie die obige Konfiguration in den Dateien ipsec.conf und ipsec.secrets festgelegt haben, führen Sie den folgenden Befehl auf beiden Seiten aus, um den IPSec-Aushandlungsprozess zu starten.

ipsec restart

Status des VPN mit vorinstalliertem Schlüssel

Die Ausgabe von ipsec status und setkey -D Befehle sind unten gezeigt.

ipsec status

setkey -D

RSA (öffentlicher/privater) Schlüssel basiertes VPN

Es ist erforderlich, RSA-Schlüssel für beide Computer zu generieren und sie in die Konfigurationsdatei aufzunehmen. Die reduzierte Version eines RSA-Schlüssels wird in diesem Tutorial gezeigt. Stellen Sie außerdem sicher, dass der enthaltene öffentliche Schlüssel einzeilig ist.

Generierung von RSA-Schlüsseln

Wie unten gezeigt, werden die folgenden Befehle verwendet, um Schlüssel für beide Peers zu generieren.

 ipsec newhostkey --output /etc/ipsec.secrets

Der generierte öffentliche Schlüssel wird wie unten gezeigt zur Datei ipsec.secrets hinzugefügt.

In ähnlicher Weise werden RSA-Schlüssel mit demselben Befehl für die rechte Maschine generiert, wie im folgenden Schnappschuss gezeigt.

Wie oben gezeigt, enthalten Schlüsselgenerierungsbefehle automatisch den öffentlichen RSA-Schlüssel in /etc/ipsec.secrets auf beiden Peer-Maschinen. Der private Schlüssel von RSA wird in der Datenbank von NSS unter  /etc/ipsec.d/*.db gespeichert Dateien.

Nach dem Generieren von RSA-Schlüsseln ändert der nächste Schritt die Konfiguration beider Maschinen in der Datei ipsec.conf.

ipsec.conf (configuration file of left VM)             

Version 2                                                                         

Konfigurationseinstellungen                                                        
                 protostack=netkey
conn vpn_rsa

                  ike=aes256-sha256;modp4096
                  phase2alg=aes256-sha256;modp4096
                  left=192.168.15.145
                  leftsubnet=172.16.10.0/24
                  rechts=192.168.15.245
                  rightsubnet=192.169.50.0/24
                  authby=rsasig
                  leftrsasigkey=0sAQPgMUjAb8QOQaJ1FTkIQf3f[........]ALQNXUf$
                  rightrsasigkey=0sAQOs7aPh6LppUGgC454+W[........]fSd2zQE

                  type=tunnel
                  auto=start

ipsec.conf (configuration file of right VM)              

Version 2                                                                            

Konfigurationseinstellungen                                                        
                 protostack=netkey
conn vpn_rsa

         ike=aes256-sha256;modp4096
         phase2alg=aes256-sha256;modp4096
         left=192.168.15.245
         leftsubnet=192.169.50.0/24
         rechts=192.168.15.145
         rightsubnet=172.16.10.0/24
         authby=rsasig
         rightrsasigkey=0sAQPgMUjAb8QOQaJ1FTkIQf3f[........]ALQNXUf$
         leftrsasigkey=0sAQOs7aPh6LppUGgC454+W[........]fSd2zQE

         type=tunnel
         auto=start

Nach dem Ändern der LibreSwan-Konfigurationsdateien besteht der nächste Schritt darin, den IPsec-Dienst auf beiden Computern mit dem folgenden Befehl neu zu starten.

ipsec restart

Der Status des IPsec-VPN auf dem linken Gerät wird im folgenden Screenshot angezeigt. Es zeigt, dass RSASIG wird in der Richtlinie verwendet, um die Peers des IPsec-Tunnels zu authentifizieren.

Der Zweck dieses Tutorials ist es, „LibreSwan“ zu erkunden, das die Implementierung des IPsec-Protokolls bereitstellt. Es ist in RedHat-Distributionen verfügbar, kann jedoch problemlos für andere Plattformen wie Ubuntu/Debian kompiliert werden. In diesem Artikel wird das erste LibreSwan-Tool aus der Quelle erstellt und dann zwei VPNs mit vorinstallierten und RSA-Schlüsseln zwischen den Gateway-Geräten konfiguriert.


Ubuntu
  1. StrongSwan-basiertes IPsec-VPN mit Zertifikaten und vorinstalliertem Schlüssel auf Ubuntu 16.04

  2. So installieren und konfigurieren Sie den Algo VPN-Server unter Ubuntu 20.04

  3. Verwenden von ATA über Ethernet (AoE) auf Ubuntu 12.10 (Initiator und Ziel)

  4. Verwenden von Ansible zum Installieren und Konfigurieren von Elasticsearch unter Ubuntu 20.04

  5. Ubuntu – Wie scrollt man in einem Ubuntu-Terminal mit den Pfeiltasten?

So finden und löschen Sie doppelte Dateien in Ubuntu mit Fdupes

Verwenden von Yarn unter Ubuntu und anderen Linux-Distributionen

Verwenden von Dateien und Ordnern auf dem Desktop-Bildschirm in Ubuntu

Tipps und Tricks zur Verwendung von Strg+Z in Ubuntu Linux

Ubuntu 18.04 Tastenkombinationen speichern keine Screenshots?

So verwenden Sie apt-get reinstall unter Debian und Ubuntu