gavika.openvpn
gavika.openvpn
Installieren und konfigurieren Sie OpenVPN. Erstellen und verwalten Sie Ihren eigenen OpenVPN-Server.
https://www.techchorus.net/blog/run-your-own-openvpn-server/
Siehe auch das Verzeichnis examples
.
Anforderungen
Die Rolle sollte zusammen mit gavika.easy_rsa
verwendet werden.
Rollenvariablen
Variable | Standardwert | Beschreibung | Erforderlich? |
---|---|---|---|
easy_rsa_local_pool_directory | /tmp/ca_openvpn_pool | Das Verzeichnis zur temporären Speicherung von Zertifikatsanforderungen, Zertifikaten usw. | Ja |
openvpn_client_users | [] | Liste der OpenVPN-Benutzernamen. Es wird empfohlen, nur alphanumerische Zeichen zu verwenden. | Nein |
openvpn_port | 1194 | Der Port, auf dem der OpenVPN-Server läuft | Ja |
openvpn_protocol | Standard: udp Auswahl: tcp oder udp | Das zu verwendende Netzwerkprotokoll | Ja |
openvpn_server_ip_address | Die IP-Adresse des OpenVPN-Servers | Der Wert, der in den generierten Client-Zertifikaten verwendet wird | Ja |
openvpn_generated_configurations_local_pool | false. Boolean. | Ob die generierten Client-Konfigurationen in das lokale Verzeichnis kopiert werden sollen (Die Steuerungsmaschine, auf der das Ansible-Spielbuch ausgeführt wird.) | Ja |
openvpn_route_all_traffic | True. Boolean. | Leiten Sie gesamten Internetverkehr über den OpenVPN-Server | Ja |
openvpn_use_opendns_public_dns | True. Boolean. | OpenDNS-DNS-Server an die Clients weitergeben | Ja |
openvpn_additional_configs | [] | Zusätzliche OpenVPN-Serverkonfiguration. Liste von Dictionaries. Jeder Listeneintrag ist ein Paar aus Schlüssel und Wert. Beispiel openvpn_additional_configs: - push: "topology subnet" - push: "route 192.168.4.5 255.255.255.255" |
Ja |
openvpn_default_firewalld_zone | public | Der Zonenname, der in der Firewalld-Konfiguration verwendet wird. Relevant nur für EL | Ja |
Um einen CA-Server und einen OpenVPN-Server mit gavika.easy_rsa
und gavika.openvpn
aufzubauen, müssen Sie die Rollen je nach Bedarf mehrmals ausführen. Sie sind verantwortlich für die Ausführung der Rollen in der erforderlichen Anzahl und Reihenfolge. Beispiele finden Sie in der Dokumentation. In der Regel müssen Sie open-vpn-playbook.yml
zweimal und easy-rsa-playbook.yml
einmal ausführen.
Ausführungsfluss des Playbooks:
Vollständige Flussdiagramm
Hier ein Beispiel zum Ausführen der Playbooks:
# openvpn: lokale Poolverzeichnisse einrichten, OpenVPN installieren, Serveranforderung erstellen,
# Clientanforderungen erstellen
ansible-playbook -i my-inventory.yml openvpn-playbook.yml
# easy_rsa: CA-Server erstellen, Anforderungen importieren und signieren, CA-Zertifikate abrufen
ansible-playbook -i my-inventory.yml easy-rsa-playbook.yml
# openvpn: signierte Anforderungen verwenden, OpenVPN einrichten, Client-Konfigurationen generieren
ansible-playbook -i my-inventory.yml openvpn-playbook.yml
Abhängigkeiten
Die Rolle gavika.openvpn
hängt von gavika.easy_rsa
ab.
Die folgenden Sammlungen sind erforderlich:
community.aws
Die Python-Bibliothek boto3
ist erforderlich.
Die Rolle gavika.openvpn
sollte zusammen mit gavika.easy_rsa
verwendet werden.
Beispiel-Playbook zum Einrichten des CA-Servers: easy-rsa-playbook.yml
---
- hosts: ca_server
become: true
vars:
easy_rsa_req_country: "IN"
easy_rsa_req_province: "KA"
easy_rsa_req_city: "Banglore"
easy_rsa_req_org: "Gavika"
easy_rsa_req_email: "[email protected]"
easy_rsa_req_ou: "Gavika"
easy_rsa_local_pool_directory: /tmp/ca_openvpn_pool # Kein abschließender /
easy_rsa_server_request_to_import: "server.req"
easy_rsa_ca_server_mode: true
roles:
- role: gavika.easy_rsa
Beispiel-Playbook zur Installation des OpenVPN-Servers: openvpn-playbook.yml
---
- hosts: openvpn_server
become: true
vars:
openvpn_client_users:
- janedoe
- johndoe
easy_rsa_req_country: "IN"
easy_rsa_req_province: "KA"
easy_rsa_req_city: "Bangalore"
easy_rsa_req_org: "Meine Organisation"
easy_rsa_req_email: "[email protected]"
easy_rsa_req_ou: "Meine Organisationseinheit"
roles:
- role: gavika.easy_rsa
- role: gavika.openvpn
Beispielinventar: my-inventory
:
all:
hosts:
placeholder
children:
ca_server:
hosts:
dev-ca-01.example.com:
ansible_become: true
ansible_user: ubuntu
ansible_host: 192.168.3.5
easy_rsa_ca_server_mode: true
ansible_python_interpreter: /usr/bin/python3
openvpn_server:
hosts:
dev-vpn-01.example.com:
ansible_python_interpreter: /usr/bin/python3
ansible_become: true
ansible_user: ubuntu
ansible_host: 192.168.3.6
openvpn_server_ip_address: 192.168.3.6
Lizenz
Apache-Lizenz, Version 2.0
Autoreninformationen
Sudheera Satyanarayana
Gavika: https://www.gavika.com
Twitter: https://www.twitter.com/bngsudheer
Github: https://github.com/bngsudheer
Role to install and configure OpenVPN server and generate client configurations
ansible-galaxy install gavika.openvpn