danielcrisap.ansible_pritunl_vpn
Ansible-Rolle für Pritunl VPN
Diese Rolle installiert Pritunl VPN.
**
Was ist Pritunl
Pritunl ist ein Open-Source-VPN-Server und ein Verwaltungspanel. Es bietet dem Benutzer die Vorteile des OpenVPN-Protokolls und verwendet eine intuitive Weboberfläche.
Anforderungen
Neue Anforderungen hinzufügen
Diese Anwendung muss auf einem Linux-Server laufen, der unter CentOS, Amazon Linux, Debian oder Ubuntu betrieben werden kann.
Pritunl verwendet MongoDB als Datenbank, daher solltest du einen MongoDB-Server haben.
Datenbankeinrichtung
Wenn Pritunl zum ersten Mal gestartet wird, wird ein Datenbankeinrichtungs-Prompt auf dem Webserver angezeigt, der auf Port 443 läuft. Der Einrichtungsprompt fordert einen Einrichtungsschlüssel und die MongoDB-URI an. Um den Einrichtungsschlüssel zu erhalten, meldest du dich per SSH auf dem Server an und führst den Befehl sudo pritunl setup-key
aus. Damit wird der Einrichtungsschlüssel zurückgegeben. Standardmäßig wird die MongoDB-URI mit der URI für den lokalen MongoDB-Server ausgefüllt. Dies sollte so belassen werden, wenn der MongoDB-Server auf demselben Server wie die Pritunl-Instanz läuft. Für Unternehmenscluster verwende die MongoDB-Dokumentation für Verbindungszeichenfolge URI-Format. Alternativ kann dies direkt in der Datei /etc/pritunl.conf
oder über den CLI-Befehl gesetzt werden. Weitere Informationen zu dem CLI-Befehl findest du im Abschnitt Befehle. Einige MongoDB-Server authentifizieren sich mit der Admin-Datenbank und erfordern, dass die Option authSource=admin
in der URI enthalten ist.
Über Abonnements
Abonnements können auf der Homepage oder über die Webkonsole eines laufenden Pritunl-Servers erworben werden. Die Kreditkarteninformationen werden sicher direkt vom Webbrowser an Stripe gesendet und niemals auf anderen Servern gespeichert oder übertragen. Ein Pritunl-Server kann jederzeit aktualisiert werden und muss bei einem Upgrade auf ein Abonnement nicht neu konfiguriert werden.
Lizenzschlüssel
Nach dem Erstellen eines Abonnements wird ein Lizenzschlüssel an die E-Mail-Adresse gesendet, die während der Bestellung verwendet wurde. Der Lizenzschlüssel muss nicht auf demselben Server verwendet werden, der für die Erstellung des Abonnements verwendet wurde. Premium-Abonnements können nur auf einem Server verwendet werden und Unternehmenslizenzen können nur für einen Cluster verwendet werden. Ein Cluster ist eine Gruppe von Pritunl-Servern, die mit der gleichen MongoDB-Datenbank verbunden sind. Um Tests zu ermöglichen, können die Lizenzschlüssel mehrfach verwendet werden, aber die fortgesetzte Nutzung der Lizenzschlüssel auf mehreren Servern führt zur Kündigung des Abonnements.
Rechnung und Langzeit-Abonnements
Einige Unternehmen benötigen vollständige Rechnungen und jährliche Abonnements. Dies ist nur bei Unternehmensabonnements verfügbar, und es gibt keinen Rabatt für jährliche Abonnements. Um eine jährliche Rechnung für ein Unternehmensabonnement anzufordern, sende die Rechnungsinformationen an contact@pritunl.com und füge eine E-Mail-Adresse hinzu, um die Rechnung zu erhalten, sowie eine E-Mail-Adresse, um den Lizenzschlüssel zu erhalten.
Bildungsrabatt
Es gibt einen Rabatt von 50 % für öffentliche Schulen. Dieser kann auf ein bestehendes monatliches Abonnement oder auf ein jährliches Abonnement angewendet werden. Um einen Rabatt auf monatliche Abonnements zu erhalten, starte zunächst eine Testversion und sende die E-Mail-Adresse, die zur Erstellung des Abonnements verwendet wurde, an contact@pritunl.com. Für ein Jahresabonnement folgen die obigen Anweisungen.
**
AUTHENTIFIZIERUNG
**
WireGuard verwendet in Pritunl Schlüssel, die bereits im Client-Profil vorhanden sind, für die Authentifizierung. Dies ermöglicht den Übergang zu WireGuard ohne, dass die Benutzer ihr Profil erneut importieren müssen. Viele Administratoren konfigurieren kein gültiges HTTPS-Zertifikat, und es ist nicht erforderlich, sich auf HTTPS zu verlassen, um eine sichere Authentifizierung zu gewährleisten. Die Authentifizierung erfolgt mit drei Schlüsseln, die mehrere Ebenen von Verschlüsselung und Autorisierung bieten.
Client SHA512-HMAC Schlüssel (Autorisierung)
Der Client verwendet einen SHA512-HMAC-Geheimnisschlüssel, um jede Verbindungsanfrage zu signieren. Der Server verwendet ebenfalls dieses Geheimnis, um die Antwort zu signieren, sodass der Client die Verbindungsantwort verifizieren kann. Dies ist dasselbe Authentifizierungssystem, das verwendet wird, um die Synchronisierung der Client-Konfiguration zu autorisieren, die Änderungen der Profilkonfiguration wie Hostadressen und Serverportänderungen synchronisiert (private Schlüssel werden niemals synchronisiert).Client/Server NaCl Asymmetrischer Schlüssel (Autorisierung + Verschlüsselung)
Der Client nutzt einen NaCl öffentlichen Schlüssel für den Server, der im Client-Profil enthalten ist. Dies bietet eine asymmetrische Verschlüsselung der Verbindungsanfrage vom Client zum Server. Der Server verschlüsselt die Antwort mit dem öffentlichen Schlüssel des Clients, was die Verschlüsselung der Antwort gewährleistet. Der Client überprüft auch die Serverantwort mit dem Server- NaCl öffentlichen Schlüssel. Dies ist dasselbe Authentifizierungssystem, das verwendet wird, um die zusätzliche Verschlüsselungs- und Autorisierungsebene in OpenVPN Verbindungen mit Passwörtern und Zwei-Faktor-Codes bereitzustellen.Client RSA-4096 Asymmetrischer Schlüssel (Autorisierung)
Das RSA-Zertifikat und der Schlüssel des Clients werden verwendet, um jede Verbindungsanfrage zu signieren. Der Server verwendet dies, um die Verbindungsanfrage des Clients zu überprüfen. Dies ist dasselbe Zertifikat, das zur Verifizierung von OpenVPN Verbindungen verwendet wird.
Jede WireGuard Verbindung verwendet einen neuen WireGuard Schlüssel. Dies dient dazu, das höchste Maß an Sicherheit zu gewährleisten, kann jedoch die Netzwerkverbindung verzögern, wenn der Benutzer zu einem Computer zurückkehrt, der im Energiesparmodus war. Der WireGuard private Schlüssel wird im Speicher des Hintergrunddienstes des Pritunl-Clients und auch in der WireGuard Konfigurationsdatei gespeichert. WireGuard verwendet ein verbindungsloses Design, sodass dieser private Schlüssel von einem Angreifer verwendet werden könnte, um die Verbindung zu übernehmen, selbst wenn eine Multi-Faktor-Authentifizierung verwendet wird. In hochsicheren Umgebungen ist es wichtig zu beachten, dass OpenVPN Verbindungen mit Multi-Faktor-Authentifizierung diese Schwächen nicht aufweisen. Aus diesem Grund wird der Server schnell die WireGuard Schlüssel von inaktiven Clients widerrufen, um die Möglichkeit dieser Übernahme zu minimieren. Der Server validiert auch, dass Schlüssel nicht wiederverwendet werden.
Sobald der Client verbunden ist, sendet er alle 10 Sekunden eine Ping-Anfrage an den Server. Diese Anfrage ermöglicht es dem Client, schnell einen Ausfall zu erkennen und innerhalb von etwa 13 Sekunden einen Failover durchzuführen. Wenn der Server innerhalb von 6 Minuten keine Ping-Anfrage erhält, wird der Benutzer getrennt und der öffentliche Schlüssel widerrufen.
Rollenvariablen
pritunl_mongodb_uri: 'mongodb://localhost:27017/pritunl?authSource=admin&ssl=true'
pritunl_mongodb_uri
MongoDB URI für die Verbindung von Pritunl zur Datenbank.
Beispiel-Playbook
Ein Beispiel, wie du deine Rolle verwenden kannst (zum Beispiel mit übergebenen Variablen), ist ebenfalls für die Benutzer hilfreich:
- hosts: servers
vars:
pritunl_mongodb_uri: 'mongodb://localhost:27017/pritunl?authSource=admin&ssl=true'
roles:
- { role: danielcrisap.ansible-pritunl-vpn }
Lizenz
MIT ©
Autoreninformation
Diese Sammlung wurde 2020 von Daniel Cristian erstellt.
ansible-galaxy install danielcrisap.ansible_pritunl_vpn