OT-OSM.openvpn
Rôle Ansible : OpenVPN
Un rôle Ansible pour installer et configurer un serveur OpenVPN.
Historique des Versions
| Date | Version | Description | Modifié par |
|---|---|---|---|
| 16 août 2018 | v.1.0.0 | Brouillon initial | Yashvinder Hooda |
| 8 septembre 2018 | v.1.0.0 | Ajout du rôle pour Debian | Sudipt Sharma |
| 9 octobre 2018 | v.1.0.0 | Mise à jour du Readme | Sudipt Sharma |
| 13 novembre 2018 | v.1.0.0 | Mise à jour pour RHEL | Sudipt Sharma |
| 28 février 2019 | v.1.0.0 | Ajout de Gitlab-CI | Mahesh Kumar |
| 31 mai 2019 | v.1.0.0 | Ajout des cas de test molecule | Ekansh Jain |
| 13 janvier 2020 | v.1.0.0 | Mise à jour pour AMAZON | Sudipt Sharma |
| 11 février 2020 | v.1.0.0 | Ajout de balises pour créer et révoquer des clients | Sudipt Sharma |
| 18 avril 2020 | v.1.0.0 | Intégration de circle-ci | Sudipt Sharma |
Caractéristiques Principales
- Ce rôle automatise la configuration d'un VPN avec OpenVPN. Le rôle comprend deux fichiers méta :
- clientlist : Entrez le nom du client que vous souhaitez ajouter.
- revokelist : Entrez les noms des clients que vous souhaitez révoquer.
Remarque :
Désactivez la Vérification Source/Destination.
Dans la liste des instances, sélectionnez l'instance VPN, puis Réseau -> Modifier la Source/Destination. Vérifiez dans le menu déroulant. Cliquez ensuite sur Oui, Désactiver. Cela est nécessaire sinon, votre serveur VPN ne pourra pas se connecter à vos autres instances EC2.
Systèmes d'Exploitation Prise en Charge
- CentOS:7
- CentOS:6
- Ubuntu:bionic
- Ubuntu:xenial
- Amazon AMI
Dépendances
- Aucune :)
Structure du Répertoire
osm_openvpn
.
├── clientlist
├── defaults
│ └── main.yml
├── files
│ └── make_config.sh
├── handlers
│ └── main.yml
├── media
│ ├── add_connection.png
│ ├── addvpn.jpg
│ ├── client.png
│ ├── import_file.png
│ ├── save_key.png
│ ├── select_file.png
│ └── vpn.jpg
├── meta
│ └── main.yaml
├── molecule
│ └── default
│ ├── Dockerfile.j2
│ ├── INSTALL.rst
│ ├── molecule.yml
│ ├── playbook.yml
│ └── tests
│ ├── test_default.py
│ └── test_default.pyc
├── README.md
├── revokelist
├── tasks
│ ├── client_keys.yaml
│ ├── config.yaml
│ ├── easy-rsa.yaml
│ ├── firewall.yaml
│ ├── install.yaml
│ ├── main.yaml
│ ├── revoke.yaml
│ └── server_keys.yaml
└── templates
├── before.rules.j2
├── client.conf.j2
└── server.conf.j2
10 répertoires, 31 fichiers
Variables du Rôle
| Variables | Valeurs Par Défaut | Description | Type |
|---|---|---|---|
| server_name | serveur | Nom du serveur OpenVPN | Optionnel |
| PROTOCOL | udp | Le protocole sur lequel le serveur fonctionnera | Obligatoire |
| PORT | udp | Le port sur lequel le serveur fonctionnera | Obligatoire |
| openvpn_server_network | 10.8.0.0 | Plage CIDR attribuée au réseau VPN | Optionnel |
| base_directory | /etc/openvpn | Chemin de configuration du serveur OpenVPN | Optionnel |
| easy_rsa_url | url | URL pour télécharger Easy RSA | Optionnel |
| block_all_connection | false | Bloquer toute communication pour le client OpenVPN | Optionnel |
| port_list | [80,443] | Autoriser des ports spécifiques pour le client OpenVPN (ne s'applique que si block_all_connection == true) | Optionnel |
Exemple de Playbook
---
- name: Il automatisera la configuration d'OpenVPN
hosts: server
become: true
roles:
- role: osm_openvpn
...
$ ansible-playbook site.yml -i inventory
- Pour générer des clés client
$ ansible-playbook site.yml -i inventory --tags "generate_client_keys"
- Pour révoquer des clés client
$ ansible-playbook site.yml -i inventory --tags "revoke_client_keys"
Inventaire
Un inventaire doit ressembler à ceci :
[server]
192.xxx.x.xxx ansible_user=ubuntu
Clés Client
Les clés client seront générées dans /tmp/{{client_name}}.ovpn de l'hôte local.
Pour la Configuration Client
Installez OpenVPN
apt-get install openvpn -y
Installez l'interface OpenVPN pour Ubuntu 18.04 bionic beaver
apt install network-manager-openvpn-gnome -y
Après l'installation, allez dans les paramètres réseau

Ajoutez le VPN à vos paramètres réseau

Ensuite, dans les paramètres VPN, ajoutez votre client.ovpn

Installez l'interface OpenVPN pour Ubuntu 16.04 xenial
apt install network-manager-openvpn-gnome -y
Après l'installation, allez dans les paramètres réseau

Ajoutez le fichier .ovpn à vos paramètres réseau

Sélectionnez ensuite le fichier .client.ovpn.

Enfin, enregistrez le fichier client.ovpn.

Modifications Proposées pour l'Avenir
- Corriger le rôle pour fonctionner sur du matériel nu
Références
Licence
- MIT / BSD
Informations sur l'Auteur
Contributeurs
OpenVpn ansible role for creating a secure tunnel to your private infra.
ansible-galaxy install OT-OSM.openvpn

