OT-OSM.openvpn

Rôle Ansible : OpenVPN

CircleCI

Opstree Solutions
Opstree Solutions

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 client

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 add_connection

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

Sélectionnez ensuite le fichier .client.ovpn. select_file

Enfin, enregistrez le fichier client.ovpn. save_key

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

Sudipt Sharma
Sudipt Sharma

À propos du projet

OpenVpn ansible role for creating a secure tunnel to your private infra.

Installer
ansible-galaxy install OT-OSM.openvpn
Licence
Unknown
Téléchargements
219
Propriétaire