mawalu.wireguard_private_networking
Privates Server-zu-Server-Netzwerk mit Ansible und WireGuard
Dieses Role ermöglicht es Ihnen, ein schnelles, sicheres und anbieterunabhängiges privates Netzwerk zwischen mehreren Servern bereitzustellen. Dies ist nützlich für Anbieter, die Ihnen kein privates Netzwerk zur Verfügung stellen, oder wenn Sie Server verbinden möchten, die über mehrere Regionen und Anbieter verteilt sind.
Wie
Die Rolle installiert WireGuard auf Debian oder Ubuntu, erstellt ein Mesh zwischen allen Servern, indem sie alle als Peers hinzufügt, und konfiguriert den wg-quick systemd-Dienst.
Installation
Die Installation kann über Ansible Galaxy erfolgen:
$ ansible-galaxy install mawalu.wireguard_private_networking
Einrichtung
Installieren Sie diese Rolle, weisen Sie jeder Host, die Teil des Netzwerks sein soll, eine vpn_ip
-Variable zu und führen Sie die Rolle aus. Bitte stellen Sie sicher, dass Sie den VPN-Port (Standard ist 5888) in Ihrer Firewall erlauben. Hier ist ein kleines Beispiel für die Konfiguration:
Optional können Sie eine public_addr
für jeden Host festlegen. Diese Adresse wird verwendet, um sich mit dem WireGuard-Peer zu verbinden, anstatt die Adresse im Inventar zu verwenden. Nützlich, wenn Sie über ein anderes Netzwerk konfigurieren als das, welches WireGuard verwendet, z.B. wenn Ansible über ein LAN zu Ihrem Peer verbindet.
# Inventar-Host-Datei
wireguard:
hosts:
1.1.1.1:
vpn_ip: 10.1.0.1/32
public_addr: "example.com" # optional
2.2.2.2:
vpn_ip: 10.1.0.2/32
# Playbook
- name: WireGuard-Mesh konfigurieren
hosts: wireguard
remote_user: root
roles:
- mawalu.wireguard_private_networking
# Playbook (mit Client-Konfiguration)
- name: WireGuard-Mesh konfigurieren
hosts: wireguard
remote_user: root
vars:
client_vpn_ip: 10.1.0.100
client_wireguard_path: "~/my-client-config.conf"
roles:
- mawalu.wireguard_private_networking
Zusätzliche Konfiguration
Es gibt eine kleine Anzahl von Rollenvariablen, die überschrieben werden können.
wireguard_port: "5888" # Der Port für Server-zu-Server-Verbindungen
wireguard_path: "/etc/wireguard" # Speicherort aller WireGuard-Konfigurationen
wireguard_network_name: "private" # Der Name für die Konfigurationsdatei und wg-quick
wireguard_mtu: 1500 # Optional eine MTU, die in der wg-quick-Datei festgelegt werden kann. Standardmäßig nicht gesetzt. Kann auch pro Host gesetzt werden
debian_enable_backports: true # Ob die Debian Backports-Repos auf Debian-Maschinen hinzugefügt werden sollen
# Unterstützung für Raspberry Pi Zero
# Benötigt Kernel-Header und manuelle Kompilierung von WireGuard, aktivieren Sie dies über das Flag, installieren Sie die `community.general`-Sammlung
# Achtung: Kann einen Neustart auslösen.
allow_build_from_source: true
wireguard_sources_path: "/var/cache" # Speicherort für das Klonen der WireGuard-Quellen, falls eine manuelle Erstellung erforderlich ist
client_vpn_ip: "" # Wenn gesetzt, wird eine zusätzliche WireGuard-Konfigurationsdatei am angegebenen Pfad auf localhost generiert
client_wireguard_path: "~/wg.conf" # Pfad auf localhost, um die Client-Konfiguration zu schreiben, wenn client_vpn_ip gesetzt ist
# Eine Liste zusätzlicher Peers, die jedem Server hinzugefügt werden
wireguard_additional_peers:
- comment: martin
ip: 10.2.3.4
key: your_wireguard_public_key
- comment: other_network
ip: 10.32.0.0/16
key: their_wireguard_public_key
keepalive: 20
endpoint: some.endpoint:2230
wireguard_post_up: "iptables ..." # PostUp-Hook-Befehl
wireguard_post_down: "iptables" # PostDown-Hook-Befehl
Testen
Diese Rolle hat eine kleine Testumgebung, die mit Molecule erstellt wird. Um die Tests auszuführen, folgen Sie der Installationsanleitung von Molecule, stellen Sie sicher, dass ein Docker-Daemon auf Ihrem Computer läuft und führen Sie molecule test
aus.
Beitragen
Fühlen Sie sich frei, Probleme oder MRs zu eröffnen, wenn Sie auf Probleme stoßen oder Ideen zur Verbesserung haben. Ich bin besonders offen für MRs, die die Unterstützung für zusätzliche Betriebssysteme und mehr Tests hinzufügen.
Build your own multi server private network using wireguard and ansible
ansible-galaxy install mawalu.wireguard_private_networking