Pritunl VPN Server auf Rocky Linux 8 installieren
Pritunl ist ein Open-Source-VPN- und IPsec-Server mit Benutzerverwaltung und horizontaler Skalierung für kleine und große Organisationen. Er lässt dem Nutzer die Wahl zwischen den Protokollen OpenVPN und Wireguard. Er verfügt über eine einfach zu bedienende GUI-Oberfläche und unterstützt Clients auf den meisten Geräten und Plattformen. Der gesamte Datenverkehr zwischen den Clients und dem Server wird verschlüsselt. Pritunl basiert auf MongoDB, einer zuverlässigen und skalierbaren Datenbank, die sich schnell einrichten lässt und eine integrierte Replikationsunterstützung bietet.
In diesem Lernprogramm erfährst du, wie du den Pritunl VPN-Server auf Rocky Linux 8 installierst und wie du dich mit einem Linux-Client mit dem VPN verbindest.
Voraussetzungen
- Ein System mit Rocky Linux 8, auf dem der Pritunl Server läuft.
- Ein Nicht-Root-Benutzer mit sudo-Rechten.
- Ein Domainname, der auf den Server zeigt.
- Ein System, auf dem Rocky Linux 8 als Client läuft.
- Stelle sicher, dass alles auf dem neuesten Stand ist.
$ sudo dnf update
- Installiere alle Vorraussetzungen.
$ sudo dnf install nano
Schritt 1 – Firewall konfigurieren
Rocky Linux verwendet die Firewalld Firewall. Überprüfe den Status der Firewall.
$ sudo firewall-cmd --state running
Das bedeutet, dass sie erfolgreich läuft.
Die Firewall arbeitet mit verschiedenen Zonen und die öffentliche Zone ist die Standardzone, die wir verwenden werden. Zeige alle aktiven Dienste und Ports der Firewall an.
$ sudo firewall-cmd --permanent --list-services
Sie sollte die folgende Ausgabe zeigen.
dhcpv6-client mdns ssh
Lasse HTTP- und HTTPS-Ports zu.
$ sudo firewall-cmd --permanent --add-service=http $ sudo firewall-cmd --permanent --add-service=https
Überprüfe erneut den Status der Firewall.
$ sudo firewall-cmd --permanent --list-all
Du solltest eine ähnliche Ausgabe sehen.
public target: default icmp-block-inversion: no interfaces: sources: services: cockpit dhcpv6-client http https ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
Lade die Firewall neu, um die Änderungen zu aktivieren.
$ sudo firewall-cmd --reload
Schritt 2 – Installiere MongoDB
Pritunl basiert auf der Datenbank MongoDB, also müssen wir diese zuerst installieren. Rocky Linux wird nicht mit MongoDB ausgeliefert, also müssen wir das offizielle Repository von MongoDB verwenden.
Hinweis: MongoDB 5.0 funktioniert nur auf neueren Prozessoren. Wenn dein Server auf älterer Hardware läuft, solltest du dich für eine ältere Version von MongoDB entscheiden oder auf einen neueren Server wechseln.
Erstelle und öffne die Datei /etc/yum.repos.d/mongodb-org-5.0.repo
zum Bearbeiten.
$ sudo nano /etc/yum.repos.d/mongodb-org-5.0.repo
Füge den folgenden Code in die Datei ein.
[mongodb-org-5.0] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/5.0/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-5.0.asc
Speichere die Datei, indem du die Tastenkombination Strg + X drückst und Y eingibst, wenn du dazu aufgefordert wirst.
Installiere MongoDB.
$ sudo dnf install mongodb-org
Aktiviere und starte den MongoDB-Dienst.
$ sudo systemctl enable mongod --now
Schritt 3 – Pritunl Server installieren
Der erste Schritt besteht darin, das offizielle Repository für Pritunl zu erstellen. Erstelle und öffne die Datei /etc/yum.repos.d/pritunl.repo
zum Bearbeiten.
$ sudo nano /etc/yum.repos.d/pritunl.repo
Füge den folgenden Code in die Datei ein.
[pritunl] name=Pritunl Repository baseurl=https://repo.pritunl.com/stable/yum/centos/8/ gpgcheck=1 enabled=1
Speichere die Datei, indem du Strg + X drückst und Y eingibst, wenn du dazu aufgefordert wirst.
Installiere zuerst das Epel-Repository, das für Pritunl erforderlich ist.
$ sudo dnf install epel-release
Füge die für Pritunl benötigten GPG-Schlüssel hinzu und importiere sie.
$ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 7568D9BB55FF9E5287D586017AE645C0CF8E292A $ gpg --armor --export 7568D9BB55FF9E5287D586017AE645C0CF8E292A > key.tmp; sudo rpm --import key.tmp; rm -f key.tmp
Installiere Pritunl.
$ sudo dnf install pritunl
Überprüfe die Pritunl-Version.
$ pritunl version pritunl v1.30.2960.4
Aktiviere und starte den Pritunl-Dienst.
$ sudo systemctl enable pritunl --now
Limit für offene Dateien erhöhen
Führe die folgenden Befehle aus, um das Limit für offene Dateien auf dem Server zu erhöhen. Damit verhinderst du Verbindungsprobleme bei hoher Auslastung. Wenn du MongoDB auf einem anderen Server installiert hast, musst du diese Befehle auf diesem Server ausführen.
$ sudo sh -c 'echo "* hard nofile 64000" >> /etc/security/limits.conf' $ sudo sh -c 'echo "* soft nofile 64000" >> /etc/security/limits.conf' $ sudo sh -c 'echo "root hard nofile 64000" >> /etc/security/limits.conf' $ sudo sh -c 'echo "root soft nofile 64000" >> /etc/security/limits.conf'
Schritt 4 – Pritunl aufrufen und konfigurieren
Du kannst Pritunl starten, indem du in deinem Browser http://<serverIP>/
eingibst. Moderne Browser versuchen, auf die HTTPS-Version jeder Website zuzugreifen, daher musst du den vom Browser ausgegebenen Datenschutzfehler umgehen.
Wenn du die URL zum ersten Mal aufrufst, wird der folgende Bildschirm angezeigt.
Die MongoDB-URI wird automatisch übernommen. Für den Setup-Schlüssel führst du den folgenden Befehl aus.
$ sudo pritunl setup-key eacbd641982048fd9a60cdf09f7ebaa3
Gib den generierten Schlüssel auf der Website ein und klicke auf die Schaltfläche Speichern. Die Datenbank wird aktualisiert und der Anmeldebildschirm geöffnet.
Führe den folgenden Befehl aus, um Standard-Anmeldeinformationen zu generieren.
$ sudo pritunl default-password [undefined][2021-11-08 22:34:55,255][INFO] Getting default administrator password Administrator default password: username: "pritunl" password: "krZQLlH9U7P1"
Gib die Anmeldedaten ein und melde dich an. Du erhältst den folgenden Einrichtungsbildschirm.
Gib ein sicheres Passwort ein, um das Standardpasswort zu ersetzen. Gib eine Domäne in das FeldLets Encrypt Domain ein. Pritunl wird automatisch ein SSL-Zertifikat für die Domain erstellen und einrichten.
Du kannst den Server jetzt mit dem Domainnamen starten, indem du https://pritunl.example.com
in deinen Browser eingibst.
Schritt 5 – Hinzufügen einer Organisation, eines Servers und von Benutzern
Im nächsten Schritt fügst du eine Organisation für dein VPN hinzu. Klicke auf die Registerkarte Benutzer und dann auf die Schaltfläche Organisation hinzufügen.
Klicke auf die Schaltfläche Hinzufügen, um fortzufahren.
Im nächsten Schritt fügst du einen Benutzer hinzu. Es gibt zwei Möglichkeiten. Du kannst die Benutzer entweder einzeln hinzufügen oder sie in einer Gruppe hinzufügen. Wir werden zunächst einen einzelnen Benutzer hinzufügen. Klicke auf die Schaltfläche Benutzer hinzufügen.
Das PIN-Feld ist optional und wird verwendet, wenn du die Zwei-Faktor-Authentifizierung verwenden willst. Die PIN besteht nur aus Zahlen.
Wenn du die Organisation und die Benutzer festgelegt hast, gehst du auf die Registerkarte Server und klickst auf die Schaltfläche Server hinzufügen.
Port: Du kannst einen beliebigen Port hinzufügen, den der Server verwenden soll. Vergewissere dich, dass der von dir angegebene Port für den gesamten eingehenden Verkehr in der Sicherheitsgruppe offen ist.
DNS: Du kannst entweder Google DNS oder OpenDNS hinzufügen.
Virtuelles Netzwerk: Du kannst in diesem Feld eine private IP hinzufügen, aber stelle sicher, dass keine andere Ressource diese verwendet. Den Clients werden IP-Adressen aus diesem Bereich zugewiesen.
Virtuelles WG-Netzwerk: WireGuard-Netzwerkadressen für das private Netzwerk, das den WireGuard-Clients zugewiesen werden soll. Es sollte denselben CIDR-Block haben wie das virtuelle Netzwerk.
WireGuard aktivieren: Wenn diese Option aktiviert ist, wird WireGuard anstelle von OpenVPN verwendet. Für unser Tutorial werden wir jedoch OpenVPN verwenden, also lass das Häkchen weg.
WG Port: Dieser Port wird für die WireGuard-Verbindungen verwendet. Er darf nur verwendet werden, wenn wir die WireGuard-Option aktiviert haben.
Aktiviere Google Authenticator: Um die zweistufige Verifizierung zu verwenden, aktiviere diese Option. Wenn diese Option auf dem Server aktiviert ist, müssen alle Clients unter diesem Server jedes Mal das OTP verifizieren, bevor sie sich mit dem VPN verbinden.
IPv6 aktivieren: Aktiviert IPv6 DNS-Server. Die Clients erhalten private IPv6-Adressen.
Klicke auf die Schaltfläche Hinzufügen, um den Vorgang abzuschließen.
Klicke auf die Schaltfläche Organisation hinzufügen, um die Organisation mit dem neu erstellten Server zu verknüpfen.
Klicke auf die Schaltfläche Server starten, um das VPN zu starten.
Port in der Firewall freischalten
Um die Verbindungen vom Client über den VPN-Port zu akzeptieren, müssen wir ihn in unserer Firewall aktivieren.
$ sudo firewall-cmd --permanent --add-port=18412/udp $ sudo firewall-cmd --reload
Schritt 6 – Pritunl Client installieren
Jetzt, wo unser Server läuft, ist es an der Zeit, einen Client zu installieren und sich mit dem VPN zu verbinden. Pritunl bietet zwei Arten von Clients an – einen Command Line und einen GUI Client.
Für unser Tutorial werden wir den Kommandozeilen-Client verwenden. Du kannst nur eine Art von Client auf einem System installieren.
Installiere das EPEL-Repository, das der Pritunl-Client benötigt.
$ sudo dnf install epel-release
Füge das offizielle Pritunl-Repository zu deinem Rocky Linux-System hinzu.
$ sudo tee -a /etc/yum.repos.d/pritunl.repo << EOF [pritunl] name=Pritunl Stable Repository baseurl=https://repo.pritunl.com/stable/yum/centos/8/ gpgcheck=1 enabled=1 EOF
Füge die GPG-Schlüssel hinzu und importiere sie.
$ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 7568D9BB55FF9E5287D586017AE645C0CF8E292A $ gpg --armor --export 7568D9BB55FF9E5287D586017AE645C0CF8E292A > key.tmp; sudo rpm --import key.tmp; rm -f key.tmp
Installiere den Kommandozeilen-Client.
$ sudo dnf install pritunl-client
Schritt 7 – Verbindung vom Client zum Server herstellen
Rufe auf der Pritunl-Server-Website auf der Registerkarte „Benutzer“ den temporären Profil-Link auf, um dich mit dem Client zu verbinden.
Kopiere den temporären URI-Link aus dem letzten Eintrag.
Gib auf dem Client-Terminal den folgenden Befehl ein, um das Profil hinzuzufügen.
$ pritunl-client add pritunl://example.com/ku/2hd6S6Ug
Achte darauf, dass du den zuvor kopierten Profillink nach add
in den Befehl einfügst.
Überprüfe die Liste der hinzugefügten Profile.
$ pritunl-client list +----------------------------------+-------------------------+--------------+----------------+----------------+ | ID | NAME | ONLINE FOR | SERVER ADDRESS | CLIENT ADDRESS | +----------------------------------+-------------------------+--------------+----------------+----------------+ | wkinhnnjyz3ybektjbavy8qpecafqp1e | hforgeuser (howtoforge) | Disconnected | - | - | +----------------------------------+-------------------------+--------------+----------------+----------------+
Führe den folgenden Befehl aus, um dich mit dem Profil zu verbinden. Du musst nicht die vollständige Profil-ID in dem Befehl verwenden. Verwende einfach die ersten 3 Buchstaben der Profil-ID, um auf das Profil zu verweisen.
$ pritunl-client start wki --mode=ovpn --password=PINOTP
- Um den OPVN-Modus anzugeben, füge das Flag
--mode=ovpn
in den Befehl ein. - Wenn du die Google Authenticator Option aktiviert hast, musst du sie mit einem Google Authenticator oder Authy Client konfigurieren.
- Um die PIN und den Code für die Zwei-Faktor-Authentifizierung anzugeben, füge das Flag
--password=PINOTP
im Befehl hinzu. Wenn die PIN zum Beispiel 54321 und der OTP-Code 456789 ist, dann verwende das Flag--password=54321456789
im obigen Befehl. Wenn du nur die PIN verwendest, dann verwende das Flag--password=PIN
.
Führe den Befehl list
erneut aus, um zu überprüfen, ob die Verbindung funktioniert.
$ pritunl-client list
+----------------------------------+-------------------------+------------+----------------+----------------+
| ID | NAME | ONLINE FOR | SERVER ADDRESS | CLIENT ADDRESS |
+----------------------------------+-------------------------+------------+----------------+----------------+
| wkinhnnjyz3ybektjbavy8qpecafqp1e | hforgeuser (howtoforge) | 6 secs | 178.62.233.196 | 192.168.238.2 |
+----------------------------------+-------------------------+------------+----------------+----------------+
Du hast eine erfolgreiche Verbindung zum Pritunl VPN hergestellt.
Pritunl Befehlszeile
Der Pritunl Server verfügt über ein Kommandozeilentool, mit dem du einige grundlegende Operationen durchführen kannst.
Datenbank reparieren
Du kannst Pritunl verwenden, um die Datenbank zu reparieren und eine beschädigte oder inkonsistente Datenbank wiederherzustellen.
Beende zunächst den Pritunl-Server.
$ sudo systemctl stop pritunl
Repariere die Datenbank.
$ sudo pritunl repair-database
Starte den Pritunl-Dienst neu.
$ sudo systemctl start pritunl
Der Befehl repair-database
löscht alle Protokolle, setzt alle statischen virtuellen IP-Adressen der Benutzer zurück und versetzt alle Server in den gestoppten Zustand.
Anmeldeinformationen zurücksetzen
Der folgende Befehl setzt den Benutzernamen und das Passwort des Administrators auf pritunl
zurück. Außerdem werden die Einstellungen für die einmalige Anmeldung und die zweistufige Authentifizierung des Administratorbenutzers entfernt, falls diese aktiviert sind.
$ sudo pritunl reset-password
Ändern des Ports der Webkonsole
Standardmäßig läuft Pritunl auf Port 443. Wenn du ihn ändern möchtest, verwende den folgenden Befehl.
$ sudo pritunl set app.server_port 8443
Pritunl führt einen Webserver auf Port 80 für die Let’s Encrypt-Verifizierung aus und leitet HTTP-Anfragen auf HTTPS um. Du kannst die Umleitung mit folgendem Befehl deaktivieren. Dadurch wird auch die Verwendung von Let’s Encrypt-Zertifikaten verhindert.
$ sudo pritunl set app.redirect_server false
Fazit
Damit ist unser Tutorium zur Einrichtung und Nutzung des Pritunl VPN-Servers auf einem Rocky Linux 8 Server abgeschlossen. Wenn du mehr über Pritunl erfahren möchtest, kannst du der offiziellen Dokumentation folgen. Wenn du Fragen hast, schreibe sie unten in die Kommentare.