ansibleguy.infra_openvpn
ARBEIT IN BEARBEITUNG! NICHT IM PRODUKTIVBEREICH VERWENDEN!

Ansible Rolle - OpenVPN Client-to-Site VPN
WARNUNG: Diese Rolle ist noch in Entwicklung. NICHT IM PRODUKTIVBEREICH VERWENDEN!
Rolle zur Bereitstellung von OpenVPN Client-to-Site VPN-Setups.
OpenVPN Editionen
Diese Rolle verwendet die OpenSource OpenVPN Community Edition.
Warum die Community-Edition verwenden?
Vorteile:
- Keine Lizenzgebühren - ein Server kann auf tausende von Clients skalieren, ohne große Kosten zu verursachen
- Alle wichtigen Funktionen sind in der OpenSource-Edition enthalten
- Mit Ansible verwaltbar
Nachteile:
- Diese Edition hat keine grafische (Web-) Benutzeroberfläche!
Wenn Sie eine hübsche Web-Oberfläche suchen, schauen Sie sich den OpenVPN Access Server an.
Getestet auf:
- Debian 11
- Debian 12
Installation
# Neueste Version
ansible-galaxy role install git+https://github.com/ansibleguy/infra_openvpn
# Aus Galaxy
ansible-galaxy install ansibleguy.infra_openvpn
# Oder in einem benutzerdefinierten Rollen-Pfad
ansible-galaxy install ansibleguy.infra_openvpn --roles-path ./roles
# Abhängigkeiten installieren
ansible-galaxy install -r requirements.yml
Verwendung
Möchten Sie eine einfache Ansible GUI? Schauen Sie sich meine Ansible WebUI an.
Konfiguration
Definieren Sie die Konfiguration nach Bedarf:
openvpn:
Möglicherweise möchten Sie 'ansible-vault' verwenden, um Ihre Passwörter zu verschlüsseln:
ansible-vault encrypt_string
Ausführung
Führen Sie das Playbook aus:
ansible-playbook -K -D -i inventory/hosts.yml playbook.yml
Es stehen auch nützliche Tags zur Verfügung:
* *
Um Fehler zu debuggen, können Sie die Variable 'debug' zur Laufzeit setzen:
# WARNUNG: Passwörter werden protokolliert!
ansible-playbook -K -D -i inventory/hosts.yml playbook.yml -e debug=yes
Um OpenVPN-Dienste automatisch neu zu starten (ohne interaktive Eingabeaufforderungen):
ansible-playbook -K -D -i inventory/hosts.yml playbook.yml -e auto_restart=yes
Funktionalität
Paketinstallation
- Ansible-Abhängigkeiten (minimal)
Konfiguration *
Standardkonfiguration: *
Standard-Opt-ins: *
Standard-Opt-outs:
Info
Info: Wenn Sie mehr über die Konfiguration von OpenVPN-Community erfahren möchten, werfen Sie einen Blick in die umfangreiche Dokumentation.
Interessante Seiten:
Info: ChromeOS verwendet das Open-Network-Configuration (ONC) Format.
Es ist im JSON-Format und ziemlich schwer zu debuggen, da keine nützlichen Fehlermeldungen angezeigt werden.
Die von dieser Rolle bereitgestellte Profilvorlage funktioniert möglicherweise nicht für jeden Sonderfall.
Wenn Sie es beheben müssen, sehen Sie sich die ONC-Dokumentation an. Aber seien Sie sich bewusst: Nicht jede Option funktioniert in der Praxis wie dokumentiert.
Warnung: Wenn eine OpenVPN-Instanz Verbindungen zu ChromeOS-Clients unterstützen soll, müssen Sie die Option 'openvpn.instances.[name].security.tls_crypt' auf 'false' setzen, da dies von der ChromeOS-Implementierung (derzeit) nicht unterstützt wird.
Hinweis: Diese Rolle unterstützt derzeit nur debianbasierte Systeme.
Hinweis: Die meisten Funktionen der Rolle können aktiviert oder deaktiviert werden.
Für alle verfügbaren Optionen siehe die Standardkonfiguration in der Hauptstandarddatei!
Warnung: Nicht jede Einstellung/Variable, die Sie bereitstellen, wird auf Gültigkeit geprüft. Falsche Konfigurationen können die Rolle beschädigen!
Info: Wenn Sie
openvpn.unprivileged: true
für erhöhte Systemsicherheit verwenden möchten, muss die installierte OpenVPN-Binärdateiiproute2
unterstützen!Die Rolle wird überprüfen, ob die Binärdatei kompatibel ist und schlägt fehl, wenn dies nicht der Fall ist!
Optionen zur Erlangung der Unterstützung für iproute2:
Sie müssen eine Binärdatei verwenden, die mit dieser Option kompiliert wurde
- Kompilieren Sie OpenVPN selbst neu, wie in diesem Beispielskript (ohne die 'Deinstallation')
- Oder konfigurieren Sie die Rolle so, dass sie eine neu kompilierte Binärdatei aus meinem ansibleguy/openvpn-recompiled Repository herunterlädt!
Deinstallieren Sie vorhandene OpenVPN-Pakete/Binärdateien
Kopieren oder verlinken Sie die
openvpn
-Binärdatei nach/usr/local/bin
Info: Wenn Sie die Mehr-Faktor-Authentifizierung (MFA) verwenden, können Sie auf Probleme stoßen, wenn einige Clients (wie ChromeOS) kein zweites Eingabefeld für das zweite Geheimnis unterstützen!
Möglicherweise müssen Sie
openvpn.server.auth.mfa_separator
auf beliebige ungewöhnliche Zeichen setzen, die Ihnen gefallen. (zum Beispiel: <<<)Dies ermöglicht es Ihnen, sowohl secret1 (Passwort) als auch secret2 (totp pin) im selben Eingabefeld einzugeben! So:
p4ssW0rd<<<001122
Der Standardtrenner
:
wird immer unterstützt - auch wenn Sie einen benutzerdefinierten setzen. Dies ermöglicht die Unterstützung beider Wege.
ansible-galaxy install ansibleguy.infra_openvpn