Pritunl ist ein Open-Source-VPN- und IPsec-Server mit Benutzerverwaltung und horizontaler Skalierung für kleine und große Organisationen. Es gibt dem Benutzer die Wahl, OpenVPN- und Wireguard-Protokolle zu verwenden. Es 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 Clients und dem Server wird verschlüsselt. Pritunl basiert auf MongoDB, einer zuverlässigen und skalierbaren Datenbank, die schnell bereitgestellt werden kann und über eine integrierte Unterstützung für die Replikation verfügt, wodurch die Bereitstellung des Pritunl-Clusters einfach wird.
In diesem Tutorial erfahren Sie, wie Sie den Pritunl VPN-Server auf Rocky Linux 8 installieren. Wir werden auch untersuchen, wie Sie mit einem Linux-Client eine Verbindung zum VPN herstellen.
Voraussetzungen
-
Ein System mit Rocky Linux 8 zum Hosten des Pritunl-Servers.
-
Ein Nicht-Root-Benutzer mit sudo-Berechtigungen.
-
Ein Domänenname, der auf den Server verweist.
-
Ein System, auf dem Rocky Linux 8 als Client ausgeführt wird.
-
Stellen Sie sicher, dass alles aktualisiert ist.
$ sudo dnf update
-
Installieren Sie alle Voraussetzungen.
$ sudo dnf install nano
Schritt 1 – Firewall konfigurieren
Rocky Linux verwendet Firewalld Firewall. Überprüfen Sie den Status der Firewall.
$ sudo firewall-cmd --state running
Dies zeigt an, dass es erfolgreich ausgeführt wird.
Die Firewall arbeitet mit verschiedenen Zonen und die öffentliche Zone ist die Standardzone, die wir verwenden werden. Listet alle Dienste und Ports auf, die auf der Firewall aktiv sind.
$ sudo firewall-cmd --permanent --list-services
Es sollte die folgende Ausgabe zeigen.
dhcpv6-client mdns ssh
HTTP- und HTTPS-Ports zulassen.
$ sudo firewall-cmd --permanent --add-service=http $ sudo firewall-cmd --permanent --add-service=https
Überprüfen Sie den Status der Firewall erneut.
$ sudo firewall-cmd --permanent --list-all
Sie sollten 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:
Laden Sie die Firewall neu, um die Änderungen zu aktivieren.
$ sudo firewall-cmd --reload
Schritt 2 – MongoDB installieren
Pritunl basiert auf der MongoDB-Datenbank, also müssen wir diese zuerst installieren. Rocky Linux wird nicht mit MongoDB ausgeliefert, daher müssen wir das offizielle Repository von MongoDB verwenden.
Hinweis: MongoDB 5.0 funktioniert nur auf neueren Prozessoren. Wenn Ihr Server auf älterer Hardware läuft, sollten Sie sich für eine ältere Version von MongoDB entscheiden oder auf einen neueren Server wechseln.
Erstellen und öffnen Sie 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ügen Sie den folgenden Code 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
Speichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie dazu aufgefordert werden, sobald Sie fertig sind.
Installieren Sie MongoDB.
$ sudo dnf install mongodb-org
Aktivieren und starten Sie 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. Erstellen und öffnen Sie die Datei /etc/yum.repos.d/pritunl.repo
zum Bearbeiten.
$ sudo nano /etc/yum.repos.d/pritunl.repo
Fügen Sie den folgenden Code ein.
[pritunl] name=Pritunl Repository baseurl=https://repo.pritunl.com/stable/yum/centos/8/ gpgcheck=1 enabled=1
Speichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie dazu aufgefordert werden, sobald Sie fertig sind.
Installieren Sie zuerst das Epel-Repository, das von Pritunl benötigt wird.
$ sudo dnf install epel-release
Fügen Sie die für Pritunl benötigten GPG-Schlüssel hinzu und importieren Sie 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
Installieren Sie Pritunl.
$ sudo dnf install pritunl
Überprüfen Sie die Pritunl-Version.
$ pritunl version pritunl v1.30.2960.4
Aktivieren und starten Sie den Pritunl-Dienst.
$ sudo systemctl enable pritunl --now
Limit für offene Dateien erhöhen
Führen Sie die folgenden Befehle aus, um das Limit für offene Dateien auf dem Server zu erhöhen. Dadurch werden Verbindungsprobleme bei hoher Auslastung vermieden. Wenn Sie MongoDB auf einem separaten Server installiert haben, müssen Sie 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 – Zugriff auf und Konfiguration von Pritunl
Sie können Pritunl starten, indem Sie http://<serverIP>/
eingeben in Ihrem Browser. Moderne Browser versuchen, auf die HTTPS-Version jeder Website zuzugreifen, daher müssen Sie den vom Browser ausgegebenen Datenschutzfehler umgehen.
Sie erhalten den folgenden Bildschirm, wenn Sie die URL zum ersten Mal starten.
Der MongoDB-URI wird automatisch abgerufen. Führen Sie für den Setup-Schlüssel den folgenden Befehl aus.
$ sudo pritunl setup-key eacbd641982048fd9a60cdf09f7ebaa3
Geben Sie den generierten Schlüssel auf der Website ein und klicken Sie auf Speichern Taste. Es aktualisiert die Datenbank und öffnet den Anmeldebildschirm.
Führen Sie 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"
Geben Sie die Anmeldeinformationen ein und melden Sie sich an. Sie erhalten den folgenden Einrichtungsbildschirm.
Geben Sie ein sicheres Passwort ein, um das Standardpasswort zu ersetzen. Geben Sie eine Domain unter Lets Encrypt Domain ein Feld. Pritunl generiert und richtet automatisch ein SSL-Zertifikat für die Domain ein.
Sie können den Server jetzt mit dem Domänennamen starten, indem Sie https://pritunl.example.com
eingeben in Ihrem Browser.
Schritt 5 – Organisation, Server und Benutzer hinzufügen
Der nächste Schritt besteht darin, eine Organisation für Ihr VPN hinzuzufügen. Klicken Sie auf Benutzer und klicken Sie auf Organisation hinzufügen Schaltfläche.
Klicken Sie auf Hinzufügen Schaltfläche, um fortzufahren.
Der nächste Schritt besteht darin, einen Benutzer hinzuzufügen. Es gibt zwei Möglichkeiten. Sie können Benutzer entweder einzeln oder in großen Mengen hinzufügen. Wir werden vorerst einen einzelnen Benutzer hinzufügen. Klicken Sie auf Benutzer hinzufügen Schaltfläche.
Das PIN-Feld ist optional und wird verwendet, wenn Sie die Zwei-Faktor-Authentifizierung verwenden möchten. Die PIN besteht nur aus Zahlen.
Nachdem die Organisation und die Benutzer festgelegt wurden, gehen Sie zu den Servern und klicken Sie auf Server hinzufügen Schaltfläche.
Hafen :Sie können jeden Port hinzufügen, den der Server verwendet. Stellen Sie sicher, dass der angegebene Port für den gesamten eingehenden Datenverkehr in der Sicherheitsgruppe geöffnet ist.
DNS: Sie können entweder Google DNS oder OpenDNS hinzufügen.
Virtuelles Netzwerk: Sie können in diesem Feld eine private IP-Adresse hinzufügen, aber stellen Sie sicher, dass keine andere Ressource diese verwendet. Clients werden IP-Adressen aus diesem Bereich zugewiesen.
Virtuelles WG-Netzwerk: WireGuard-Netzwerkadressen für das private Netzwerk, die WireGuard-Clients zugewiesen werden. Es sollte denselben CIDR-Block wie das virtuelle Netzwerk haben.
WireGuard aktivieren: Wenn diese Option aktiviert ist, wird WireGuard anstelle von OpenVPN verwendet. Wir werden jedoch OpenVPN für unser Tutorial verwenden, also lassen Sie es deaktiviert.
WG-Port: Dieser Port wird für die WireGuard-Verbindungen verwendet. Es darf nur verwendet werden, wenn wir die WireGuard-Option aktiviert haben.
Google Authenticator aktivieren: Aktivieren Sie diese Option, um die Bestätigung in zwei Schritten zu verwenden. Wenn diese Option auf dem Server aktiviert ist, müssen alle Clients unter diesem Server das OTP überprüfen, bevor sie sich jedes Mal mit dem VPN verbinden.
IPv6 aktivieren :Aktiviert IPv6-DNS-Server. Clients erhalten private IPv6-Adressen.
Klicken Sie auf Hinzufügen Schaltfläche zum Beenden.
Klicken Sie auf Organisation hinzufügen Schaltfläche, um die Organisation mit dem neu erstellten Server zu verknüpfen.
Klicken Sie auf Server starten Schaltfläche, um das VPN zu starten.
Port in Firewall aktivieren
Um die Verbindungen vom Client über den VPN-Port zu akzeptieren, müssen wir ihn durch unsere Firewall aktivieren.
$ sudo firewall-cmd --permanent --add-port=18412/udp $ sudo firewall-cmd --reload
Schritt 6 – Pritunl Client installieren
Jetzt, da unser Server betriebsbereit ist, ist es an der Zeit, einen Client zu installieren und eine Verbindung zum VPN herzustellen. Pritunl bietet zwei Arten von Clients an - einen Befehlszeilen- und einen GUI-Client.
Für unser Tutorial verwenden wir den Befehlszeilen-Client. Sie können nur einen Client-Typ auf einem System installieren.
Installieren Sie das vom Pritunl-Client benötigte EPEL-Repository.
$ sudo dnf install epel-release
Fügen Sie das offizielle Pritunl-Repository zu Ihrem 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
GPG-Schlüssel hinzufügen und importieren.
$ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 7568D9BB55FF9E5287D586017AE645C0CF8E292A $ gpg --armor --export 7568D9BB55FF9E5287D586017AE645C0CF8E292A > key.tmp; sudo rpm --import key.tmp; rm -f key.tmp
Installieren Sie den Befehlszeilen-Client.
$ sudo dnf install pritunl-client
Schritt 7 – Verbindung vom Client zum Server
Rufen Sie auf der Benutzerregisterkarte der Pritunl-Serverseite den temporären Profillink ab, um sich mit dem Client zu verbinden.
Kopieren Sie den temporären URI-Link aus dem letzten Eintrag.
Geben Sie den folgenden Befehl auf dem Client-Terminal ein, um das Profil hinzuzufügen.
$ pritunl-client add pritunl://example.com/ku/2hd6S6Ug
Stellen Sie sicher, dass Sie den zuvor kopierten Profillink nach add
hinzufügen im Befehl.
Überprüfen Sie die Liste der hinzugefügten Profile.
$ pritunl-client list +----------------------------------+-------------------------+--------------+----------------+----------------+ | ID | NAME | ONLINE FOR | SERVER ADDRESS | CLIENT ADDRESS | +----------------------------------+-------------------------+--------------+----------------+----------------+ | wkinhnnjyz3ybektjbavy8qpecafqp1e | hforgeuser (howtoforge) | Disconnected | - | - | +----------------------------------+-------------------------+--------------+----------------+----------------+
Führen Sie den folgenden Befehl aus, um eine Verbindung mit dem Profil herzustellen. Sie müssen nicht die vollständige Profil-ID im Befehl verwenden. Verwenden Sie einfach die ersten 3 Buchstaben der Profil-ID, um darauf zu verweisen.
$ pritunl-client start wki --mode=ovpn --password=PINOTP
- Um den OPVN-Modus anzugeben, fügen Sie das Flag
--mode=ovpn
hinzu im Befehl. - Wenn Sie die Google Authenticator-Option aktiviert haben, müssen Sie sie mit einem Google Authenticator- oder Authy-Client konfigurieren.
- Um die PIN und den Zwei-Faktor-Authentifizierungscode anzugeben, verwenden Sie das Flag
--password=PINOTP
im Befehl. Wenn die PIN beispielsweise 54321 und der OTP-Code 456789 lautet, verwenden Sie das Flag--password=54321456789
im obigen Befehl. Wenn Sie nur PIN verwenden, verwenden Sie das Flag--password=PIN
.
Führen Sie die list
aus Befehl erneut, um zu prü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 |
+----------------------------------+-------------------------+------------+----------------+----------------+
Sie haben erfolgreich eine Verbindung zum Pritunl VPN hergestellt.
Pritunl-Befehlszeile
Der Pritunl-Server wird mit einem Befehlszeilentool geliefert, mit dem Sie einige grundlegende Operationen ausführen können.
Datenbank reparieren
Sie können Pritunl verwenden, um die Datenbank zu reparieren und die Wiederherstellung einer beschädigten oder inkonsistenten Datenbank zu ermöglichen.
Stoppen Sie zuerst den Pritunl-Server.
$ sudo systemctl stop pritunl
Datenbank reparieren.
$ sudo pritunl repair-database
Starten Sie den Pritunl-Dienst neu.
$ sudo systemctl start pritunl
Die repair-database
Der Befehl löscht alle Protokolle, setzt alle statischen virtuellen IP-Adressen der Benutzer zurück und versetzt alle Server in den angehaltenen Zustand.
Anmeldeinformationen zurücksetzen
Der folgende Befehl setzt den Benutzernamen und das Passwort des Administrators zurück auf pritunl
. Außerdem werden alle Single-Sign-On- und zweistufigen Authentifizierungseinstellungen für den Administratorbenutzer entfernt, falls aktiviert.
$ sudo pritunl reset-password
Port der Webkonsole ändern
Standardmäßig läuft Pritunl auf Port 443. Wenn Sie ihn ändern möchten, verwenden Sie den folgenden Befehl.
$ sudo pritunl set app.server_port 8443
Pritunl betreibt einen Webserver auf Port 80 für die Verifizierung durch Let’s Encrypt und leitet HTTP-Anfragen an HTTPS weiter. Sie können die Umleitung mit dem folgenden Befehl deaktivieren. Dadurch wird auch die Verwendung von Let's Encrypt-Zertifikaten verhindert.
$ sudo pritunl set app.redirect_server false
Schlussfolgerung
Damit ist unser Tutorial zum Einrichten und Verwenden des Pritunl-VPN-Servers auf einem Rocky Linux 8-Server abgeschlossen. Wenn Sie mehr über Pritunl erfahren möchten, können Sie der offiziellen Dokumentation folgen. Wenn Sie Fragen haben, posten Sie diese in den Kommentaren unten.