Skip to content

Wireguard - Traffic routen

Wireguard
  • Ich gehe davon aus, das der Wireguard-Tunnel steht. Wenn nicht, geht es hier weiter.

    Ausgangslage

    Wir haben einen konfigurierten Server, der die Kommunikation mit dem Clienten zulässt. Der Server hat hier mal die IP 8.8.8.8 und mein Gateway im LAN hat die IP 192.168.1.1.

    Quelle: https://www.wireguard.com/netns/

    Wir löschen die default Route.

    ip route del default
    

    Wir machen das wg0 Device zum default Device.

    ip route add default dev wg0
    

    Wir setzen die entsprechende Route

    ip route add 8.8.8.8/32 via 192.168.1.1 dev eth0
    

    Ich denke das sollte für jeden verständlich sein. Nach einem Reboot ist die default Route wieder die Alte. Es würde sich also anbieten das mit einem Script oder ähnlichem zu automatisieren. Ich reiche das nach, das muss erst mal so reichen.

    Mit https://www.wieistmeineip.de/ kann man dann die IP-Adresse vorher und nachher testen. Aber das kennt ihr ja 😉

    Ich muss mich damit noch was intensiver beschäftigen, gut das man Urlaub hat 🙂

  • Wie ich bei meinem Hamburger Systemadministrator gelernt habe, geht das auch wesentlich einfacher. Dafür hat Wireguard einen netten Befehl schon parat, nennt sich

    wg-quick up wg0-client
    

    Dazu muss auf dem Client natürlich vorher alles konfiguriert sein. Das Verzeichnis /etc/wireguard sieht dann so aus.

    root@thinkpad:/etc/wireguard# ls -lha /etc/wireguard/
    insgesamt 32K
    drwx------   2 root root 4,0K Aug 16 08:47 .
    drwxr-xr-x 141 root root  12K Aug 16 08:47 ..
    -rw-r--r--   1 root root   45 Aug  9 16:48 private.key
    -rw-r--r--   1 root root   45 Aug  9 16:48 psk.key
    -rw-r--r--   1 root root   45 Aug  9 16:48 public.key
    -rw-r--r--   1 root root  275 Aug 16 08:47 wg0-client.conf
    

    Die drei Schlüssel sind also vorhanden, der Server ist auch entsprechend vorbereitet. Dann brauchen wir auf dem Clienten noch die wg0-client.conf mit folgendem Inhalt.

    [Interface]
    Address = 10.10.0.4/32
    PrivateKey = oM9jWxxxxxxxxxxxxxxxxxxxxxxxxxxxtS4vW8=
    ListenPort = 50xxx
    DNS = 10.10.0.2
    
    
    [Peer]
    PublicKey = fGg7MxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxTPRqqzU=
    Endpoint = 136.xxx.xxx.xxx:60xxx
    AllowedIPs = 0.0.0.0/0
    PersistentKeepalive = 21
    

    Im ersten Teil [Interface] wird die Schnittstelle auf dem Clienten konfiguriert.

    • Die Adresse des Clienten
    • Privatekey, findet man in /etc/wireguard/private.key
    • Den Port für die Wireguard Kommunikation, frei wählbar.
    • Der DNS-Server, ist hier mein Wireguard-Server, der einen DNS Dienst bereit hält.

    Im zweiten Teil [Peer] wird die Verbindung zum Server konfiguriert.

    • PublicKey, der PublicKey des Servers.
    • Endpoint, ist die IP-Adresse des Servers.
    • AllowedIPs 0.0.0./0 wird den gesamten IPv4 Verkehr über den Tunnel routen.
    • Dient dazu , die Verbindung aufrecht zu erhalten?

    Mit

    wg-quick up wg0-client
    

    baut er nun die Verbindung auf.

    root@thinkpad:/etc/wireguard# wg-quick up wg0-client
    [#] ip link add wg0-client type wireguard
    [#] wg setconf wg0-client /dev/fd/63
    [#] ip -4 address add 10.10.0.4/32 dev wg0-client
    [#] ip link set mtu 1420 up dev wg0-client
    [#] resolvconf -a tun.wg0-client -m 0 -x
    [#] wg set wg0-client fwmark 51xxx
    [#] ip -4 route add 0.0.0.0/0 dev wg0-client table 51xxx
    [#] ip -4 rule add not fwmark 51xxx table 51xxx
    [#] ip -4 rule add table main suppress_prefixlength 0
    root@thinkpad:/etc/wireguard# 
    

    Damit steht der Tunnel

    9: wg0-client: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
        link/none 
        inet 10.10.0.4/32 scope global wg0-client
           valid_lft forever preferred_lft forever
    

    Ausschalten

    root@thinkpad:/etc/wireguard# wg-quick down wg0-client
    [#] ip -4 rule delete table 51xxx
    [#] ip -4 rule delete table main suppress_prefixlength 0
    [#] ip link delete dev wg0-client
    [#] resolvconf -d tun.wg0-client
    

    Auf meinem Debian 10 Buster ging das erst so nicht, weil ein Paket fehlt.

    root@thinkpad:/etc/wireguard# wg-quick up wg0-client
    [#] ip link add wg0-client type wireguard
    [#] wg setconf wg0-client /dev/fd/63
    [#] ip -4 address add 10.10.0.4/32 dev wg0-client
    [#] ip link set mtu 1420 up dev wg0-client
    [#] resolvconf -a wg0-client -m 0 -x
    /usr/bin/wg-quick: line 31: resolvconf: command not found
    [#] ip link delete dev wg0-client
    

    Wireguard ist so nett und schreibt alles rein 😉 Eine Installation von resolcconf löst das Problem.

     root@thinkpad:/etc/wireguard# apt install resolvconf
     Paketlisten werden gelesen... Fertig
     Abhängigkeitsbaum wird aufgebaut.       
     Statusinformationen werden eingelesen.... Fertig
     Die folgenden NEUEN Pakete werden installiert:
       resolvconf
     0 aktualisiert, 1 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
     Es müssen 74,2 kB an Archiven heruntergeladen werden.
     Nach dieser Operation werden 196 kB Plattenplatz zusätzlich benutzt.
    [gekürzt]     
    

    Nun kann man den Tunnel mit zwei einfachen Befehlen auf- und wieder abbauen. Als nächstes kommt dann noch die IPv6 Erweiterung, weil im Moment IPv6 Traffic am Tunnel vorbei fliessen würde, wenn man eine öffentliche IPv6 Adresse zugewiesen bekommen hätte. Aber, das muss ich mir noch ein wenig erklären lassen 🙂

  • Wireguard - Tunnel zur Fritz!Box 6591 Cable Part 2

    Angeheftet Wireguard
    1
    0 Stimmen
    1 Beiträge
    367 Aufrufe
    Niemand hat geantwortet
  • Wireguard auf dem Smartphone

    Wireguard
    1
    0 Stimmen
    1 Beiträge
    250 Aufrufe
    Niemand hat geantwortet
  • Redis Replication über Wireguard

    Redis
    5
    0 Stimmen
    5 Beiträge
    424 Aufrufe
    K

    👍
    spart bischen zeit

  • Wireguard - Client installieren

    Wireguard
    3
    0 Stimmen
    3 Beiträge
    588 Aufrufe
    FrankMF

    Ich kann dir nicht ganz folgen. Mein Wireguard Server ist eine VM im Netz. Mein Smartphone baut zu diesem eine Verbindung auf und ich habe mal eben nachgeschaut, was da so geht. Mein Smartphone ist aktuell im meinem WLan angemeldet.

    6e0016dc-7e11-41e1-bba2-e52a3f1348df-image.png

    iperf3 -s -B 10.10.1.1 ----------------------------------------------------------- Server listening on 5201 ----------------------------------------------------------- Accepted connection from 10.10.1.10, port 44246 [ 5] local 10.10.1.1 port 5201 connected to 10.10.1.10 port 44248 [ ID] Interval Transfer Bitrate [ 5] 0.00-1.00 sec 4.98 MBytes 41.7 Mbits/sec [ 5] 1.00-2.00 sec 5.52 MBytes 46.3 Mbits/sec [ 5] 2.00-3.00 sec 4.80 MBytes 40.3 Mbits/sec [ 5] 3.00-4.00 sec 4.17 MBytes 35.0 Mbits/sec [ 5] 4.00-5.00 sec 5.04 MBytes 42.3 Mbits/sec [ 5] 5.00-6.00 sec 5.43 MBytes 45.6 Mbits/sec [ 5] 6.00-7.00 sec 5.75 MBytes 48.3 Mbits/sec [ 5] 7.00-8.00 sec 5.70 MBytes 47.8 Mbits/sec [ 5] 8.00-9.00 sec 5.73 MBytes 48.1 Mbits/sec [ 5] 9.00-10.00 sec 5.65 MBytes 47.4 Mbits/sec [ 5] 10.00-10.04 sec 206 KBytes 46.5 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate [ 5] 0.00-10.04 sec 53.0 MBytes 44.3 Mbits/sec receiver ----------------------------------------------------------- Server listening on 5201 ----------------------------------------------------------- Accepted connection from 10.10.1.10, port 44250 [ 5] local 10.10.1.1 port 5201 connected to 10.10.1.10 port 44252 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-1.00 sec 4.80 MBytes 40.2 Mbits/sec 0 253 KBytes [ 5] 1.00-2.00 sec 14.7 MBytes 123 Mbits/sec 181 379 KBytes [ 5] 2.00-3.00 sec 9.68 MBytes 81.2 Mbits/sec 58 294 KBytes [ 5] 3.00-4.00 sec 8.88 MBytes 74.5 Mbits/sec 1 227 KBytes [ 5] 4.00-5.00 sec 7.76 MBytes 65.1 Mbits/sec 0 245 KBytes [ 5] 5.00-6.00 sec 8.88 MBytes 74.5 Mbits/sec 0 266 KBytes [ 5] 6.00-7.00 sec 9.81 MBytes 82.3 Mbits/sec 0 289 KBytes [ 5] 7.00-8.00 sec 7.82 MBytes 65.6 Mbits/sec 35 235 KBytes [ 5] 8.00-9.00 sec 5.59 MBytes 46.9 Mbits/sec 4 186 KBytes [ 5] 9.00-10.00 sec 6.64 MBytes 55.7 Mbits/sec 0 207 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-10.04 sec 84.6 MBytes 70.6 Mbits/sec 279 sender ----------------------------------------------------------- Server listening on 5201 ----------------------------------------------------------- ^Ciperf3: interrupt - the server has terminated

    Im zweiten Teil ist der Wireguard Server der Sender.

    Bis jetzt hatte ich eigentlich nie Probleme, auch nicht unterwegs. Aber, ich gehe davon aus, das ich dich nicht 100% verstanden habe 😉

  • Wireguard 1.0.0

    Wireguard
    1
    0 Stimmen
    1 Beiträge
    268 Aufrufe
    Niemand hat geantwortet
  • Wireguard - DNS für VPN-Server

    Wireguard
    2
    0 Stimmen
    2 Beiträge
    602 Aufrufe
    FrankMF

    Und mit wg auf dem Server kann man schön nachsehen, wie viel Daten da so durchlaufen.

    root@amadeus ~ # wg interface: wg0 public key: fGg7MkjzD6fVqxxxxxxxxxxxxxxxxxGa0NIBaTPRqqzU= private key: (hidden) listening port: 60563 peer: bDTE7Kr7Uw/Xxxxxxxxxxxxxxxxxxxxx46uHFZErWz8SGgI= endpoint: xx.xxx.194.117:58702 allowed ips: 10.10.0.3/32 latest handshake: 14 seconds ago transfer: 56.55 MiB received, 287.67 MiB sent
  • Wireguard - Failed to parse netdev kind, ignoring: wireguard

    Wireguard
    1
    0 Stimmen
    1 Beiträge
    368 Aufrufe
    Niemand hat geantwortet
  • Wireguard - Links

    Angeheftet Wireguard
    1
    0 Stimmen
    1 Beiträge
    291 Aufrufe
    Niemand hat geantwortet