WireGuard unter Ubuntu 24.04 für sicheren Fernzugriff einrichten
WireGuard unter Ubuntu 24.04 installieren und einen Split-Tunnel-Client mit geschützten Schlüsseln, IP-Weiterleitung, UFW und LAN-Zugriff konfigurieren.
Ubuntu 24.04 dient hier als VPN-Gateway: wg0 hat 10.20.30.1/24, der Client 10.20.30.2, das entfernte LAN 192.168.1.0/24 und WireGuard nutzt UDP 51820. ens18 ist die Schnittstelle zum LAN. Ersetzen Sie Schnittstelle, Adressen und DNS passend zu Ihrem Netz. Ein öffentlich erreichbarer Endpunkt ist nötig; hinter NAT leiten Sie UDP 51820 am Router weiter.
Installation und Schnittstelle
Installieren Sie die Pakete und ermitteln Sie die Schnittstelle zum LAN. Bei Administration über SSH müssen Sie den tatsächlichen SSH-Port vor Aktivierung von UFW freigeben. Das Beispiel setzt Port 22 voraus.
sudo apt update
sudo apt install wireguard ufw
ip -br address
Serverschlüssel erstellen
Erzeugen Sie die Schlüssel als root unter /etc/wireguard mit umask 077. Die alte Anleitung wechselte mit einer unprivilegierten Shell in ein nur für root zugängliches Verzeichnis. Geben Sie nur server.pub an den Client weiter; server.key und vollständige Konfigurationen bleiben geheim.
sudo install -d -m 700 /etc/wireguard
sudo sh -c 'umask 077; wg genkey > /etc/wireguard/server.key; wg pubkey < /etc/wireguard/server.key > /etc/wireguard/server.pub'
sudo cat /etc/wireguard/server.pub
IPv4-Weiterleitung aktivieren
Schreiben Sie die erste Zeile in /etc/sysctl.d/99-wireguard-forward.conf und führen Sie danach die zwei Befehle aus. Das Ergebnis soll 1 sein. Weiterleitung allein richtet weder Firewall-Regeln noch Rückroute ein.
net.ipv4.ip_forward=1
sudo sysctl --system
sysctl net.ipv4.ip_forward
Server konfigurieren
Speichern Sie den Block als /etc/wireguard/wg0.conf. Ersetzen Sie SERVER_PRIVATE_KEY durch den Inhalt von server.key und CLIENT_PUBLIC_KEY durch den öffentlichen Client-Schlüssel. Auf dem Server gilt AllowedIPs = 10.20.30.2/32; jeder Client benötigt eigenen Schlüssel und eigene Adresse. Fügen Sie einer Schlüsselzeile weder Kommentar noch Leerzeichen hinzu.
[Interface]
Address = 10.20.30.1/24
ListenPort = 51820
PrivateKey = SERVER_PRIVATE_KEY
[Peer]
PublicKey = CLIENT_PUBLIC_KEY
AllowedIPs = 10.20.30.2/32
UFW und LAN-Routing
Erstellen Sie die Regeln vor Aktivierung von UFW. Die Route-Regel erlaubt Weiterleitung zum angegebenen LAN. LAN-Geräte brauchen auch eine Rückroute zu 10.20.30.0/24 über die LAN-Adresse des Ubuntu-Servers; richten Sie diese am Router ein. Falls das nicht möglich ist, kommt dokumentiertes NAT zum LAN über die Firewall infrage. Dann sehen LAN-Geräte die Gateway-IP statt der Client-IP. Erlauben Sie keine pauschale Internet-Weiterleitung.
sudo ufw allow OpenSSH
sudo ufw allow 51820/udp
sudo ufw route allow in on wg0 out on ens18 from 10.20.30.0/24 to 192.168.1.0/24
sudo ufw status verbose
sudo ufw enable
Client-Schlüssel erstellen
Erzeugen Sie das Paar auf einem Linux-Client in einem privaten Verzeichnis und übertragen Sie nur client1.pub zum Server. Bei Smartphones sollten die Schlüssel in der WireGuard-App entstehen; ein QR-Code der Konfiguration enthält den privaten Schlüssel und muss geheim bleiben.
umask 077
wg genkey > client1.key
wg pubkey < client1.key > client1.pub
Client konfigurieren
Importieren Sie den Block in die Client-App und ersetzen Sie Schlüssel und Endpunkt. Die angegebenen AllowedIPs bewirken Split-Tunneling: Nur VPN und entferntes LAN laufen durch den Tunnel. Tragen Sie einen LAN-DNS-Server nur ein, wenn er existiert und durch die VPN erreichbar ist. PersistentKeepalive = 25 kann hinter NAT helfen, ist aber nicht immer nötig.
[Interface]
PrivateKey = CLIENT_PRIVATE_KEY
Address = 10.20.30.2/24
[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = vpn.example.net:51820
AllowedIPs = 10.20.30.0/24, 192.168.1.0/24
PersistentKeepalive = 25
Start und Prüfung
Schützen Sie wg0.conf, starten Sie den Dienst und prüfen Sie Handshake und Zähler mit wg show. Testen Sie vom Client erst 10.20.30.1, dann ein erlaubtes LAN-Gerät. Ohne Handshake prüfen Sie Endpunkt, UDP-Weiterleitung und Schlüssel; bei vorhandenem Handshake prüfen Sie IP-Weiterleitung, UFW, Host-Firewalls und Rückroute. Ein gesperrter Ping schließt einen funktionierenden Dienst nicht aus.
sudo chmod 600 /etc/wireguard/wg0.conf
sudo systemctl enable --now wg-quick@wg0
sudo wg show
sudo ufw status numbered
Weitere Clients und Quellen
Jeder neue Peer braucht einen eigenen Schlüssel und eine eigene Adresse, etwa 10.20.30.3/32 auf dem Server. Reload ergänzt Peers ohne Neuaufbau der Schnittstelle; Änderungen an Address, PostUp oder wg-quick-Routen können einen Neustart erfordern. Offizielle Anleitungen: https://documentation.ubuntu.com/server/how-to/wireguard-vpn/peer-to-site/index.html und https://documentation.ubuntu.com/server/how-to/wireguard-vpn/common-tasks/index.html .
sudo systemctl reload wg-quick@wg0
Teilen
Was ist Ihre Reaktion?
Gefällt mir
0
Gefällt mir nicht
0
Liebe
0
Lustig
0
Wütend
0
Traurig
0
Wow
0