News
Serverspace Technologien in den VAE: Einführung von Falconcloud
WB
14. Mai 2020
Aktualisiert August 1, 2023

Konfigurieren OpenVPN on Ubuntu

Linux Netzwerke Ubuntu VPN

Es wird davon ausgegangen, dass öffentliche (offene) Netzwerke nicht auf dem erforderlichen Sicherheitsniveau sind. Es besteht das potenzielle Risiko, dass böswillige Benutzer in solchen Netzwerken Datenverkehr abfangen (abfangen) –
B. in Cafés, Bahn- oder Bushaltestellen, Einkaufszentren usw. Der erfasste Datenverkehr könnte als Informationsquelle für das Hacken von Konten, den Diebstahl vertraulicher Daten und andere kritische Sicherheitsprobleme dienen.

VPN (Virtuelles privates Netzwerk) ist eine Methode zur Organisation privater (persönlicher) Netze, die verschlüsselte Daten über öffentliche Netze sendet.

Normale Kunden und Organisationen (egal welche Form oder Größe) verwenden VPN regelmäßig.

Bestimmten Benutzern ist lediglich der Zugriff auf ein privates Netzwerk (unter Verwendung verschiedener Arten von Authentifizierungen) mit obligatorischer Verbindungsverschlüsselung gestattet, sodass das Abfangen des Datenverkehrs zum Zugriff auf wertvolle (nützliche) Daten in den meisten Fällen sinnlos ist.

Im Allgemeinen hängt das Funktionieren eines privaten Netzwerks von der jeweiligen Implementierung ab.

Das cliDas Ent-Server-Modell wird häufiger dort angewendet, wo die Kommunikation zwischen Netzwerkknoten bereitgestellt wird VPN Server. Ein Server kann als physischer/virtueller Host dargestellt werden, auf dem ein Server-Betriebssystem läuft (übrigens ist ein Desktop-Betriebssystem eine Auswahl), und als spezialisierte Netzwerkgeräte mit der Fähigkeit, Folgendes zu tun: VPN Technologie.

Zugängliche Kommunikationsmodi: Punkt-zu-Punkt-Interaktion (Host kommuniziert mit einem einzelnen Host) oder Bündelung ganzer Subnetze zur Bereitstellung eines größeren (mit komplexen Routing-Änderungen).
OpenVPN ist weit verbreitet VPN Implementierung und den Protokollnamen.

Es handelt sich um eine plattformübergreifende Software, die auf vielen Betriebssystemen läuft.

Die GNU GPL-Lizenz ermöglicht die Nutzung durch kommerzielle Organisationen.

Ziel der Veröffentlichung ist es, die einfache Installation und Konfiguration zu demonstrieren OpenVPN auf Host mit Ubuntu mit paramFür eine sichere Verwendung ausreichende eter.



Einige ErklärungennatIonen, bevor Sie fortfahren

OpenVPN ist stark auf die korrekte Arbeit der PKI angewiesen – sein Hauptzweck besteht darin, Schlüssel zu erstellen und Zertifikate auszustellen, zu signieren und zu widerrufen. Zur Vereinfachung dieser Prozesse wird bei häufigem Einsatz das Skript „easyrsa“ verwendet – ein Ansatz zur Vorbereitung einer Zertifizierungsstelle (CA).

Es wird davon ausgegangen, dass die Verschlüsselung im asymmetrischen Modus erfolgt, bei dem private (zur Verschlüsselung übertragener Pakete) und öffentliche (zur Entschlüsselung) Schlüssel auf jedem Host platziert werden.

Hosts erkennen (authentifizieren) sich gegenseitig vor der Interaktion, was bedeutet, dass Nachweise erbracht werden müssen, um zu bestätigen, dass jeder Host zur Kommunikation berechtigt ist. Durch die gemeinsame Nutzung öffentlicher Schlüssel kann die Erkennung sichergestellt werden.

Auf diese Weise wird auch davon ausgegangen, dass ein einzelner Host zur Authentifizierung den öffentlichen Schlüssel von allen Hosts im Netzwerk erhalten muss (und natürlich auch den sicheren Paketaustausch).

Stellen Sie sich ein wirklich großes Netzwerk mit Hunderten von Hosts vor und es scheint ziemlich schwierig zu sein, den Austausch öffentlicher Schlüssel aufrechtzuerhalten (wenn man bedenkt, dass gefälschte Schlüssel von böswilligen Benutzern bereitgestellt werden können).
Stattdessen nimmt CA als andere Partei an der Interaktion teil, wenn andere Hosts ihr vertrauen.

Die Rolle der Zertifizierungsstelle ist die Bearbeitung von Zertifikatsanfragen – ihr Zweck ist die Bearbeitung von Zertifikatsausstellungsanfragen für jeden öffentlichen Schlüssel. Verarbeitung bedeutet, dass die Zertifizierungsstelle das Zertifikat des Hosts ausstellt und unterzeichnet, indem sie ihr eigenes Zertifikat anwendet. Hosts erhalten das Zertifikat der Zertifizierungsstelle mit der Konfiguration – deshalb vertrauen sie ihm.

Basierend auf ErläuterungennatIonen über diesen Einheiten sind erforderlich:

  1. Privater Schlüssel und Zertifikat der CA;
  2. Serverschlüssel, Zertifikat eines von der Zertifizierungsstelle signierten öffentlichen Schlüssels;
  3. Client-Schlüssel, Zertifikat eines von der Zertifizierungsstelle signierten öffentlichen Schlüssels;
  4. Separate Datei, die entsprechend mit dem Diffie-Hellman-Protokoll generiert wurde. Die Verwendung einer solchen Datei macht es für einen Eindringling schwierig, die Pakete zu entschlüsseln, die er durch Kompromittierung des privaten Schlüssels abfangen konnte;
  5. Spezieller HMAC-Schlüssel als erweiterte Sicherheitsoption. Sein Zweck ist der Schutz vor verschiedenen Arten von Angriffen.

Installation

Arten von OpenVPN Installieren:

  1. Aus Quellcode;
  2. Aus Ubuntu Repository;
  3. Aus dem Entwickler-Repository (Community Edition).

Es wird empfohlen, die Software mithilfe des Paketmanagers zu aktualisieren, daher ist die Installation vom Quellcode nicht die beste Wahl.

Ubuntu Im Repository fehlt eine neue Version der Software.

OpenVPN Entwickler unterhalten ein dediziertes Repository mit neuen Versionen und Updates und betrachten es daher als geeigneter.

Entwickler-Repository hinzufügen (alle Befehle werden von Root ausgeführt):

    1. GPG-Schlüssel importieren:
curl -fsSL https://swupdate.openvpn.net/repos/repo-public.gpg | gpg --dearmor -o /usr/share/keyrings/openvpn-public.gpg
    1. Neue Quelle für apt-Paketmanager platzieren:
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/openvpn-public.gpg] https://build.openvpn.net/debian/openvpn/stable jammy main" > /etc/apt/sources.list.d/openvpn-repo.list
    1. Installieren Sie Software mit ihren Abhängigkeiten:
apt update && apt install easy-rsa openvpn

CA-Vorbereitung

    1. Erstellen Sie ein Unterverzeichnis mit zugehörigen CA-Inhalten:
make-cadir /etc/openvpn/ca && cd /etc/openvpn/ca && ./easy-rsa init-pki

Anschließend erscheinen private Schlüssel „.key“ im Verzeichnis „pki/private“, ausgestellte Zertifikate „.crt“ in „pki/issued“.

    1. Vor dem Start liest das „easyrsa“-Skript die Datei mit dem Namen „vars“ – es speichert die benötigten Variablennamen mit ihren Standardwerten. Es steht Ihnen frei, Werte zu ändern, nachdem Sie den entsprechenden Eintrag zuvor auskommentiert haben.

Beispiel einer Modifikation:
variables in vars file

Die Variable EASYRSA_CA_EXPIRE definiert, wie viele Tage der CA-Schlüssel gültig ist – der Standardwert ist 3650 Tage (oder 10 Jahre). Geben Sie hier bei Bedarf einen neuen Wert an.

Ebenso definiert EASYRSA_CERT_EXPIRE die Gültigkeitsdauer des CA-Zertifikats.

Die Datei enthält auch ErläuterungennatIonen für jede Variable als Kommentare.

    1. Erhalten Sie den generierten privaten CA-Schlüssel und das Zertifikat:
./easy-rsa build-ca

Wichtige Empfehlung: Legen Sie eine komplexe Passphrase fest, wenn eine entsprechende Anfrage angezeigt wird – eine Passphrase erschwert die Verwendung des Schlüssels, wenn dieser kompromittiert ist.

„Allgemeiner Name“ – drücken Sie die Eingabetaste (bedeutet, dass Sie mit dem Vorschlag in eckigen Klammern fortfahren) oder geben Sie den gewünschten Namen ein.

Ergebnis der Skriptausführung – privater CA-Schlüssel gespeichert als „ca.key“, CA-Zertifikat – „ca.crt“. Geben Sie den Schlüssel niemals weiter, sondern bewahren Sie ihn an einem sicheren Ort auf!

    1. Generieren Sie eine Diffie-Hellman-Datei (dieser Vorgang kann zwei oder drei Minuten dauern):
./easyrsa gen-dh
    1. HMAC-Schlüssel generieren:
openvpn --genkey secret pki/ta.key

Schlüssel und Zertifikat für den Server

    1. Privaten Schlüssel generieren:
./easyrsa gen-req serverspace nopass

„nopass“ ermöglicht den Erhalt eines Schlüssels ohne Passphrase. Andernfalls fordert systemd vor jedem Dienststart eine Passphrase an. Geben Sie nicht „nopass“ ein, falls Ihre Sicherheitsrichtlinie eine Passphrase erfordert.

Geben Sie den gewünschten Namen an, sobald die Anfrage „Common Name“ erscheint, z. B. Serverspace.

Ergebnis – privater Schlüssel „serverspace.key“, Zertifikatsausstellungsanforderung „serverspace.req“.

    1. Zertifikat ausstellen und unterschreiben:
./easyrsa sign-req server serverspace

Vor dem Signieren fordert das System eine Bestätigung der bereitgestellten Daten an. „Anforderungsdetails bestätigen:“ – bestätigen Sie es mit dem Wort „Ja“, direkt danach – geben Sie die Passphrase für den privaten CA-Schlüssel ein.
Ergebnis – Zertifikat „serverspace.crt“.

    1. Fassen Sie die Dateien in einem Verzeichnis zusammen:
cp pki/private/serverspace.key pki/issued/serverspace.crt pki/dh.pem pki/ca.crt pki/ta.key /etc/openvpn/server/

Vorbereitung der Serverkonfiguration

Neue Datei /etc/ erstellenopenvpn/server/server.conf und platzieren Sie dort:

port 1194
proto udp
dev tun
mode server
ca ca.crt
cert server.crt
key server.key
dh dh.pem
tls-auth ta.key 0
server 172.16.61.0 255.255.255.0
push "redirect gateway def1"
push "dhcp-option DNS 8.8.8.8"
ifconfig-pool-persist ipp.txt
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
log openvpn.log
log-append openvpn.log

Port belässt den Standardwert – 1194, UDP-Verkehr (TCP kann in bestimmten Situationen verwendet werden), Subnetz und DNS definiert sind, ist die Komprimierung aktiviert.
Es gibt andere paramEs stehen Eter zur Verfügung – ihre Verwendung hängt von den Bedingungen der Aufgabe ab.

Startseite OpenVPN Server

    1. Aktivieren und starten Sie den systemd-Dienst:
systemctl enable openvpn-server@server.service --now

Direkt nach dem Start muss die zusätzliche Netzwerkschnittstelle „tun0“ erscheinen. Befehl „ip a | grep tun0“ kann prüfen, ob dem so ist. Wenn „tun0“ aktiv ist, läuft der Dienst ordnungsgemäß.[/code]

    1. Senden von Paketen zwischen Schnittstellen zulassen:
sysctl -w net.ipv4.ip_forward = 1 >> /etc/sysctl.conf
sysctl -p
    1. Fügen Sie einen neuen Eintrag in IPTables hinzu, um ihn zu verwenden NAT:
iptables -t nat -A POSTROUTING -s 172.16.61.0/24 -o enp0s5 -j MASQUERADE

Geben Sie den Namen der Schnittstelle an, die empfangen soll client-Verbindungen anstelle von enp0s5.
Dieser Eintrag verschwindet nach dem Neustart des Betriebssystems.
Um es dauerhaft zu machen, kann eine kleine ausführbare Datei direkt nach dem Hochfahren des Netzwerks gestartet werden. Erstellen Sie eine Datei mit dem Namen 50-ifup in /etc/networkd-dispatcher/routable.d/ und fügen Sie hinzu:

#!/usr/bin/env bash
if [[ "$IFACE" == "enp0s5" ]];
then
iptables -t nat -A POSTROUTING -s 172.16.61.0/24 -o enp0s5 -j MASQUERADE
fi

Machen Sie die Datei 50-ifup ausführbar (Berechtigungen 755).

CliSchlüssel und Zertifikat des Enthusiasten

    1. Schlüssel für a generieren client:
./easy-rsa gen-req myclient1
    1. Zertifikat ausstellen und unterschreiben:
./easyrsa sign-req myclient1

Das Skript fordert eine Bestätigung an – geben Sie zur Bestätigung „Ja“ ein und geben Sie anschließend auch die Passphrase für den privaten CA-Schlüssel ein.
Neu cliZertifikat des HNO-Enthusiasten – „meinclient1.crt“, Schlüssel – „meinclient1.key“.

Die unten genannten Dateien werden auf einem Gerät benötigt, auf dem cliEs soll eine Ent-Verbindung erstellt werden:

  • ca.crt;
  • myclient1.key;
  • myclient1.crt;
  • ta.key.



Abstimmung:
4 aus 5
Durchschnittliche Bewertung: 4.2
Bewertet von: 5
1101 CT Amsterdam Niederlande, Herikerbergweg 292
+31 20 262-58-98
700 300
ITGLOBAL.COM NL
700 300
Wir verwenden Cookies, um Ihr Erlebnis auf der Website zu verbessern Serverspace besser. Indem Sie weiterhin auf unserer Website surfen, stimmen Sie unseren zu
Cookies und Datenschutzbestimmungen.