OT-OSM.openvpn

Ansible Rolle: OpenVPN

CircleCI

Opstree Solutions
Opstree Solutions

Eine Ansible Rolle zur Installation und Konfiguration eines OpenVPN-Servers.

Versionshistorie

Datum Version Beschreibung Bearbeitet Von
16 August 2018 v.1.0.0 Erste Entwurf Yashvinder Hooda
8 September 2018 v.1.0.0 Rolle für Debian hinzugefügt Sudipt Sharma
9 Oktober 2018 v.1.0.0 Readme aktualisiert Sudipt Sharma
13 November 2018 v.1.0.0 Für RHEL aktualisiert Sudipt Sharma
28 Februar 2019 v.1.0.0 Gitlab-CI hinzugefügt Mahesh Kumar
31 Mai 2019 v.1.0.0 Molecule-Testfälle hinzugefügt Ekansh Jain
13 Januar 2020 v.1.0.0 Für AMAZON aktualisiert Sudipt Sharma
11 Februar 2020 v.1.0.0 Tags zum Erstellen & Widerrufen von Clients hinzugefügt Sudipt Sharma
18. April 2020 v.1.0.0 CircleCI integriert Sudipt Sharma

Hauptmerkmale

  • Diese Rolle automatisiert die VPN-Einrichtung mit OpenVPN. Die Rolle besteht aus zwei Metadateien
  • clientlist: Geben Sie die Namen der Clients ein, die Sie hinzufügen möchten.
  • revokelist: Geben Sie die Namen der Clients ein, die Sie widerrufen möchten.

Hinweis:

  • Deaktivieren Sie die Quell-/Zielüberprüfung.

    Wählen Sie in der Liste der Instanzen die VPN-Instanz aus und gehen Sie zu Netzwerk->Quell/Ziel ändern. Überprüfen Sie das Dropdown-Menü. Klicken Sie dann auf Ja, Deaktivieren. Dies ist erforderlich, da Ihr VPN-Server ansonsten die Verbindung zu Ihren anderen EC2-Instanzen nicht herstellen kann.

Unterstützte Betriebssysteme

  • CentOS:7
  • CentOS:6
  • Ubuntu:bionic
  • Ubuntu:xenial
  • Amazon AMI

Abhängigkeiten

  • Keine :)

Verzeichnisstruktur

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 Verzeichnisse, 31 Dateien

Rollenvariablen
--------------

|**Variablen**| **Standardwerte**| **Beschreibung**| **Typ**|
|----------|---------|---------------|-----------|
| server_name | server | Name des OpenVPN-Servers | Optional |
| PROTOCOL | udp | Das Protokoll, auf dem der Server arbeitet | Pflicht |
| PORT | udp | Der Port, auf dem der Server arbeitet | Pflicht |
| openvpn_server_network | 10.8.0.0 | CIDR-Bereich für das VPN-Netzwerk | Optional |
| base_directory | /etc/openvpn | Konfigurationspfad des OpenVPN-Servers | Optional |
| easy_rsa_url | url | URL zum Herunterladen von Easy RSA | Optional |
| block_all_connection | false | Alle Kommunikation für OpenVPN-Client blockieren | Optional |
| port_list | [80,443] | Erlaubt spezifische Ports für OpenVPN-Client und nur anwendbar, wenn block_all_connection == true | Optional |

Beispiel-Playbook
----------------

  • name: Es wird die OpenVPN-Einrichtung automatisiert hosts: server become: true roles:
    • role: osm_openvpn ...

$ ansible-playbook site.yml -i inventory

- Zum Generieren von Client-Schlüsseln

```sh
$  ansible-playbook site.yml -i inventory --tags "generate_client_keys"
  • Zum Widerrufen von Client-Schlüsseln
$  ansible-playbook site.yml -i inventory --tags "revoke_client_keys"

Inventar

Ein Inventar sollte folgendermaßen aussehen:-

[server]                 
192.xxx.x.xxx    ansible_user=ubuntu 

Client-Schlüssel

Client-Schlüssel werden in /tmp/{{client_name}}.ovpn des lokalen Hosts generiert.

Für die Client-Konfiguration

OpenVPN installieren

   apt-get install openvpn -y

OpenVPN GUI für Ubuntu 18.04 Bionic Beaver installieren

   apt install network-manager-openvpn-gnome -y

Nach der Installation gehen Sie zu den Netzwerkeinstellungen

Fügen Sie VPN zu Ihren Netzwerkeinstellungen hinzu

Dann VPN-Einstellungen und durchsuchen Sie Ihre client.ovpn

client

OpenVPN GUI für Ubuntu 16.04 Xenial installieren

   apt install network-manager-openvpn-gnome -y

Nach der Installation gehen Sie zu den Netzwerkeinstellungen

add_connection

Fügen Sie die .ovpn-Datei zu Ihren Netzwerkeinstellungen hinzu

import_file

Wählen Sie dann die .client.ovpn-Datei aus.

select_file

Speichern Sie dann die client.ovpn-Datei.

save_key

Zukünftige Änderungen

  • Rolle so anpassen, dass sie auf Bare Metal funktioniert

Referenzen

Lizenz

  • MIT / BSD

Autoreninformation

Mitwirkende

Sudipt Sharma
Sudipt Sharma

Über das Projekt

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

Installieren
ansible-galaxy install OT-OSM.openvpn
Lizenz
Unknown
Downloads
219
Besitzer