ansibleguy.infra_openvpn

TRAVAIL EN COURS ! À NE PAS UTILISER EN PRODUCTION !

Logo OpenVPN

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.

Achetez-moi un café

É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: true pour 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
    • Désinstallez les paquets/binarie OpenVPN existants.
    • Copiez/liez le binaire openvpn dans /usr/local/bin.
  • 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_separator sur 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.

Installer
ansible-galaxy install ansibleguy.infra_openvpn
Licence
other
Téléchargements
1.9k
Propriétaire
[email protected] | GPG: https://badges.ansibleguy.net/public.gpg