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: Fluss des Playbook 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

Über das Projekt

Role to install and configure OpenVPN server and generate client configurations

Installieren
ansible-galaxy install gavika.openvpn
GitHub Repository
Lizenz
other
Downloads
278