kravietz.wireguard_vpn

wireguard_vpn

Konfigurieren Sie einen Client-zu-Server Wireguard VPN-Dienst und erstellen Sie Konfigurationsdateien für Clients.

Beschreibung

Die Rolle konfiguriert einen auf Wireguard basierenden VPN-Dienst auf einem Linux-Rechner mit den folgenden besonderen Merkmalen:

  • Alle Netzwerkkonfigurationen werden mit systemd-networkd verwaltet
  • IPv4-Netzwerk im Tunnel mit RFC 1918 Adressierung und NAT
  • IPv6-Netzwerk im Tunnel mit vollständig routbarem Subnetz und NDP-Proxys
  • Unterstützung für Wireguard vorab geteilte Schlüssel
  • Erstellt .conf-Dateien für wg-quick(8)
  • Alle wg-quick(8) Konfigurationsoptionen werden unterstützt

Rollenvariablen

vpn_interface: wg1

# generieren mit `wg genkey` ***mit ansible-vault schützen***
# vpn_private_key: "iP/lnL/zhicPMnAphlT6qAciKusTmR2X5utTAo7u5Ug="  # ERFORDERLICH

# generieren mit `wg pubkey` aus dem obigen Schlüssel
# vpn_public_key: "OBGsZZxxX0jcehmFJc0L6v7FX3PMnVDFgdgpjJFU0k4="   # ERFORDERLICH

## UDP-Listening-Port im öffentlichen Internet
# vpn_listen_port: 1194  # ERFORDERLICH

## Adressen im internen VPN-Tunnel
# vpn_address4: "192.168.2.252/24"            # mindestens eine ist ERFORDERLICH      
# vpn_address6: '2a05:1111:0:3:8000::252/65'  # mindestens eine ist ERFORDERLICH

## erforderlich, um NDP-Einträge für IPv6 VPN-Clients einzurichten
# vpn_ndp_config: /etc/systemd/network/eth0.network  # OPTIONALE

## DNS-Resolver, die bei Clients für die Verwendung mit VPN eingestellt werden
# vpn_dns_resolvers: ["9.9.9.9", "2620:fe::fe"]  # OPTIONALE Liste

# aktiviert die Erstellung von .conf-Dateien für das wg-quick-Utility der Clients
# vpn_clients_dir: /root/wireguard  # OPTIONALE

# vpn_clients:                                # OPTIONALE Liste
#   - name: client1                           # ERFORDERLICH
#     address4: 192.168.2.110/32              # mindestens eine der Adressen address4, address6 ist ERFORDERLICH
#     address6: "2a05:1111:0:3:8000::110/80"  # mindestens eine der Adressen address4, address6 ist ERFORDERLICH
#     # nur notwendig, wenn die generierten .config-Dateien bereits den privaten Schlüssel enthalten sollen
#     # andernfalls enthalten sie einen Platzhalter
#     # generieren mit `wg genkey` ***mit ansible-vault schützen***
#     # private_key: "+Noalz2HL9+nYFQpplZF2dYMmc7+MaXGuxMgc/QBbXU="  # OPTIONALE
#     # generieren mit `wg pubkey` aus dem obigen Schlüssel
#     public_key: "RfDKFurwFo/ytXd9Ko5oEy7I7H4hjNBiT1bc1t+V4Wc="              # ERFORDERLICH
#     # Tunnelroute, die auf der Client-Seite gesetzt werden soll
#     # allowed_ips: ["192.168.2.1/32"]         # OPTIONALE
#     # generieren mit `wg genpsk` ***mit ansible-vault schützen***
#     # psk: "151ODHNbvmiK/ox+2ndnZbVcfrIMRJjFjHXlb7o3ZeI="  # OPTIONALE
#     # mtu, table, preup, postdown - laut wg-quick(8)

Warnung: Verwenden Sie immer ansible-vault, um private Schlüssel und vorab geteilte Geheimnisse in Ihren Variablen-Dateien zu schützen.

Beispiel-Playbook

- hosts: vpn
  roles:
    - role: kravietz.wireguard_vpn
      vpn_private_key: "wIfnNpua6YlD4XzVGUvOCVknCo1LzAF6iGkp7Tho43o="
      vpn_public_key: "+RHdC7oc8O/dojCOMf7CtYBZc5pA2DZPiE4dNRHHhlw="
      vpn_listen_port: 1194
      vpn_address4: "192.168.1.1/24"
      vpn_address6: '2a05:1111:0:3:8000::1/65'
      vpn_clients_dir: /root/wireguard
      vpn_clients:
        - name: client1
          address4: 192.168.1.100/32
          address6: "2a05:1111:0:3:8000::100/128"
          private_key: "iJgcqx21xGETtzFIIdKfD/LvMqswJ2LWUiFPKUBLenw="
          public_key: "T4QbCHfGKLYFdmFeXVfDHP5AYpQ2AZapHIw+ZiCDIHs="

Lizenz

GPLv3

Autoreninformation

Paweł Krawczyk https://krvtz.net/

Über das Projekt

Configure a IPv4/IPv6 Wireguard-based VPN service using `systemd-networkd` and generate client config files.

Installieren
ansible-galaxy install kravietz.wireguard_vpn
GitHub Repository
Lizenz
Unknown
Downloads
6.8k
Besitzer
Information security, DevOps and DevSecOps professional from Poland living in the UK