OpenVPN erstellt einen verschlüsselten Tunnel zwischen zwei Punkten und verhindert, dass Dritte auf Ihren Netzwerkverkehr zugreifen. Durch die Einrichtung Ihres Virtual Private Network (VPN)-Servers 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?
Im ersten Artikel dieser Serie wurde gezeigt, wie Sie einen Linux-PC einrichten und konfigurieren, der als Ihr OpenVPN-Server dient. Außerdem wurde beschrieben, wie Sie Ihren Router so konfigurieren, dass Sie Ihren VPN-Server von einem externen Netzwerk aus erreichen können.
Dieser zweite Artikel zeigt, wie Sie die OpenVPN-Serversoftware mithilfe von Schritten installieren, die aus dem OpenVPN-Wiki angepasst wurden.
OpenVPN installieren
Installieren Sie zunächst OpenVPN und die easy-rsa
Anwendung (um Ihnen beim Einrichten der Authentifizierung auf Ihrem Server zu helfen) mit Ihrem Paketmanager. 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 während der Installation nicht erstellt werden, erstellen Sie sie manuell.
Authentifizierung einrichten
OpenVPN ist abhängig von der easy-rsa
Skripte und sollte eine eigene Kopie davon haben. Kopiere das easy-rsa
Skripte und Dateien:
$ sudo mkdir /etc/openvpn/easy-rsa
$ sudo cp -rai /usr/share/easy-rsa/3/*
/etc/openvpn/easy-rsa/
Authentifizierung ist wichtig und OpenVPN nimmt sie sehr ernst. Die Theorie besagt, dass es wichtig ist, dass Alice sicherstellt, dass Alice wirklich Alice ist, wenn Alice auf private Informationen innerhalb von Bobs Firma zugreifen muss. Ebenso muss Alice sicherstellen, dass Bob wirklich Bob ist. Wir nennen dies gegenseitige Authentifizierung.
Die heutige Best Practice prüft ein Attribut anhand von zwei von drei möglichen Faktoren:
- Etwas hast du
- Etwas, das du weißt
- Etwas, das du bist
Es gibt viele Möglichkeiten. Dieses OpenVPN-Setup verwendet:
- Zertifikate: Etwas, das sowohl der Client als auch der Server haben
- Zertifikatspasswort: 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 Alice und Bob die sind, für die sie sich ausgeben. Da Alice und Bob Cathy vertrauen, vertrauen sie sich jetzt auch.
Aber was überzeugt Cathy davon, dass Alice und Bob wirklich Alice und Bob sind? Cathys Ruf in der Community hängt davon ab, dies richtig zu machen. Wenn sie also möchte, dass Danielle, Evan, Fiona, Greg und andere ihr auch vertrauen, wird sie Alice und Bobs Behauptungen rigoros prüfen. Nachdem Alice und Bob Cathy davon überzeugt haben, dass sie wirklich Alice und Bob sind, unterschreibt Cathy Zertifikate, die sie miteinander und mit der Welt teilen können.
Woher wissen Alice und Bob, dass Cathy – und nicht jemand, der sie verkörpert – die Zertifikate signiert hat? Sie verwenden eine Technologie namens Kryptografie mit öffentlichem Schlüssel:
- Finden Sie einen Kryptografiealgorithmus, 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 ihrem ö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 Dokumentation von OpenVPN 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 Clientzertifikate vom Server und den Clients zu generieren. Da dies eine einfache Einrichtung ist, können Sie den OpenVPN-Server als eigene CA verwenden und die Zertifikate und Schlüssel in bestimmte Verzeichnisse auf dem Server legen.
Generieren Sie Zertifikate vom Server und kopieren Sie sie im Rahmen des Client-Setups 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 CA 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 erstellen und signieren
Nun müssen Sie eine Serveranfrage an die CA senden und das Serverzertifikat generieren und signieren.
Dieser Schritt kopiert im Wesentlichen die Anforderungsdatei von /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
Überprüfen und unterschreiben 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
Als Server anmelden:
$ 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 abholt:
$ 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/
Als nächstes generieren Sie 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 dort
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 weiterverwendet.