mawalu.wireguard_private_networking

Privates Server-zu-Server-Netzwerk mit Ansible und WireGuard

Ansible-Rolle

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.

Über das Projekt

Build your own multi server private network using wireguard and ansible

Installieren
ansible-galaxy install mawalu.wireguard_private_networking
Lizenz
mit
Downloads
12.7k
Besitzer
Webdev, DevOps & Security. Btw I use Arch and Nix