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 :
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
Gavika : https://www.gavika.com
Blog : https://www.techchorus.net
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