Skip to content

Wireguard - wg-quick

Wireguard
  • Es gibt auch einen wesentlich einfachere Möglichkeit einen Wireguard Tunnel zu starten. z.B. auf einem Notebook sehr praktisch, wenn man mal in einem fremden WLan unterwegs ist.

    Ich setze voraus, das der Wireguard-Server läuft! Meine Beispiele beruhen auf Debian Buster 10.3

    In /etc/wireguard liegen folgende Dateien.

    root@debian:/etc/wireguard# ls -l
    insgesamt 16
    -rw-r--r-- 1 root root  45 Apr  3 15:18 private.key
    -rw-r--r-- 1 root root  45 Apr  5 15:04 psk.key
    -rw-r--r-- 1 root root  45 Apr  3 15:19 public.key
    -rw-r--r-- 1 root root 365 Apr  5 15:11 wg0.conf
    

    Keys erzeugen:

    private.key erzeugen

    root@rp64_nextcloud:/etc/wireguard# wg genkey > private.key
    Warning: writing to world accessible file.
    Consider setting the umask to 077 and trying again.
    

    public.key erzeugen

    root@rp64_nextcloud:/etc/wireguard# wg pubkey > public.key < private.key
    

    psk.key erzeugen

    root@rp64_nextcloud:/etc/wireguard# wg genpsk > psk.key
    

    psk.key

    Der psk.key muss auf dem Server und auf dem Client gleich sein. Dieser psk.key dient der zusätzlichen Sicherheit. Im Whitpaper steht dazu folgendes:

    In order to mitigate any futureadvances in quantum computing, WireGuard also supports a mode in which any pair of peers mightadditionallypre-share a single 256-bit symmetric encryption key between themselves, in order to add an additional layer ofsymmetric encryption.

    Ok, wieder vergessen. Wir müssen nur wissen, das die beide gleich sein müssen.

    wg0.conf

    Fehlt noch die Config.

    [Interface]
    Address = 10.10.1.2
    PrivateKey = <private Key>
    ListenPort = 51820
    DNS = 10.10.1.1
    
    [Peer]
    Endpoint = <Server IP>:51820
    PublicKey = <public Key> vom Server!!
    PresharedKey = <preshared Key> Client und Server gleich!
    AllowedIPs = 0.0.0.0/0, ::/0
    

    Das [Interface] definiert die Schnittstelle. Hier setzen wir ein IP Adresse und den Port. Dazu gebe ich noch an, wo der DNS-Server liegt. Auf meinem Wireguard Server läuft da extra einer, dient der Sicherheit die wirkliche IP-Adresse nicht zu leaken.

    Das [Peer] definiert jetzt den Teilnehmer, hier unseren Wireguard Server. Wir sagen Wireguard wo er den Server findet und zum Schluß noch bei AllowedIPs was er machen soll. In diesem Beispiel tunnelt er sämtlichen Traffic zum Wireguard Server.

    wg-quick

    Damit kann man jetzt schnell die Schnittstelle wg0 starten.

    Start

    wg-quick up wg0
    

    Stop

    wg-quick down wg0
    

    Beispiel

    root@thinkpad:/etc/wireguard# wg-quick up wg0
    [#] ip link add wg0 type wireguard
    [#] wg setconf wg0 /dev/fd/63
    [#] ip -4 address add 10.10.1.11/24 dev wg0
    [#] ip -6 address add 2a01:xxxxxxxxxxxxx::11/72 dev wg0
    [#] ip link set mtu 1420 up dev wg0
    [#] resolvconf -a tun.wg0 -m 0 -x
    [#] wg set wg0 fwmark 51820
    [#] ip -6 route add ::/0 dev wg0 table 51820
    [#] ip -6 rule add not fwmark 51820 table 51820
    [#] ip -6 rule add table main suppress_prefixlength 0
    [#] nft -f /dev/fd/63
    [#] ip -4 route add 0.0.0.0/0 dev wg0 table 51820
    [#] ip -4 rule add not fwmark 51820 table 51820
    [#] ip -4 rule add table main suppress_prefixlength 0
    [#] sysctl -q net.ipv4.conf.all.src_valid_mark=1
    [#] nft -f /dev/fd/63
    
    root@thinkpad:/etc/wireguard# wg-quick down wg0
    [#] ip -4 rule delete table 51820
    [#] ip -4 rule delete table main suppress_prefixlength 0
    [#] ip -6 rule delete table 51820
    [#] ip -6 rule delete table main suppress_prefixlength 0
    [#] ip link delete dev wg0
    [#] resolvconf -d tun.wg0 -f
    [#] nft -f /dev/fd/63
    root@thinkpad:/etc/wireguard# 
    

    Hier sieht man erst den Start und dann den Stop der Schnittstelle wg0. Mir fehlte auf einem Rechner noch das Paket resolvconf. Das kann man mit

    apt install resolvconf
    

    schnell mal installieren. Das braucht man, sonst kommt eine Fehlermeldung.

    Test der Verbindung

    Und dann kann man schauen ob die Verbindung steht.

    root@thinkpad:/etc/wireguard# wg
    interface: wg0
      public key: <public Key>
      private key: (hidden)
      listening port: 51820
      fwmark: 0xca6c
    
    peer: <public Key> vom Server
      preshared key: (hidden)
      endpoint: <Server IP>:51820
      allowed ips: 0.0.0.0/0, ::/0
      latest handshake: 4 seconds ago
      transfer: 1.37 KiB received, 2.36 KiB sent
    

    Wichtig ist der latest handshake, daran kann man sehen ob der Tunnel steht. Und bei allem was man macht ändern sich natürlich die Transfer Daten.

  • Wireguard - Tunnel zur Fritz!Box 6591 Cable Part 4 (Adblocker)

    Angeheftet Wireguard
    1
    0 Stimmen
    1 Beiträge
    332 Aufrufe
    Niemand hat geantwortet
  • Wireguard - Tunnel zur Fritz!Box 6591 Cable Part 2

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

    Wireguard
    1
    0 Stimmen
    1 Beiträge
    245 Aufrufe
    Niemand hat geantwortet
  • Wireguard - Client installieren

    Wireguard
    3
    0 Stimmen
    3 Beiträge
    574 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 😉

  • ROCKPro64 - Kernel 5.6 und Wireguard 1.0

    ROCKPro64
    1
    0 Stimmen
    1 Beiträge
    306 Aufrufe
    Niemand hat geantwortet
  • Wireguard - QRCode

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

    Wireguard
    2
    0 Stimmen
    2 Beiträge
    590 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 - Links

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