OpenVPN erstellt einen verschlüsselten Tunnel zwischen zwei Punkten und verhindert, dass Dritte auf Ihren Netzwerkverkehr zugreifen. Indem Sie Ihren VPN-Server (Virtual Private Network) einrichten, werden Sie Ihr eigener VPN-Anbieter. Viele beliebte VPN-Dienste verwenden bereits OpenVPN. Warum also Ihre Verbindung an einen bestimmten Anbieter binden, wenn Sie die vollständige Kontrolle haben können?
Der erste Artikel dieser Serie zeigte, wie Sie einen Linux-PC einrichten und konfigurieren, der als OpenVPN-Server dient. Außerdem wurde erläutert, wie Sie Ihren Router konfigurieren, damit Sie Ihren VPN-Server von einem externen Netzwerk aus erreichen können.
Dieser zweite Artikel demonstriert, wie die OpenVPN-Server-Software mithilfe von angepassten Schritten aus dem OpenVPN-Wiki installiert wird.
Installieren Sie OpenVPN
Installieren Sie zuerst OpenVPN und den easy-rsa
Anwendung (um Ihnen beim Einrichten der Authentifizierung auf Ihrem Server zu helfen) mithilfe Ihres Paketmanagers. Dieses Beispiel verwendet Fedora Linux; Wenn Sie etwas anderes gewählt haben, verwenden Sie den entsprechenden Befehl für Ihre Distribution:
$ sudo dnf install openvpn easy-rsa
Dadurch werden einige leere Verzeichnisse erstellt:
/etc/openvpn
/etc/openvpn/client
/etc/openvpn/server
Wenn diese nicht während der Installation erstellt werden, erstellen Sie sie manuell.
Authentifizierung einrichten
OpenVPN ist abhängig von easy-rsa
Skripte und sollte eine eigene Kopie davon haben. Kopieren Sie den easy-rsa
Skripte und Dateien:
$ sudo mkdir /etc/openvpn/easy-rsa
$ sudo cp -rai /usr/share/easy-rsa/3/* \
/etc/openvpn/easy-rsa/
Weitere Linux-Ressourcen
- Spickzettel für Linux-Befehle
- Spickzettel für fortgeschrittene Linux-Befehle
- Kostenloser Online-Kurs:RHEL Technical Overview
- Spickzettel für Linux-Netzwerke
- SELinux-Spickzettel
- Spickzettel für allgemeine Linux-Befehle
- Was sind Linux-Container?
- Unsere neuesten Linux-Artikel
Die Authentifizierung ist wichtig und OpenVPN nimmt sie sehr ernst. Die Theorie ist, dass, wenn Alice auf private Informationen innerhalb von Bobs Firma zugreifen muss, es wichtig ist, dass Bob sicherstellt, dass Alice wirklich Alice ist. Ebenso muss Alice sicherstellen, dass Bob wirklich Bob ist. Wir nennen das gegenseitige Authentifizierung.
Die heutige Best Practice überprüft ein Attribut anhand von zwei von drei möglichen Faktoren:
- Etwas, das du hast
- Etwas, das Sie wissen
- Etwas, das du bist
Es gibt viele Möglichkeiten. Dieses OpenVPN-Setup verwendet:
- Zertifikate: Etwas, das sowohl der Client als auch der Server haben
- Passwort des Zertifikats: Etwas, das die Leute wissen
Alice und Bob brauchen Hilfe, um sich gegenseitig zu authentifizieren. Da beide Cathy vertrauen, übernimmt Cathy eine Rolle namens Zertifizierungsstelle (CA). Cathy bestätigt, dass sowohl Alice als auch Bob die sind, für die sie sich ausgeben. Weil Alice und Bob beide Cathy vertrauen, vertrauen sie jetzt auch einander.
Aber was überzeugt Cathy davon, dass Alice und Bob wirklich Alice und Bob sind? Cathys Ruf in der Community hängt davon ab, dass sie dies richtig macht, und wenn sie also möchte, dass Danielle, Evan, Fiona, Greg und andere ihr ebenfalls vertrauen, wird sie die Behauptungen von Alice und Bob rigoros prüfen. Nachdem Alice und Bob Cathy davon überzeugt haben, dass sie wirklich Alice und Bob sind, unterzeichnet Cathy Zertifikate, die sie miteinander und der Welt teilen können.
Woher wissen Alice und Bob, dass Cathy – und nicht jemand, der sich für sie ausgibt – die Zertifikate signiert hat? Sie verwenden eine Technologie namens Public-Key-Kryptographie:
- Finden Sie einen Kryptographiealgorithmus, der mit einem Schlüssel verschlüsselt und mit einem anderen entschlüsselt.
- Deklarieren Sie einen Schlüssel als privat und teilen Sie den anderen Schlüssel mit der Öffentlichkeit.
- Cathy teilt ihren öffentlichen Schlüssel und eine Klartextkopie ihrer Signatur mit der Welt.
- Cathy verschlüsselt ihre Signatur mit ihrem privaten Schlüssel. Jeder kann es mit seinem öffentlichen Schlüssel entschlüsseln.
- Wenn Cathys entschlüsselte Signatur mit der Klartextkopie übereinstimmt, können Alice und Bob darauf vertrauen, dass Cathy sie wirklich signiert hat.
Sie verwenden dieselbe Technologie jedes Mal, wenn Sie Waren und Dienstleistungen online kaufen.
Authentifizierung implementieren
Die OpenVPN-Dokumentation schlägt vor, eine CA auf einem separaten System oder zumindest einem separaten Verzeichnis auf dem OpenVPN-Server einzurichten. Die Dokumentation schlägt auch vor, Server- und Client-Zertifikate vom Server und den Clients zu generieren. Da dies eine einfache Einrichtung ist, können Sie den OpenVPN-Server als seine eigene Zertifizierungsstelle verwenden und die Zertifikate und Schlüssel in bestimmten Verzeichnissen auf dem Server ablegen.
Generieren Sie Zertifikate vom Server und kopieren Sie sie im Rahmen der Client-Einrichtung auf jeden Client.
Diese Implementierung verwendet selbstsignierte Zertifikate. Dies funktioniert, weil der Server sich selbst vertraut und Clients dem Server vertrauen. Daher ist der Server die beste Zertifizierungsstelle zum Signieren von Zertifikaten.
Richten Sie auf dem OpenVPN-Server die CA ein:
$ sudo mkdir /etc/openvpn/ca
$ cd /etc/openvpn/ca
$ sudo /etc/openvpn/easy-rsa/easyrsa init-pki
$ sudo /etc/openvpn/easy-rsa/easyrsa build-ca
Verwenden Sie eine leicht zu merkende, aber schwer zu erratende Passphrase.
Richten Sie das Serverschlüsselpaar und die Zertifikatsanforderung ein:
$ cd /etc/openvpn/server
$ sudo /etc/openvpn/easy-rsa/easyrsa init-pki
$ sudo /etc/openvpn/easy-rsa/easyrsa gen-req OVPNserver2020 nopass
In diesem Beispiel OVPNServer2020
ist der Hostname, den Sie Ihrem OpenVPN-Server im ersten Artikel dieser Serie zugewiesen haben.
Zertifikate generieren und signieren
Jetzt müssen Sie eine Serveranfrage an die CA senden und das Serverzertifikat generieren und signieren.
Dieser Schritt kopiert im Wesentlichen die Anforderungsdatei aus /etc/openvpn/server/pki/reqs/OVPNserver2020.req
zu /etc/openvpn/ca/pki/reqs/OVPNserver2020.req
um es zur Überprüfung und Unterzeichnung vorzubereiten:
$ cd /etc/openvpn/ca
$ sudo /etc/openvpn/easy-rsa/easyrsa \
import-req /etc/openvpn/server/pki/reqs/OVPNserver2020.req OVPNserver2020
Prüfen und signieren Sie die Anfrage
Sie haben eine Anfrage generiert, also müssen Sie jetzt die Zertifikate überprüfen und signieren:
$ cd /etc/openvpn/ca
$ sudo /etc/openvpn/easy-rsa/easyrsa \
show-req OVPNserver2020
Melden Sie sich als Server an:
$ cd /etc/openvpn/ca
$ sudo /etc/openvpn/easy-rsa/easyrsa \
sign-req server OVPNserver2020
Legen Sie eine Kopie der Server- und CA-Zertifikate dort ab, wo sie hingehören, damit die Konfigurationsdatei sie abholen kann:
$ sudo cp /etc/openvpn/ca/pki/issued/OVPNserver2020.crt \
/etc/openvpn/server/pki/
$ sudo cp /etc/openvpn/ca/pki/ca.crt \
/etc/openvpn/server/pki/
Generieren Sie als Nächstes Diffie-Hellman-Parameter, damit Clients und der Server Sitzungsschlüssel austauschen können:
$ cd /etc/openvpn/server
$ sudo /etc/openvpn/easy-rsa/easyrsa gen-dh
Fast da
Der nächste Artikel dieser Serie zeigt, wie Sie den gerade erstellten OpenVPN-Server konfigurieren und starten.
Dieser Artikel basiert auf dem Blog von D. Greg Scott und wird mit Genehmigung wiederverwendet.