githubixx.peervpn
role-peervpn
Diese Ansible-Rolle wird in Kubernetes the not so hard way with Ansible (bei Scaleway) - Teil 3 - PeerVPN verwendet. Sie dient zur Einrichtung von PeerVPN für Ubuntu 16.04/18.04 (sollte aber im Prinzip mit allen Linux-Betriebssystemen funktionieren, die systemd verwenden). Mit PeerVPN können Sie einfach ein vollständig verknüpftes VPN über Datacenter und alle gewünschten Knoten einrichten. Sie benötigen nur mindestens einen Host mit einer öffentlich erreichbaren Schnittstelle (Standard ist Port 7000
, Protokoll UDP
). Eine einfache Konfiguration könnte sein, dass Sie diesen öffentlich erreichbaren Host für Ihre peervpn_conf_initpeers
-Einstellung verwenden. Die anderen Hosts in Ihrem VPN werden automatisch von PeerVPN gefunden.
PeerVPN erstellt für seinen Zweck eine eigene TAP-Schnittstelle. Der Standardname dieser TAP-Schnittstelle ist tap0
. Um den Namen zu ändern, geben Sie einen anderen Wert für die Variable peervpn_conf_interface
an.
Um ein sicheres Passwort für Ihren PeerVPN-Preshared-Key zu generieren, können Sie Folgendes verwenden:
openssl rand -base64 382 | tr -d '\n' && echo
Da es sich um einen Preshared-Key handelt, muss dieser Schlüssel auf allen Hosts verwendet werden, auf denen Sie PeerVPN installieren und den gleichen Netzwerknamen verwenden. Andernfalls funktioniert die Verbindung nicht. Der Standard-Preshared-Key ist default
, den Sie natürlich ändern möchten ;-)
Versionen
Ich kennzeichne jede Veröffentlichung und versuche, mit semantischer Versionierung zu arbeiten. Wenn Sie die Rolle verwenden möchten, empfehle ich, den neuesten Tag zu überprüfen. Der Master-Branch ist im Grunde die Entwicklung, während die Tags stabile Releases markieren. Ein Tag 1.0.0+r044
bedeutet, dass dies die Veröffentlichung 1.0.0
dieser Rolle ist und es verwendet PeerVPN r044
. Wenn sich die Rolle selbst ändert, wird X.Y.Z
erhöht. Wenn sich die PeerVPN-Version ändert, wird rXXX
erhöht und auch das Patch-Level der Rolle wird erhöht (z. B. 1.0.0
-> 1.0.1
). Dies ermöglicht es, Bugfixes und neue Hauptversionen der Rolle zu kennzeichnen, während sie noch für eine bestimmte PeerVPN-Version entwickelt wird.
Anforderungen
Erlauben Sie den Verkehr auf Port 7000, Protokoll UDP (Standard), wenn Sie Firewall-Regeln installiert haben. Sie MÜSSEN auch die Variable peervpn_conf_initpeers
hinzufügen. Für diese Variable gibt es keinen Standardwert! IPv6 ist standardmäßig aktiviert. Wenn Sie es nicht verwenden möchten, fügen Sie eine Variable peervpn_conf_enableipv6: no
hinzu.
Rollenvariablen
Grundsätzlich müssen Sie nur sehr wenige Variablen ändern (siehe unten). Schauen Sie sich jedoch die Datei templates/etc/peervpn/peervpn.conf.j2
für Beispiele und vollständige Beschreibungen der Variablen an.
Variablen ohne Standardwerte:
peervpn_conf_initpeers
peervpn_conf_engine
peervpn_conf_ifconfig6
peervpn_conf_upcmd
peervpn_conf_chroot
Variablen mit Standardwerten:
peervpn_version: "peervpn-0-044"
peervpn_install_directory: "/opt/{{peervpn_version}}"
peervpn_dest: "/usr/local/sbin"
peervpn_conf_networkname: "peervpn"
peervpn_conf_psk: "default"
peervpn_conf_enabletunneling: "yes"
peervpn_conf_interface: "tap0"
peervpn_conf_local: "0.0.0.0"
peervpn_conf_port: 7000
peervpn_conf_ifconfig4: "10.0.0.1/24"
peervpn_conf_sockmark: 0
peervpn_conf_enableipv4: "yes"
peervpn_conf_enablenat64clat: "no"
peervpn_conf_enablerelay: "no"
peervpn_conf_enableprivdrop: "yes"
peervpn_conf_user: "nobody"
peervpn_conf_group: "nogroup"
Sie MÜSSEN einen Wert für peervpn_conf_initpeers
angeben, um PeerVPN nutzen zu können (entweder pro Host im Ansible host_vars
-Verzeichnis oder pro Hostgruppe im group_vars
-Verzeichnis). Wenn Sie z. B. peervpn_conf_initpeers: "host.example.net 7000"
angeben, versucht PeerVPN, sich über UDP auf Port 7000
mit host.example.net
zu verbinden, um eine Verbindung herzustellen.
Sie sollten mindestens die folgenden Variablen ändern:
peervpn_conf_initpeers
: Der Hostname und Port, zu dem PeerVPN eine Verbindung herstellen soll, um Teil des VPN zu werden.
peervpn_conf_networkname
: Der Name Ihres VPN.
peervpn_conf_psk
: Preshared-Key. Informationen zur Generierung eines guten Preshared-Key-Passworts finden Sie in der Einleitung oben.
peervpn_conf_ifconfig4
: Die IP-Adresse des Knotens und das Subnetz im CIDR-Format. Diese Variable muss natürlich pro Host angegeben werden.
Beispiel Playbook
- hosts: webservers
roles:
- peervpn
Lizenz
GNU GENERAL PUBLIC LICENSE Version 3
Autoreninformationen
ansible-galaxy install githubixx.peervpn