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

  1. Ein System mit Rocky Linux 8, auf dem der Pritunl Server läuft.
  2. Ein Nicht-Root-Benutzer mit sudo-Rechten.
  3. Ein Domainname, der auf den Server zeigt.
  4. Ein System, auf dem Rocky Linux 8 als Client läuft.
  5. Stelle sicher, dass alles auf dem neuesten Stand ist.
    $ sudo dnf update
    
  6. 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.

Pritunl Datenbank Setup Bildschirm

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.

Pritunl Login Screen

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.

Bildschirm für die Ersteinrichtung von Pritunl

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.

Pritunl Users TAB

Pritunl 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.

Pritunl Add User

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.

Pritunl Add Server

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.

Organisation anhängen

Klicke auf die Schaltfläche Server starten, um das VPN zu starten.

Pritunl Start Server

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.

Pritunl Get Profile Link Button

Kopiere den temporären URI-Link aus dem letzten Eintrag.

Pritunl Temporary Profile Link Copy

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.

Das könnte dich auch interessieren …