Skip to content

Quartz64 - Wireguard

Verschoben Quartz64
  • Nachdem ich jetzt zwei Stunden mit WLAN verplempert habe, ja einige die hier mitlesen werden wissen, das ist nicht mein Lieblingsthema, somit mal was mit Erfolgsgarantie 😊

    Image

    Manjaro Image

    [root@quartz64 ~]# uname -a
    Linux quartz64 5.13.0-rc4-0.6-next-20210603-MANJARO-ARM #1 SMP PREEMPT Sat Jul 3 16:52:43 UTC 2021 aarch64 GNU/Linux
    

    Software

    Da Wireguard ja schon was länger im Kernel ist, brauchen wir uns um das Kernelmodul schon mal nicht kümmern.

    Was brauchen wir sonst noch?

    wireguard-tools

    [root@quartz64 ~]# pacman -S wireguard-tools
    Abhängigkeiten werden aufgelöst …
    Nach in Konflikt stehenden Paketen wird gesucht …
    
    Pakete (1) wireguard-tools-1.0.20210424-1
    
    Gesamtgröße des Downloads:             0,09 MiB
    Gesamtgröße der installierten Pakete:  0,26 MiB
    
    :: Installation fortsetzen? [J/n] 
    :: Pakete werden empfangen …
     wireguard-tools-1.0.20210424-1-aarch64                                                                      92,3 KiB   125 KiB/s 00:01 [##################################################################################] 100%
    (1/1) Schlüssel im Schlüsselbund werden geprüft                                                                                         [##################################################################################] 100%
    (1/1) Paket-Integrität wird überprüft                                                                                                   [##################################################################################] 100%
    (1/1) Paket-Dateien werden geladen                                                                                                      [##################################################################################] 100%
    (1/1) Auf Dateikonflikte wird geprüft                                                                                                   [##################################################################################] 100%
    (1/1) Verfügbarer Festplattenspeicher wird ermittelt                                                                                    [##################################################################################] 100%
    :: Paketänderungen werden verarbeitet …
    (1/1) Installation läuft wireguard-tools                                                                                                [##################################################################################] 100%
    Optionale Abhängigkeiten für wireguard-tools
        openresolv: for DNS functionality
        sudo: elevate privileges [Installiert]
    :: Post-transaction-Hooks werden gestartet …
    (1/2) Reloading system manager configuration...
    (2/2) Arming ConditionNeedsUpdate...
    

    Mein erster Test brachte dann ein Problem zum Vorschein

    [#] resolvconf -a wg0 -m 0 -x
    /usr/bin/wg-quick: line 32: resolvconf: command not found
    

    Ok, der aufmerksame Leser wird feststellen, das das bei der Installation von wireguard-tools schon angezeigt wurde.

    Optionale Abhängigkeiten für wireguard-tools
        openresolv: for DNS functionality
    

    Also installieren 🙂

    resolvconf

    [root@quartz64 ~]# pacman -S resolvconf
    :: Es stehen 2 Anbieter für resolvconf zur Verfügung:
    :: Repositorium core
       1) openresolv  2) systemd-resolvconf
    
    Geben Sie eine Zahl ein (Voreinstellung=1): 
    Abhängigkeiten werden aufgelöst …
    Nach in Konflikt stehenden Paketen wird gesucht …
    
    Pakete (1) openresolv-3.12.0-1
    
    Gesamtgröße des Downloads:             0,02 MiB
    Gesamtgröße der installierten Pakete:  0,06 MiB
    
    :: Installation fortsetzen? [J/n] 
    :: Pakete werden empfangen …
     openresolv-3.12.0-1-any                                                                                     22,5 KiB  54,9 KiB/s 00:00 [##################################################################################] 100%
    (1/1) Schlüssel im Schlüsselbund werden geprüft                                                                                         [##################################################################################] 100%
    (1/1) Paket-Integrität wird überprüft                                                                                                   [##################################################################################] 100%
    (1/1) Paket-Dateien werden geladen                                                                                                      [##################################################################################] 100%
    (1/1) Auf Dateikonflikte wird geprüft                                                                                                   [##################################################################################] 100%
    (1/1) Verfügbarer Festplattenspeicher wird ermittelt                                                                                    [##################################################################################] 100%
    :: Paketänderungen werden verarbeitet …
    (1/1) Installation läuft openresolv                                                                                                     [##################################################################################] 100%
    :: Post-transaction-Hooks werden gestartet …
    (1/1) Arming ConditionNeedsUpdate...
    

    Manjaro bietet hier zwei Dienste an, ich habe mich mal für openresolv entschieden.

    Wireguard-Verbindung aufbauen

    root@quartz64 ~]# wg-quick up wg0
    [#] ip link add wg0 type wireguard
    [#] wg setconf wg0 /dev/fd/63
    [#] ip -4 address add 10.10.1.15 dev wg0
    [#] ip -6 address add 2a01:4f8:xxx:xxxx:100::15 dev wg0
    [#] ip link set mtu 1420 up dev wg0
    [#] resolvconf -a 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
    [#] ip6tables-restore -n
    [#] 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
    [#] iptables-restore -n
    [root@quartz64 ~]# wg
    interface: wg0
      public key: n8U3Rtl3F0ZdjFW2Zoilmxxxxxxxxxxxxxxxxxxxxxxxxxxxx
      private key: (hidden)
      listening port: 51820
      fwmark: 0xca6c
    
    peer: Bda7jOcCqXKQerSxxxxxxxxxxxxxxxxxxxxxxxxxxxx
      preshared key: (hidden)
      endpoint: 88.xxx.xx.xx:51820
      allowed ips: 0.0.0.0/0, ::/0
      latest handshake: 4 seconds ago
      transfer: 92 B received, 324 B sent
    

    Funktioniert! 🤗

    Auf die Konfiguration möchte ich hier nicht näher eingehen, dazu findet ihr hier im Forum genug Beiträge von mir.

  • FrankMF FrankM verschob dieses Thema von Quartz64 am
  • FrankMF FrankM verschob dieses Thema von Quartz64 - A am

  • Quartz64 - Modell B - Kernelversionen

    Images
    1
    0 Stimmen
    1 Beiträge
    108 Aufrufe
    Niemand hat geantwortet
  • 0 Stimmen
    1 Beiträge
    296 Aufrufe
    Niemand hat geantwortet
  • Quartz64 - SPDIF Modul

    Verschoben Quartz64 - A
    2
    0 Stimmen
    2 Beiträge
    213 Aufrufe
    FrankMF

    Für das bequeme Umschalten der Soundkarten kann man das Tool alsamixer benutzen.

    pacman -S alsa-utils

    Danach

    alsamixer

    e912744f-8f69-4b28-a50b-7ffc8a3ab399-grafik.png

  • Quartz64 - Modell A lieferbar

    Verschoben Quartz64
    4
    0 Stimmen
    4 Beiträge
    268 Aufrufe
    FrankMF

    Durch den Zoll ist es auch...

    aa906c24-2e67-404d-aad2-69fe1832229b-grafik.png

  • Wichtige Links zum Quartz64

    Angeheftet Verschoben Quartz64
    1
    0 Stimmen
    1 Beiträge
    214 Aufrufe
    Niemand hat geantwortet
  • Wireguard - Client installieren

    Wireguard
    3
    0 Stimmen
    3 Beiträge
    469 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 - Traffic routen

    Wireguard
    2
    0 Stimmen
    2 Beiträge
    1k Aufrufe
    FrankMF

    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

    Verschoben Wireguard
    4
    0 Stimmen
    4 Beiträge
    780 Aufrufe
    FrankMF

    Etwas schnellerer Weg den Tunnel aufzubauen, Voraussetzung

    wireguard modul installiert Keys erzeugt

    Danach dann einfach

    ip link add wg0 type wireguard wg setconf wg0 /etc/wireguard/wg0.conf Datei /etc/wireguard/wg0.conf [Interface] PrivateKey = <Private Key> ListenPort = 60563 [Peer] PublicKey = <Public Key Ziel> Endpoint = <IPv4 Adresse Zielrechner>:58380 AllowedIPs = 10.10.0.1/32

    Die Rechte der Dateien von wireguard müssen eingeschränkt werden.

    sudo chmod 0600 /etc/wireguard/wg0.conf

    Das ganze per rc.local beim Booten laden. Datei /root/wireguard_start.sh

    ############################################################################################### # Autor: Frank Mankel # Startup-Script # Wireguard # Kontakt: frank.mankel@gmail.com # ############################################################################################### ip link add wg0 type wireguard ip address add dev wg0 10.10.0.1/8 wg setconf wg0 /etc/wireguard/wg0.conf ip link set up dev wg0

    Danach Datei ausführbar machen

    chmod +x /root/wireguard_start.sh

    In rc.local

    /root/wireguard_start.sh

    eintragen - Fertig!