Wireguard Server for Roadwarrior: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(20 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
=Configuration=
= Ziel des Setups =
==Server==
 
*cat /etc/wireguard/server-int.conf
* 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 =
 
{| class="wikitable"
! 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
<pre>
<pre>
[Interface]
[Interface]
Address = 10.79.254.1/24
Address = 10.79.254.1/24
PrivateKey = yBOs8znukCFcmlMKHVvDtGygrycnrWofVQZCiceJDWA=
ListenPort = 44711
ListenPort = 8989
PrivateKey = $S_PRIVKEY


[Peer]
[Peer]
PublicKey = qOWmpexxxxxxxxxxxxxxxxxxzoizq3yk4Mn78HMvNQCQ=
PublicKey = $C_PUBKEY
PresharedKey = $PSK
AllowedIPs = 10.79.254.11/32
AllowedIPs = 10.79.254.11/32
HERE
</pre>
</pre>
=Clients=
 
==Android==
= Clients =
==On server==
 
;generating the keys
== Android ==
*mkdir /etc/wireguard/client1
; 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
*cd /etc/wireguard/client1
*wg genkey > private.key
*cat <<HERE > client1.conf
*wg pubkey > public.key < private.key
;generating the config
cat client1.conf
<pre>
<pre>
[Interface]
[Interface]
Address = 10.79.254.11/24
Address = 10.79.254.11/24
PrivateKey = QMyDROKxxxxxxxxxxxxxxxxxxxxxxxxxx2JWfoCUEM=
PrivateKey = $C_PRIVKEY
DNS = 8.8.8.8
DNS = 8.8.8.8


[Peer]
[Peer]
PublicKey = Vhf9LnpxxxxxxxxxxxxxxxxxxxxxxxxxxxMXT8pa1C8=
PublicKey = $S_PUBKEY
AllowedIPs = 0.0.0.0/0, ::/0
PresharedKey = $PSK
Endpoint = nagu.xment.de:9899
AllowedIPs = 172.16.2xx.0/24, 172.17.2xx.0/24
Endpoint = 192.168.y.1xx:44711
PersistentKeepalive = 25
HERE
</pre>
</pre>
;generate the qrcode
 
= Hier geht es mit QR Code =
; Generiere den QR-Code
*qrencode -t utf8 < client1.conf
*qrencode -t utf8 < client1.conf


=Links=
= 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 =
*https://blog.oxplot.com/wireguard-vpn-on-android/
*https://blog.oxplot.com/wireguard-vpn-on-android/
*https://wiki.debian.org/Wireguard

Aktuelle Version vom 30. Juni 2025, 14:25 Uhr

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