ansibleguy.infra_openvpn
TRAVAIL EN COURS ! À NE PAS UTILISER EN PRODUCTION !
 
Rôle Ansible - VPN Client-à-Site OpenVPN
AVERTISSEMENT : Ce rôle est encore en développement. NE PAS ESSAYER D'UTILISER EN PRODUCTION !
Rôle pour déployer des configurations VPN Client-à-Site OpenVPN.
Éditions OpenVPN
Ce rôle utilise l'édition OpenSource de OpenVPN Community.
Pourquoi utiliser l'édition communautaire ?
- Avantages : - Pas de frais de licence - un serveur peut prendre en charge des milliers de clients sans coûts majeurs
- Toutes les principales fonctionnalités sont disponibles dans l'édition open-source
- Gérable avec Ansible
 
- Inconvénients : - Cette édition n'a pas d'interface utilisateur graphique (web) ! - Si vous recherchez une belle interface web, jetez un œil à OpenVPN Access Server 
 
Testé :
- Debian 11
- Debian 12
Installation
# dernière version
ansible-galaxy role install git+https://github.com/ansibleguy/infra_openvpn
# depuis galaxy
ansible-galaxy install ansibleguy.infra_openvpn
# ou vers un chemin de rôle personnalisé
ansible-galaxy install ansibleguy.infra_openvpn --roles-path ./roles
# installer les dépendances
ansible-galaxy install -r requirements.yml
Utilisation
Vous voulez une interface graphique Ansible simple ? Découvrez ma WebUI Ansible
Configuration
Définissez la configuration comme nécessaire :
openvpn:
Vous pouvez utiliser 'ansible-vault' pour chiffrer vos mots de passe :
ansible-vault encrypt_string
Exécution
Exécutez le playbook :
ansible-playbook -K -D -i inventory/hosts.yml playbook.yml
Il existe également quelques tags utiles disponibles :
*
Pour déboguer les erreurs, vous pouvez définir la variable 'debug' à l'exécution :
# AVERTISSEMENT : Cela va consigner les mots de passe !
ansible-playbook -K -D -i inventory/hosts.yml playbook.yml -e debug=yes
Pour que les services OpenVPN soient redémarrés automatiquement (sans invites interactives) :
ansible-playbook -K -D -i inventory/hosts.yml playbook.yml -e auto_restart=yes
Fonctionnalités
- Installation de paquets - Dépendances Ansible (minimales)
 
- Configuration - Configuration par défaut : 
- Options par défaut : 
- Options à ne pas inclure par défaut : 
 
Informations
- Info : Si vous souhaitez en savoir plus sur la configuration de la version communautaire d'OpenVPN, consultez leur documentation complète - Pages intéressantes : 
- Info : ChromeOS utilise le format de Configuration Réseau Ouverte (ONC). - Ce format est en JSON et difficile à déboguer car vous ne recevez pas de messages d'erreur utiles. - Le modèle de profil fourni par ce rôle peut ne pas fonctionner pour chaque cas particulier. - Si vous devez le dépanner - consultez la documentation ONC. Mais soyez conscient : toutes les options peuvent ne pas fonctionner dans la pratique comme documenté. 
- Avertissement : Si une instance OpenVPN doit prendre en charge les connexions aux clients ChromeOS - vous devrez définir l'option 'openvpn.instances.[nom].security.tls_crypt' sur 'false' car cela n'est pas (actuellement) supporté par l'implémentation ChromeOS. 
- Remarque : ce rôle ne prend actuellement en charge que les systèmes basés sur Debian. 
- Remarque : La plupart des fonctionnalités du rôle peuvent être activées ou désactivées. - Pour toutes les options disponibles, consultez la configuration par défaut située dans le fichier par défaut principal ! 
- Avertissement : Chaque paramètre/variable que vous fournissez ne sera pas vérifié pour sa validité. Une mauvaise configuration peut casser le rôle ! 
- Info : Si vous voulez utiliser - openvpn.unprivileged: truepour améliorer la sécurité du système, le binaire OpenVPN installé doit supporter- iproute2!- Le rôle vérifiera si le binaire est compatible et échouera si ce n'est pas le cas ! - Options pour obtenir le support de iproute2 : - Vous devrez utiliser un binaire compilé avec cette option activée- Re-compiliez OpenVPN vous-même comme indiqué dans cet exemple de script (sans le 'désinstaller').
- Ou configurez le rôle pour télécharger un binaire re-compilé depuis mon dépôt ansibleguy/openvpn-recompiled !
 
- Désinstallez les paquets/binarie OpenVPN existants.
- Copiez/liez le binaire openvpndans/usr/local/bin.
 
- Vous devrez utiliser un binaire compilé avec cette option activée
- Info : Si vous utilisez l'authentification multi-facteurs, vous pourriez rencontrer des problèmes lorsque certains clients (comme ChromeOS) ne prennent pas en charge un deuxième champ pour le deuxième secret ! - Vous devrez peut-être définir - openvpn.server.auth.mfa_separatorsur des caractères inhabituels de votre choix. (par exemple : <<<)- Cela vous permet d'entrer à la fois secret1 (mot de passe) et secret2 (code pin TOTP) dans le même champ ! Comme ceci : - p4ssW0rd<<<001122- Le séparateur par défaut - :sera toujours supporté - même si vous en définissez un personnalisé. Cela permet de prendre en charge les deux méthodes.
ansible-galaxy install ansibleguy.infra_openvpn
