OT-OSM.openvpn
Ansible Rolle: OpenVPN
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

OpenVPN GUI für Ubuntu 16.04 Xenial installieren
apt install network-manager-openvpn-gnome -y
Nach der Installation gehen Sie zu den Netzwerkeinstellungen

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

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

Speichern Sie dann die client.ovpn-Datei.

Zukünftige Änderungen
- Rolle so anpassen, dass sie auf Bare Metal funktioniert
Referenzen
Lizenz
- MIT / BSD
Autoreninformation
Mitwirkende
OpenVpn ansible role for creating a secure tunnel to your private infra.
ansible-galaxy install OT-OSM.openvpn

