Zuverlässiges und skalierbares sicheres VPN-Tunneling

Kategorien anzeigen

Zuverlässiges und skalierbares sicheres VPN-Tunneling

6 min gelesen

Übersicht #

Wenn Sie sich über einen Internetanbieter mit dem Internet verbinden, gehen Sie selbstverständlich davon aus, dass dieser alles für die Sicherheit Ihrer Verbindung unternimmt. Doch was ist, wenn Sie einen privaten Dienst nutzen möchten? Wie lässt sich die Sicherheit des Datenverkehrs zwischen Client und Server in einer öffentlichen Infrastruktur gewährleisten? Hier kommen VPN- Dienste ( Virtual Private Network) zum Einsatz. Zwischen beiden Knotenpunkten wird eine sichere Verbindung hergestellt, die verhindert, dass Dritte den Datenverkehr abfangen und sensible Informationen erlangen.

VPN -Dienste bieten verschiedene Funktionen, wie zum Beispiel:

Vertraulichkeit: Verhindert, dass jemand Ihre Daten liest. Dies wird durch Verschlüsselung erreicht.
Authentifizierung: Überprüfen, ob die Mitglieder, die die Punkt-zu-Punkt-Verbindung erstellen, legitime Geräte sind.
Integrität: Überprüfen, ob das VPN-Paket während der Übertragung irgendwie geändert wurde.
Anti-Wiedergabe: Verhindert, dass jemand Datenverkehr erfasst und weiterleitet und versucht, als legitimes Gerät/Benutzer auszusehen.

Es gibt unterschiedliche Arten der Implementierung auf marktbasierter Basis in privaten und offenen Standards. In diesem Artikel konzentrieren wir uns auf die offenen Lösungen, die relevantesten finden Sie weiter unten.

IPsec: Es hat sich zum De-facto-Standard für VPN-Installationen im Internet entwickelt, implementiert eine große Anzahl kryptografischer Algorithmen und weist keine bekannten größeren Schwachstellen auf.
OpenVPN: Sehr beliebt, aber nicht auf Standards basierend. Es verwendet benutzerdefinierte Sicherheitsprotokolle, unterstützt TLS/SSL mit Openssl und eine große Anzahl kryptografischer Algorithmen.
L2TP: Es handelt sich um eine Erweiterung von PPTP. Es kann IPSec als Sicherheitsschicht verwenden, was in der Vergangenheit hauptsächlich von ISPs verwendet wurde. Derzeit gibt es bessere Optionen mit besserer Leistung.
Wireguard: Es handelt sich um ein extrem schnelles VPN, das äußerst einfach zu installieren ist. Es nutzt die bereits im Linux-Kernel enthaltenen kryptografischen Algorithmen, verwendet UDP und kann auf jedem Port konfiguriert werden.

Skalierbare VPN-Umgebung #

Ziel dieses Artikels ist es, die Einrichtung eines Load-Balancing-Dienstes mit hoher Verfügbarkeit für VPN- Dienste mithilfe des Relianoid Load Balancers zu beschreiben . Wir konzentrieren uns dabei auf WireGuard , das den UDP-Port 51820 verwendet . Die beschriebenen Lösungen lassen sich jedoch auf andere Protokolle und Ports übertragen.

Die Konfiguration des VPN- Servers wird in diesem Artikel nicht beschrieben, jedoch müssen die folgenden Punkte berücksichtigt werden, um VPN erfolgreich im Bereich Hochverfügbarkeit zu skalieren:

Das VPN-Server-Konfigurationsdateien müssen repliziert werden in allen VPN Server, die ausgeglichen werden.
VPN-Clients Der Datenverkehr muss NATed sein im VPN-Server, um sicherzustellen, dass alle eingehenden und ausgehenden Verbindungen von einem APN-Client über denselben VPN-Server im Pool laufen.

Das folgende Diagramm beschreibt die zu erreichende skalierbare Architektur.

VPN Wireguard-Architektur

1. Two Wireguard Server mit derselben Konfiguration.
2. . Der Wireguard Server erstellt das gleiche private Netzwerk 192.168.2.0/24.
3. . Der VPN Der Client wird mit der IP des VPN Server, mit dem es verbunden ist.
4. Die Clients verbinden sich mit einer öffentlichen IP vpn.company.com 51820 UDP, diese Verbindung wird weitergeleitet an Relianoid (192.168.100.10).
5. Relianoid wird die Clientverbindungen auf die verfügbaren VPN Server und schließlich wird der Tunnel zu einem der Server erstellt.

In diesem Artikel werden wir zwei verschiedene Möglichkeiten zur Konfiguration dieses skalierbaren VPN-Dienstes mit Relianoid detailliert beschreiben : eine über die Web-GUI und eine weitere über die Befehlszeilenschnittstelle.

Konfiguration des virtuellen VPN-Dienstes mit Relianoid #

In diesem Abschnitt wird erläutert, wie Sie mit der Befehlszeilenschnittstelle die richtige Konfiguration erreichen.

Beachten Sie, dass VPN-Protokolle die Fähigkeit zur Aufrechterhaltung von Sitzungen erfordern , um sicherzustellen, dass derselbe Client über einen bestimmten Zeitraum mit demselben Backend verbunden bleibt, selbst wenn dieser Client keinen Datenverkehr erzeugt.

Um den virtuellen VPN-Dienst zu erstellen , wird eine neue Farm namens VPNLB mit dem Profil l4xnat eingerichtet , die auf Port 51820 UDP lauscht und an die virtuelle VPN-IP-Adresse 192.168.100.10 gebunden ist . Der sNAT- Modus ermöglicht es der Firewall, Verbindungen von Clients mit folgendem Befehl per NAT zu übersetzen:

zcli Farm erstellen -farmname VPNLB -vip 192.168.100.10 -vport 51820 -profile l4xnat

oder über die Web-GUI:

Ändern Sie die globalen Parameter der Farm, um das UDP -Protokoll zu verwenden, und konfigurieren Sie anschließend die Persistenzsitzung anhand der Quell-IP und einen einfachen Lastverteilungsalgorithmus anhand der Gewichtung.

zcli Farm Set VPNLB -Protokoll UDP -Nattype NAT -Persistence SRcip -TTL 1800 -Algorithmus Gewicht

oder über die Web-GUI:

Fügen Sie der bereits erstellten Serverfarm für den VPN- Load-Balancing-Dienst die beiden Backend-Server 192.168.100.11 und 192.168.100.12 hinzu. Ein Port muss nicht konfiguriert werden, da l4xnat denselben Port wie der konfigurierte virtuelle Port verwendet.

zcli farm-service-backend fügt VPNLB default_service -ip 192.168.100.11 hinzu zcli farm-service-backend fügt VPNLB default_service -ip 192.168.100.12 hinzu

oder über die Web-GUI:

Um nur fehlerfreie Backends auszuwählen, konfigurieren wir einen einfachen Integritätscheck, der sicherstellt, dass Port 51820 (UDP) auf den Backends verfügbar ist. Erstellen Sie eine Kopie des vorhandenen generischen und vorinstallierten Integritätschecks namens `check_udp` und bearbeiten Sie ihn. Wir empfehlen, das Intervall auf 21 zu ändern, da jeder Integritätscheck ein Timeout von 10 Sekunden verwendet . Somit ergibt sich : 10 Sekunden * 2 Backends + 1 Sekunde = 21 Sekunden.

zcli farmguardian erstellen -copy_from check_udp -name check_udp_vpn zcli farmguardian setzen check_udp_vpn -description "VPN-Prüfung für UDP 51820" -interval 21

oder über die Web-GUI:

Fügen Sie abschließend den bereits erstellten Health Check namens check_udp_vpn zum aktuellen Farm VPNLB hinzu.

zcli farm-service-farmguardian fügt VPNLB default_service -name check_udp_vpn hinzu

Abwehr von DDoS-Angriffen mit dem IPDS-Modul #

VPN-Dienste sind häufig das Ziel von Angriffen und Cybersicherheitsbedrohungen, die die Remote-Konnektivität ausnutzen, um in die Netzwerke der Organisation einzudringen.

Daher empfiehlt es sich, unseren skalierbaren VPN- Dienst durch ein Sicherheitssystem zu ergänzen, um unsere Organisation vor externen Angriffen zu schützen. In diesem Abschnitt wird die Verwendung des Relianoid IPDS-Moduls und die einfache Abwehr von DDoS-Angriffen auf öffentliche VPN-Dienste erläutert.

In diesem Abschnitt werden zwei verschiedene Schutzmechanismen detailliert beschrieben, die bei dieser Art von Dienst bessere Ergebnisse erzielen: IP-Schutz über Whitelists und Verbindungslimits.

Erlauben des Zugriffs auf den öffentlichen VPN-Dienst von einer bestimmten Whitelist aus #

Die Verwendung von Blacklists / Whitelists kann bei Diensten eingesetzt werden, bei denen sichergestellt werden kann, dass die Clientliste bekannt ist, beispielsweise bei einem öffentlichen VPN-Dienst, der Telearbeit in einer Organisation eines bestimmten Landes ermöglicht.

Um eine Whitelist für Deutschland zu konfigurieren und Datenverkehr aus anderen IP-Adressbereichen abzulehnen , gehen Sie bitte wie folgt vor:

1. Gehen Sie zu IPDS > Blacklist und finden Sie dort die schwarze Liste geo_ES_Germany. Dann Bearbeiten diese Blacklist-Regel und ändern Sie das Richtlinienfeld in Erlauben zur Verwendung als Whitelist.
2. Gehen Sie in derselben Liste zur Registerkarte Farms und verlegen Sie die Farm VPNLB aus der Kolumne Verfügbare Farmen zu Farmen aktivieren.
3. Drücken Sie auf Spielen Symbol enthalten in Aktion um die Whitelist zu aktivieren.
4. Zurück Nach IPDS > Schwarze Liste und finden Sie dort die schwarze Liste Alle, gehen Sie zur Registerkarte Farms und verlegen Sie die Farm VPNLB aus Spalte Verfügbare Farmen zu Farmen aktivieren.
5. Drücken Sie auf Spielen Symbol von Aktion um die Blacklist zu aktivieren.

Bei dieser Konfiguration wird eine Whitelist namens geo_ES_Germany, die bereits in Relianoid vorinstalliert ist und alle IP-Adressbereiche dieses Landes enthält, der VPNLB- Farm hinzugefügt . Zusätzlich wird eine Blacklist namens All , die alle restlichen IP-Adressen enthält, ebenfalls der Farm hinzugefügt. Wenn die Client-IP also in keinem Bereich Deutschlands liegt, wird die Verbindung verworfen.

Zugriff auf den öffentlichen VPN-Dienst mit Verbindungslimits zulassen #

Um diesen DDoS-Schutz effektiv einzusetzen, ist es unerlässlich, die Funktionsweise des jeweiligen Dienstes zu verstehen. WireGuard beispielsweise nutzt nur eine UDP-Verbindung pro Client . Erhalten wir mehrere gleichzeitige Verbindungen von derselben Quell-IP-Adresse, deutet dies darauf hin, dass sich mehrere Telearbeiter hinter einem NAT-Router verbinden, der den Datenverkehr verschleiert, oder dass es sich um einen UDP-Flood-Angriff handelt . In jedem Fall sind mehr als zehn Verbindungen pro Quell-IP-Adresse nicht legitimer Datenverkehr.

Um ein Limit für gleichzeitige Verbindungen pro Quell-IP-Adresse für unseren VPN-Virtual-Service zu konfigurieren, gehen Sie bitte wie folgt vor:

1. Zurück Nach IPDS > DoS > DoS-Regel erstellen, erstellen Sie eine neue Regel mit dem Namen limit_per_source_IP und wählen Sie die Regeltyp Gesamtverbindungslimit pro Quell-IP und drücken Sie Erschaffung.
2. Geben Sie im Formular zur Regelbearbeitung das gewünschte Limit für gleichzeitige Verbindungen in das Feld ein. Gesamtverbindungslimit pro Quell-IP, in unserem Fall 10 und drücken Sie Absenden.
3. Gehen Sie zur Registerkarte Farms und verlegen Sie die Farm VPNLB aus Spalte Verfügbare Farmen zu Farmen aktivieren.

Mit dieser Konfiguration ist die Anzahl gleichzeitiger Verbindungen pro Quell-IP auf 10 begrenzt. Wir vertrauen keiner Client-IP, die versucht, mehr als 10 VPN-Verbindungen herzustellen. Falls Sie sicherstellen können, dass nicht mehr als ein Client Verbindungen über ein öffentliches NAT herstellt, kann ` limit_per_source_IP` auf 1 gesetzt werden.

Genießen Sie Ihren skalierbaren, hochverfügbaren und sicheren VPN-Dienst mit Relianoid!

📄 Laden Sie dieses Dokument im PDF-Format herunter #

    EMAIL: *

    Bereitgestellt von BetterDocs