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?
Im ersten Artikel dieser Serie wurde ein Server für Ihr VPN eingerichtet, und im zweiten Artikel wurde gezeigt, wie Sie die OpenVPN-Serversoftware installieren und konfigurieren. Dieser dritte Artikel zeigt, wie man OpenVPN mit vorhandener Authentifizierung startet.
Mehr zur Sicherheit
- Der defensive Programmierleitfaden
- Webinar:Automatisierung der Systemsicherheit und Compliance mit einem Standardbetriebssystem
- 10 Ebenen der Linux-Containersicherheit
- SELinux-Malbuch
- Weitere Sicherheitsartikel
Um einen OpenVPN-Server einzurichten, müssen Sie:
- Erstellen Sie eine Konfigurationsdatei.
- Legen Sie den
sysctl
fest Wertnet.ipv4.ip_forward = 1
um das Routing zu aktivieren. - Richten Sie den entsprechenden Besitz für alle Konfigurations- und Authentifizierungsdateien ein, um den OpenVPN-Server-Daemon unter einem Nicht-Root-Konto auszuführen.
- Stellen Sie OpenVPN so ein, dass es mit der entsprechenden Konfigurationsdatei startet.
- Konfigurieren Sie Ihre Firewall.
Konfigurationsdatei
Sie müssen eine Serverkonfigurationsdatei in /etc/openvpn/server/
erstellen . Sie können ganz von vorne anfangen, wenn Sie möchten, und OpenVPN enthält mehrere Beispielkonfigurationsdateien, die Sie als Ausgangspunkt verwenden können. Schauen Sie in /usr/share/doc/openvpn/sample/sample-config-files/
nach um sie alle zu sehen.
Wenn Sie eine Konfigurationsdatei von Hand erstellen möchten, beginnen Sie entweder mit server.conf
oder roadwarrior-server.conf
(falls zutreffend) und legen Sie Ihre Konfigurationsdatei in /etc/openvpn/server
ab . Beide Dateien sind ausführlich kommentiert, also lesen Sie die Kommentare und entscheiden Sie, welche für Ihre Situation am sinnvollsten ist.
Sie können Zeit und Nerven sparen, indem Sie meine vorgefertigten Vorlagen für Server- und Client-Konfigurationsdateien und sysctl
verwenden Datei, um das Netzwerk-Routing zu aktivieren. Diese Konfiguration umfasst auch die Anpassung zum Protokollieren von Verbindungen und Trennungen. Es führt Protokolle auf dem OpenVPN-Server in /etc/openvpn/server/logs
.
Wenn Sie meine Vorlagen verwenden, müssen Sie sie bearbeiten, um Ihre IP-Adressen und Hostnamen zu verwenden.
Um meine vorgefertigten Konfigurationsvorlagen, Skripte und sysctl
zu verwenden Um die IP-Weiterleitung zu aktivieren, laden Sie mein Skript herunter:
$ curl \
https://www.dgregscott.com/ovpn/OVPNdownloads.sh > \
OVPNdownloads.sh
Lesen Sie das Skript, um eine Vorstellung davon zu bekommen, was es tut. Hier ist ein kurzer Überblick über seine Aktionen:
- Erstellt die entsprechenden Verzeichnisse auf Ihrem OpenVPN-Server
- Lädt Server- und Client-Konfigurationsdateivorlagen von meiner Website herunter
- Lädt meine benutzerdefinierten Skripte herunter und platziert sie im richtigen Verzeichnis mit den richtigen Berechtigungen
- Lädt
99-ipforward.conf
herunter und legt es in/etc/sysctl.d
ab um die IP-Weiterleitung beim nächsten Booten einzuschalten - Legt den Besitz für alles in
/etc/openvpn
fest
Wenn Sie zufrieden sind, dass Sie verstehen, was das Skript tut, machen Sie es ausführbar und führen Sie es aus:
$ chmod +x OVPNdownloads.sh
$ sudo ./OVPNdownloads.sh
Hier sind die Dateien, die kopiert werden (beachten Sie die Eigentümerschaft der Datei):
$ ls -al -R /etc/openvpn
/etc/openvpn:
total 12
drwxr-xr-x. 4 openvpn openvpn 34 Apr 6 20:35 .
drwxr-xr-x. 139 root root 8192 Apr 6 20:35 ..
drwxr-xr-x. 2 openvpn openvpn 33 Apr 6 20:35 client
drwxr-xr-x. 4 openvpn openvpn 56 Apr 6 20:35 server
/etc/openvpn/client:
total 4
drwxr-xr-x. 2 openvpn openvpn 33 Apr 6 20:35 .
drwxr-xr-x. 4 openvpn openvpn 34 Apr 6 20:35 ..
-rw-r--r--. 1 openvpn openvpn 1764 Apr 6 20:35 OVPNclient2020.ovpn
/etc/openvpn/server:
total 4
drwxr-xr-x. 4 openvpn openvpn 56 Apr 6 20:35 .
drwxr-xr-x. 4 openvpn openvpn 34 Apr 6 20:35 ..
drwxr-xr-x. 2 openvpn openvpn 59 Apr 6 20:35 ccd
drwxr-xr-x. 2 openvpn openvpn 6 Apr 6 20:35 logs
-rw-r--r--. 1 openvpn openvpn 2588 Apr 6 20:35 OVPNserver2020.conf
/etc/openvpn/server/ccd:
total 8
drwxr-xr-x. 2 openvpn openvpn 59 Apr 6 20:35 .
drwxr-xr-x. 4 openvpn openvpn 56 Apr 6 20:35 ..
-rwxr-xr-x. 1 openvpn openvpn 917 Apr 6 20:35 client-connect.sh
-rwxr-xr-x. 1 openvpn openvpn 990 Apr 6 20:35 client-disconnect.sh
/etc/openvpn/server/logs:
total 0
drwxr-xr-x. 2 openvpn openvpn 6 Apr 6 20:35 .
drwxr-xr-x. 4 openvpn openvpn 56 Apr 6 20:35 ..
Hier ist die 99-ipforward.conf
Datei:
# Turn on IP forwarding. OpenVPN servers need to do routing
net.ipv4.ip_forward = 1
Bearbeiten Sie OVPNserver2020.conf
und OVPNclient2020.ovpn
um Ihre IP-Adressen aufzunehmen. Bearbeiten Sie außerdem OVPNserver2020.conf
um die Namen Ihrer Serverzertifikate von früher einzuschließen. Später werden Sie eine Kopie von OVPNclient2020.ovpn
umbenennen und bearbeiten zur Verwendung mit Ihren Client-Computern. Die Blöcke, die mit ***?
beginnen zeigen Ihnen, wo Sie etwas bearbeiten können.
Dateieigentum
Wenn Sie das automatisierte Skript von meiner Website verwendet haben, ist der Dateibesitz bereits vorhanden. Wenn nicht, müssen Sie sicherstellen, dass Ihr System einen Benutzer namens openvpn
hat das ist ein Mitglied einer Gruppe namens openvpn
. Sie müssen den Besitz von allem in /etc/openvpn
festlegen an diesen Benutzer und diese Gruppe. Dies ist sicher, wenn Sie sich nicht sicher sind, ob der Benutzer und die Gruppe bereits existieren, weil useradd
weigert sich, einen Benutzer mit demselben Namen wie einem bereits existierenden zu erstellen:
$ sudo useradd openvpn
$ sudo chown -R openvpn.openvpn /etc/openvpn
Firewall
Wenn Sie sich entschieden haben, den Firewalld-Dienst in Schritt 1 nicht zu deaktivieren, lässt der Firewall-Dienst Ihres Servers möglicherweise standardmäßig keinen VPN-Datenverkehr zu. Mit dem firewall-cmd
Befehl können Sie den OpenVPN-Dienst aktivieren, der die erforderlichen Ports öffnet und den Datenverkehr nach Bedarf weiterleitet:
$ sudo firewall-cmd --add-service openvpn --permanent
$ sudo firewall-cmd --reload
Sie brauchen sich nicht in einem Labyrinth von iptables zu verirren!
Starten Sie Ihren Server
Sie können jetzt Ihren OpenVPN-Server starten. Damit es nach einem Neustart automatisch startet, verwenden Sie den enable
Unterbefehl von systemctl
:
systemctl enable --now [email protected]
Letzte Schritte
Der vierte und letzte Artikel in diesem Artikel zeigt, wie Sie Clients einrichten, um sich aus der Ferne mit Ihrem OpenVPN zu verbinden.
Dieser Artikel basiert auf dem Blog von D. Greg Scott und wird mit Genehmigung wiederverwendet.