Im dritten Teil beschäftigen wir uns mal mit dem Thema DNS-Leak. Im Wiki steht dazu folgendes.
The vulnerability allows an ISP, as well as any on-path eavesdroppers, to see what websites a user may be visiting. This is possible because the browser's DNS requests are sent to the ISP DNS server directly, and not sent through the VPN.
Ok, für meinen Wireguard-Server in der Hetzner Cloud habe ich dafür den Unbound DNS Dienst benutzt. Das ging dort relativ einfach aber jetzt hier im Heimnetz!? Da ich schon lange einen Proxmox 24/7 laufen habe, stand schnell der Plan das darauf laufen zu lassen. Vorher hatte ich das schnell mit einem ROCKPro64 probiert.
Das schöne an Unbound ist, der ist relativ einfach zu konfigurieren.
Installation
apt install unbound
Konfiguration
Wir legen in cd /etc/unbound/unbound.conf.d/ die Datei user.conf an.
server:
interface: 0.0.0.0
interface: ::0
access-control: 127.0.0.0/8 allow
access-control: 192.168.178.0/24 allow
prefetch: yes
hide-identity: yes
hide-version: yes
qname-minimisation: yes
Das sollte relativ einfach zu verstehen sein. Wir lauschen auf allen Interfaces, der Zugriff ist nur loka (127.0.0.0) und 192.168.178.9/24 erlaubt. Das ist der Adressbereiche, den die Fritz!Box standardmäßig benutzt. Alle anderen Anfragen werden verworfen.
Einmal neustarten und kurz testen...
systemctl restart unbound
Test
frank@frank-MS-7C37:~$ dig @192.168.178.65 google.de
; <<>> DiG 9.16.1-Ubuntu <<>> @192.168.178.65 google.de
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27957
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;google.de. IN A
;; ANSWER SECTION:
google.de. 300 IN A 172.217.23.99
;; Query time: 404 msec
;; SERVER: 192.168.178.65#53(192.168.178.65)
;; WHEN: Sa Apr 02 17:48:09 CEST 2022
;; MSG SIZE rcvd: 54
Das hier zeigt uns, das wir die Antwort vom richtigen Server bekommen.
SERVER: 192.168.178.65#53(192.168.178.65)
Als Vergleich, ohne Angabe vom Server. Das würd den DNS benutzen, der auf meinem Haupt-PC konfiguriert ist.
frank@frank-MS-7C37:~$ dig google.de
; <<>> DiG 9.16.1-Ubuntu <<>> google.de
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17733
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;google.de. IN A
;; ANSWER SECTION:
google.de. 112 IN A 216.58.212.131
;; Query time: 28 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Sa Apr 02 17:49:11 CEST 2022
;; MSG SIZE rcvd: 54
Damit läuft nun der Unbound DNS, jetzt muss man nur noch in der Wireguard die IP-Adresse des DNS-Servers ändern und das Problem mit dem DNS Leak ist Geschichte.
Vor dem Eintragen des Unbound DNS-Servers.
Danach
Es gibt da noch ein kleines Leak im IPv6 Bereich, wo ich mit meinem Systemadministrator in Hamburg nochmal drüber sprechen muss Es ging ohne ihn
Update: Wichtig!
Man muss nicht nur die IPv4 Adresse des DNS-Servers in der App eintragen, sondern auch die IPv6 Adresse. Er würde sonst immer noch den DNS-Servers des ISP benutzen, weil ja mittlerweile viele Anwendungen IPv6 bevorzugen. Das könnt ihr auch gut mit dieser Seite testen.
ipleak.net
Part 1 -> https://linux-nerds.org/topic/1164/wireguard-tunnel-zur-fritz-box-6591-cable-part-1
Part 2 -> https://linux-nerds.org/topic/1165/wireguard-tunnel-zur-fritz-box-6591-cable-part-2
Part 4 -> https://linux-nerds.org/topic/1167/wireguard-tunnel-zur-fritz-box-6591-cable-part-4-adblocker