gavika.openvpn

gavika.openvpn

Installez et configurez OpenVPN. Créez et gérez votre propre serveur OpenVPN.

https://www.techchorus.net/blog/run-your-own-openvpn-server/

Consultez également le répertoire examples.

Exigences

Le rôle doit être utilisé avec gavika.easy_rsa.

Variables de rôle

Variable Valeur par défaut Description Obligatoire ?
easy_rsa_local_pool_directory /tmp/ca_openvpn_pool Le répertoire utilisé comme emplacement temporaire pour stocker les demandes de certificats, certificats, etc. Oui
openvpn_client_users [] Liste des noms d'utilisateur des clients OpenVPN. Il est recommandé d'utiliser uniquement des caractères alphanumériques. Non
openvpn_port 1194 Le port sur lequel le serveur OpenVPN fonctionne Oui
openvpn_protocol Par défaut : udp Choix : tcp ou udp Le protocole réseau à utiliser Oui
openvpn_server_ip_address L'adresse IP du serveur OpenVPN La valeur utilisée dans les certificats de client générés Oui
openvpn_generated_configurations_local_pool false. Booléen. Indique si les configurations de clients générées doivent être copiées dans le répertoire local (la machine contrôleur sur laquelle le playbook Ansible est exécuté). Oui
openvpn_route_all_traffic True. Booléen. Acheminer tout le trafic internet via le serveur OpenVPN Oui
openvpn_use_opendns_public_dns True. Booléen. Envoyer les serveurs DNS OpenDNS aux clients Oui
openvpn_additional_configs [] Configurations supplémentaires pour le serveur OpenVPN. Liste de dictionnaires. Chaque élément de la liste est une paire clé, valeur. Exemple
openvpn_additional_configs:
- push: "topology subnet"
- push: "route 192.168.4.5 255.255.255.255"
Oui
openvpn_default_firewalld_zone public Le nom de la zone à utiliser dans la configuration de Firewalld. Pertinent uniquement pour EL Oui

Pour créer un serveur CA et un serveur OpenVPN en utilisant gavika.easy_rsa et gavika.openvpn, vous devez exécuter les rôles plusieurs fois selon vos besoins. Vous êtes responsable d'exécuter les rôles le nombre de fois requis et dans l'ordre nécessaire. Des exemples sont fournis dans la documentation. En général, vous devrez exécuter open-vpn-playbook.yml deux fois et easy-rsa-playbook.yml une fois.

Flux d'exécution du playbook : Flux d'exécution du playbook Diagramme en taille réelle

Voici un exemple d'exécution des playbooks :

# openvpn : configurer les répertoires de pool locaux, installer openvpn, créer une demande de serveur,
# créer des demandes de clients
ansible-playbook -i my-inventory.yml openvpn-playbook.yml
# easy_rsa : construire le serveur CA, importer et signer des demandes, récupérer des certificats CA
ansible-playbook -i my-inventory.yml easy-rsa-playbook.yml
# openvpn : utiliser des demandes signées, configurer openvpn, générer des configurations de clients
ansible-playbook -i my-inventory.yml openvpn-playbook.yml

Dépendances

Le rôle gavika.openvpn dépend de gavika.easy_rsa.

Les collections suivantes sont requises :

  • community.aws

La bibliothèque Python boto3 est requise.

Le rôle gavika.openvpn doit être utilisé avec gavika.easy_rsa.

Exemple de playbook pour configurer le serveur CA : easy-rsa-playbook.yml

---
- hosts: ca_server
  become: true
  vars:
    easy_rsa_req_country: "IN"
    easy_rsa_req_province: "KA"
    easy_rsa_req_city: "Bangalore"
    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 # Pas de barre oblique à la fin /
    easy_rsa_server_request_to_import: "server.req"
    easy_rsa_ca_server_mode: true
  roles:
    - role: gavika.easy_rsa

Exemple de playbook pour installer le serveur OpenVPN : 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: "Mon Organisation"
    easy_rsa_req_email: "[email protected]"
    easy_rsa_req_ou: "Mon Unité d'Organisation"
  roles:
    - role: gavika.easy_rsa
    - role: gavika.openvpn

Exemple d'inventaire : 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

Licence

Licence Apache, Version 2.0

Informations sur l'auteur

Sudheera Satyanarayana

À propos du projet

Role to install and configure OpenVPN server and generate client configurations

Installer
ansible-galaxy install gavika.openvpn
Licence
other
Téléchargements
278