Ziel des Setups
- Der Roadwarrior-Client (z. B. Android) soll per WireGuard mit dem Server verbunden werden.
- Es sollen **ausschließlich die beiden internen Netze** 172.16.1xx.0/24 und 172.17.1xx.0/24 über das VPN erreichbar sein.
- Kein Full Tunnel! Internetverkehr des Clients soll **nicht** über das VPN geleitet werden.
IP-Adressübersicht
| Komponente |
Rolle |
IP-Adresse / Netz |
Beschreibung
|
| WireGuard-Server |
VPN-Endpunkt |
192.168.hs.2xx |
Öffentliche IP (oder private bei NAT) des Servers, über die sich der Client verbindet
|
| WireGuard-Interface (Server) |
Transit-IP |
10.79.254.1/24 |
Interne Tunneladresse des Servers (wg0)
|
| WireGuard-Interface (Client) |
Transit-IP |
10.79.254.11/24 |
Tunneladresse des Roadwarrior-Clients
|
| Clientnetz A |
Internes Zielnetz |
172.16.1xx.0/24 |
Netz, auf das der Client über VPN zugreifen darf
|
| Clientnetz B |
Internes Zielnetz |
172.17.1xx.0/24 |
Zweites Netz, auf das der Client Zugriff benötigt
|
| DNS (optional) |
Resolver |
8.8.8.8 |
Öffentlicher DNS, den der Client über VPN nutzen kann
|
Configuration
- PORT = 44711
- VPNSERVER = 192.168.y.2xx
- SERVER = 172.17.2xx.0/24
- LAN = 172.16.2xx.0/24
- TRANSIT = 10.79.254.1/24
Schlüsselgenerierung
- S_PRIVKEY=$(wg genkey)
- S_PUBKEY=$(echo $S_PRIVKEY | wg pubkey)
- C_PRIVKEY=$(wg genkey)
- C_PUBKEY=$(echo $C_PRIVKEY | wg pubkey)
- PSK=$(wg genpsk)
VPNServer
- cat <<HERE > /etc/wireguard/wg0.conf
[Interface]
Address = 10.79.254.1/24
ListenPort = 44711
PrivateKey = $S_PRIVKEY
[Peer]
PublicKey = $C_PUBKEY
PresharedKey = $PSK
AllowedIPs = 10.79.254.11/32
HERE
Clients
Android
- Installiere die App WireGuard und nutze den folgenden QR-Code
On server
- Generiere die Konfigurationsdatei des Clients direkt auf dem Server
- mkdir -p /etc/wireguard/client1
- cd /etc/wireguard/client1
- cat <<HERE > client1.conf
[Interface]
Address = 10.79.254.11/24
PrivateKey = $C_PRIVKEY
DNS = 8.8.8.8
[Peer]
PublicKey = $S_PUBKEY
PresharedKey = $PSK
AllowedIPs = 172.16.2xx.0/24, 172.17.2xx.0/24
Endpoint = 192.168.y.1xx:44711
PersistentKeepalive = 25
HERE
Hier geht es mit QR Code
- Generiere den QR-Code
- qrencode -t utf8 < client1.conf
Weiterleitung und Zugriff auf interne Netze
- Auf dem Server Routing aktivieren
- echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
- sysctl -p
- Zugriff auf interne Netze erlauben (iptables)
- iptables -A FORWARD -i wg0 -s 10.79.254.11 -d 172.16.2xx.0/24 -j ACCEPT
- iptables -A FORWARD -i wg0 -s 10.79.254.11 -d 172.17.2xx.0/24 -j ACCEPT
Hinweis zur Routing-Konfiguration im Zielnetz
- Die internen Gateways der Netze 172.16.2xx.0/24 und 172.17.2xx.0/24 müssen wissen, dass der Rückweg zu 10.79.254.0/24 über den WireGuard-Server läuft.
- Entweder über:
- Statische Route
- Oder indem der WG-Server Default Gateway für diese Netze ist
Rebootfähig machen
- systemctl enable wg-quick@wg0
Links