Manuelle Wiregurad Konfiguration auf der UDM Pro.
In der GUI der UDM Pro können mittlerweile wireguard VPNs eingerichtet weden. Allerdings sind hier eher nur Standardkonfigurationen möglich. Komplexere Site2Site-Setups mit speziellen Parametern können über die GUI nicht angepasst werden. Mit udm-wireguard können dieWireguard-Verbindgungen direkt und ohne GUI eingerichtet werden.
Unifi Dream Machine Pro mit UnifiOS Version 4.x. Erfolgreich getestet mit UnifiOS 4.0.6 und Network App 8.3.32.
Das Script udm-wireguard.sh
wird bei jedem Systemstart und anschließend alle 2 Minuten per systemd ausgeführt.
Ab Version 0.9.3 werden die Wireguard-Interfaces in der Default-Konfiguration wie WAN-Interfaces behandelt und entsprechend im Firewall-Regelwerk integriert. Dies entspricht dem Verhalten der GUI. Die Integration der VPN-Interfaces wird bei Änderungen an der Netzwerkkonfiguration in der GUI regelmäßig wieder überschrieben. Damit die VPN-Verbindungen dauerhaft integriert werden, wird regelmäßig überprüft, ob die Firewall-Regeln noch passen. Neben dem systemd-Service wird daher auch ein systemd-Timer eingerichtet der das Script alle 2 Minuten neu startet und so die Regeln bei Bedarf wiederherstellt.
Da die VPN-Interfaces wie WAN-Interfaces behandelt werden, müssen in der GUI z.B. unter Security > Traffic & Firewall Rules entsprechende Regeln im Abschnitt Internet eingerichtet werden.
Hinweis: Durch Anpassung der Konfigurationsdatei udm-wireguard.conf die Einbindung der VPN-Interfaces als LAN-Interfaces (Verhalten von udm-wireguard < 0.9.3) erzwungen werden. NAchteile dieses Vorgehens sind:
- Ohne zusätzliche anpassungen an den Firewall-Regeln wird zwischen LAN-Segmenten lediglich gerouted und nicht gefiltert
- Eine Migration von udm-wireguard zu Wireguard-Verbindungen die per GUI verwaltet werden, wird erschwert.
- Verbindungen /data/custom/wireguard/*.conf aufbauen
- Wireguard Interfaces im Firewall-Regelwerk der UDM-Pro als WAN Interfaces einbinden
Änderungen die dieses Script an der Konfiguration der UDM-Pro vornimmt, werden von Ubiquiti nicht offiziell unterstützt und können zu Fehlfunktionen oder Garantieverlust führen. Alle BAÄnderungenkup werden auf eigene Gefahr durchgeführt. Daher vor der Installation: Backup nicht vergessen!!!
Nachdem eine Verbindung per SSH zur UDM/UDM Pro hergestellt wurde wird udm-wireguard folgendermaßen installiert:
1. Download der Dateien
mkdir -p /data/custom
dpkg -l git || apt install git
git clone https://github.com/nerdiges/udm-wireguard.git /data/custom/wireguard
chmod +x /data/custom/wireguard/udm-wireguard.sh
2. Parameter im Script anpassen (optional)
Im Script kann über eine Variablen das Verzeichnis hinterlegt werden, in dem die wireguard Config-Files abgelegt werden:
##############################################################################################
#
# Configuration
#
# directory with wireguard config files. All *.conf files in
# the directory will be considered as valid wireguard configs
conf_dir="/data/custom/wireguard/conf/"
# enforce integration of VPN interfaces as LAN interfaces
# WARNING: LAN integration is considered less secure!
lan_integration=false
#
# No further changes should be necessary beyond this line.
#
######################################################################################
Dieser Parameter muss in der Regel nicht angepasst weden. Wird der PArameter angepasst, so sollte er in der Datei udm-wireguard.conf udm-wireguard.conf gespeichert werden, die bei einem Update nicht überschrieben wird.
3. Einrichten der systemd-Services
Ist auf der UDM-Pro auch das Script udm-firewall installiert, kann dieser Schritt übersprungen werden, da das Script automatisch von udm-firewall mit ausgeführt wird. Damit das funktioniert müssen sowohl das udm-firewall als auch udm-wireguard, wie in den jeweiligen README.md beschrieben installiert wurden.
# Install udm-wireguard.service und timer definition file in /etc/systemd/system via:
ln -s /data/custom/wireguard/udm-wireguard.service /etc/systemd/system/udm-wireguard.service
ln -s /data/custom/wireguard/udm-wireguard.timer /etc/systemd/system/udm-wireguard.timer
# Reload systemd, enable and start the systemd timer:
systemctl daemon-reload
systemctl enable --now udm-wireguard.timer
# check status of service and timer
systemctl status udm-wireguard.timer
4. Wireguard Config-Files
Damit wireguard Interfaces angelegt werden, müssen die entsprechenden wireguard Config-Files erstellt und im Verzeichnis $conf_dir
(siehe oben Punkt 2) abgelegt werden.
Der Dateiname der Konfigurationsdateien ist dabei entscheidend für den Interface-Namen. Alles vor dem Suffix .conf
wird als Interfacename genutzt. Die Datei wg0.conf
erzeugt somit beispielsweise das Interface wg0
.
Das Script kann mit folgenden Befehlen aktualisiert werden:
cd /data/custom/wireguard
git pull origin
- Der DNS-Parameter in wireguard Config-Files führt zu einer Fehlermeldung, da das Paket openresolv im UnifiOS per Default nicht installiert ist.