Frage zu Wireguard config: DNS und allowed IPs
Hallo,
ich habe unter Docker einen Wireguard Server eingerichtet. Läuft...
Meine aktuelle conf eines Peers sieht z.B. so aus:
Frage: Werden die DNS Server der Variable "DNS" als Fallback genutzt? Also immer 5.9.164.112 und falls der nicht erreichbar ist der nächste in der Liste? Oder der schnellste?
Ich möchte nämlich folgendes machen:
1. In der DNS Liste soll die IP eine AdguardHome DNS an 1. Stelle stehen. Dieser Server soll immer primär angefragt werden, nur wenn der nicht erreichbar wäre, dann ein anderer aus der Liste. Geht das?
2. Wenn ich will, dass diese Verbindung nur von dem Wireguard Dockerserver aufgebaut werden kann, trage ich unter Peer => Allowed IPs nur die öffentliche IP meines Dockerserver ein (die normalerweise hier unter Endpoint stehen würde, richtig? Es soll dann der ganze Traffic darüber laufen.
3. Muss ich an der Wg0.conf des Wireguard Servers auch was ändern?
4. Könnte ich also 2 verschiedene Peers auf einem Gerät anlegen? 1x mit der Konfiguration oben, ohne Werbefilterung, 1x mit der neuen, die nur über den Adguard geht und filtert?
Danke für Feedback.
ich habe unter Docker einen Wireguard Server eingerichtet. Läuft...
Meine aktuelle conf eines Peers sieht z.B. so aus:
[Interface]
Address = 10.13.13.2
PrivateKey = extremgeheim=
ListenPort = 51820
DNS = 5.9.164.112,185.95.218.42,185.95.218.43,84.200.69.80,9.9.9.9,1.1.1.1
[Peer]
PublicKey = extremgeheim=
PresharedKey = extremgeheim=
Endpoint = xxx.xxx.xxx.xxx:51820
AllowedIPs = 0.0.0.0/0,::/0
Frage: Werden die DNS Server der Variable "DNS" als Fallback genutzt? Also immer 5.9.164.112 und falls der nicht erreichbar ist der nächste in der Liste? Oder der schnellste?
Ich möchte nämlich folgendes machen:
1. In der DNS Liste soll die IP eine AdguardHome DNS an 1. Stelle stehen. Dieser Server soll immer primär angefragt werden, nur wenn der nicht erreichbar wäre, dann ein anderer aus der Liste. Geht das?
2. Wenn ich will, dass diese Verbindung nur von dem Wireguard Dockerserver aufgebaut werden kann, trage ich unter Peer => Allowed IPs nur die öffentliche IP meines Dockerserver ein (die normalerweise hier unter Endpoint stehen würde, richtig? Es soll dann der ganze Traffic darüber laufen.
3. Muss ich an der Wg0.conf des Wireguard Servers auch was ändern?
4. Könnte ich also 2 verschiedene Peers auf einem Gerät anlegen? 1x mit der Konfiguration oben, ohne Werbefilterung, 1x mit der neuen, die nur über den Adguard geht und filtert?
Danke für Feedback.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 669926
Url: https://administrator.de/forum/frage-zu-wireguard-config-dns-und-allowed-ips-669926.html
Ausgedruckt am: 08.01.2025 um 04:01 Uhr
16 Kommentare
Neuester Kommentar
Zitat von @U08154711:
Meine aktuelle conf eines Peers sieht z.B. so aus:
Ein IPv6 redirect (::/0) in den AllowedIPs macht ohne IPv6 Adresse im Tunnel keinen Sinn! Des weiteren macht die "ListenPort" Direktive in einer Client-Config nur Sinn wenn sich hier am Client selbst auch Peers aktiv einwählen.Meine aktuelle conf eines Peers sieht z.B. so aus:
[Interface]
Address = 10.13.13.2
PrivateKey = extremgeheim=
ListenPort = 51820
DNS = 5.9.164.112,185.95.218.42,185.95.218.43,84.200.69.80,9.9.9.9,1.1.1.1
[Peer]
PublicKey = extremgeheim=
PresharedKey = extremgeheim=
Endpoint = xxx.xxx.xxx.xxx:51820
AllowedIPs = 0.0.0.0/0,::/0
Frage: Werden die DNS Server der Variable "DNS" als Fallback genutzt? Also immer 5.9.164.112 und falls der nicht erreichbar ist der nächste in der Liste? Oder der schnellste?
Das kommt auf das ClientOS an dem du die Config verpasst. Auf einem Linux werden die DNS Server der resolv.conf in der Reihenfolge hinzugefügt wie sie auch in der Wireguard Config stehen. Dann werden die DNS-Server dort der Reihe nach angefragt wenn der erste Antwortet werden die anderen nicht mehr gefragt. Erst wenn der erste nicht mehr antwortet geht es zum nächsten usw. Wenn aber der DNS Server der schon vor der WG Verbindung in der resolv.conf steht antwortet, wird dieser benutzt sofern er antwortet, die anderen zusätzlich hinzugefügten erst wenn der nicht mehr antwortet.Ich möchte nämlich folgendes machen:
1. In der DNS Liste soll die IP eine AdguardHome DNS an 1. Stelle stehen. Dieser Server soll immer primär angefragt werden, nur wenn der nicht erreichbar wäre, dann ein anderer aus der Liste. Geht das?
Ja, Erläuterung im letzten Absatz lesen, dann weist du auch wie .1. In der DNS Liste soll die IP eine AdguardHome DNS an 1. Stelle stehen. Dieser Server soll immer primär angefragt werden, nur wenn der nicht erreichbar wäre, dann ein anderer aus der Liste. Geht das?
2. Wenn ich will, dass diese Verbindung nur von dem Wireguard Dockerserver aufgebaut werden kann, trage ich unter Peer => Allowed IPs nur die öffentliche IP meines Dockerserver ein (die normalerweise hier unter Endpoint stehen würde, richtig? Es soll dann der ganze Traffic darüber laufen.
Nein, in den AllowedIPs stehen immer nur die IPs drin von welchen Traffic innerhalb des Tunnels erwartet wird.Wenn man eine Wireguard-Verbindung nur von einem bestimmten Host erlauben will, trägt man diesen mit seinem Hostnamen oder IP in das Endpoint-Feld ein.
3. Muss ich an der Wg0.conf des Wireguard Servers auch was ändern?
Ja da kommt dann die IP des Clients in den Endpoint rein rein wenn du diesen nur von einer bestimmten IP zulassen willst.4. Könnte ich also 2 verschiedene Peers auf einem Gerät anlegen? 1x mit der Konfiguration oben, ohne Werbefilterung, 1x mit der neuen, die nur über den Adguard geht und filtert?
Ja, kein Problem.Mal hier gründlich durchlesen hilft fürs Verständnis: Merkzettel: VPN Installation mit Wireguard
Zitat von @aqui:
Vielleicht kann man noch hinzufügen das bei Verwendung von Keys es ziemlich überflüssig ist zusätzlich noch einen Preshared Key zu verwenden. Den kannst du auch weglassen.
Sagen wir mal so, überflüssig ist es so lange der Angreifer noch über keinen Post-Quantencomputer verfügt. Wie lange das noch dauert und ob der Angreifer bis dahin den aufgelaufenen Traffic schon abschnorchelt und auf Halde parkt und ob sich das Ziel überhaupt lohnt, ist eine andere Frage .Vielleicht kann man noch hinzufügen das bei Verwendung von Keys es ziemlich überflüssig ist zusätzlich noch einen Preshared Key zu verwenden. Den kannst du auch weglassen.
Nach Euren Antworten kann ich ja dann alles so lassen, wie es aktuell ist
Nein, denn dein ganzer Zoo von zahllosen DNS Server wäre dann falsch und auch kontraproduktiv. Scheinbar hast du auch das dir oben gepostete Wireguard Tutorial nicht gelesen oder nicht verstanden zum Thema DNS. Nochmal: Die DNS Angabe in der Client Konfig bewirkt das der Client bei aktivem VPN Tunnel (und auch nur dann!) den konfigurierten DNS Server des jeweiligen Betriebssystems mit dem im WG Client Setup überschreibt so das dann nur dieser DNS verwendet wird wenn der VPN Tunnel aktiv ist.
Das kannst du auch sehr schön selber einmal prüfen wenn du einen DNS Server angegeben hast bei aktivem VPN Tunnel einmal z.B. ein nslookup www.heise.de eingibst. Dort wird dir dann der aktiv verwendete DNS Server angezeigt. Kennst du als Linux Profi ja auch selber?!
Normalerweise benötigt man eine DNS Angabe im WG Client Setup nicht und kann diese weglassen. Der Client benutzt dann weiter den aktuellen DNS des jeweiligen Betriebssystems. (/etc/resolv.conf bei deinem Linux)
In deinem Falle willst du ja den DNS Filter auch mit deinem VPN Client benutzen wenn dieser aktiv ist, was ja auch sinnvoll ist um Werbe- und Malware frei zu sein.
Hier ist natürlich dann immer deine Adguard IP Adresse anzugeben, damit der Client bei aktivem VPN Tunnel deinen Adguard benutzt. Kannst du auch wieder mit nslookup checken.
in der Firewall einstellen, dass auf den entsprechenden Ports, die Adguard nutzt, nur Anfragen vom Wireguard Server zugelassen werden.
Das wäre ziemlicher Blödsinn, denn die DNS Anfragen der VPN Clients kommen doch niemals vom WG Server sondern immer von den VPN Clients. Auch das kannst du wieder selber sehen wenn du außer der Prüfung mit nslookup oben zusätzlich einmal ein tcpdump -i eth0 port 53 auf deinem Adguard ausführst und dann einmal nachsiehst WER ihm die DNS Anfragen bei aktivem VPN Tunnel schickt. Dort wirst du dann logischerweise immer die Absender IPs der Clients aus dem internen VPN IP Netz sehen! Bei dir also das 10.13.13.0/24 IP Netz was du zudem oben in deinem Setup falsch, da ohne Subnetzmaske, eingerichtet hast!Eine korrekte Beispielkonfig für einen Client mit einem Redirect Setup sähe dann so aus:
[Interface]
Address = 10.13.13.2/24
PrivateKey = OMjSCv6e/iXECZwq0ZVL5Ywf/KzZvdsGpYKv1512345=
DNS = 192.168.10.53 (--> IP Adresse Adguard)
[Peer]
PublicKey = cA+mynt84tVH1gPaUN66E8K0nfzvpsQMohrEbz54321=
Endpoint = X.Y.Z.H:51820
# Endpoint = router.ddns.de:51820 (--> wenn DDNS Host verwendet wird)
AllowedIPs = 0.0.0.0/0
PersistentkeepAlive = 25
- Listen Port anzugeben beim Client ist falsch und auch unsinnig
- Subnetzmaske an Client IP Setup fehlt
- DNS Server nur deinen Adguard angeben
Und bitte wirklich einmal in aller Ruhe das Wireguard Tutorial lesen und verstehen! Dort ist alles haarklein erklärt! 🧐
Sag ich ja oben.
Fragt sich dann warum du sage und schreibe 6 Adguards defineirt hast?! Wie kann der Server, auf dem Adguard läuft, die interne IP aus dem WG Netzwerk eines anderen Server sehen.
Wireguard ist bekanntlich ein geroutetes VPN! Folglich siehst du dann am Adguard Server logischerweise auch die gerouteten DNS Anfragen der WG Clients mit ihren WG Absender IPs. Bei dir also alles 10.13.13.x IPs sofern der VPN Tunnel aktiv ist. Bei deinem Linux zeigt dir ein ip a die WG IP Adresse des Tunnelinterfaces an. (Bei Winblows analog mit ipconfig)wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
link/none
inet 10.13.13.101/27 scope global wg0 (--> WG Client IP)
valid_lft forever preferred_lft forever
Wenn ich bei aktiver Wireguard Verbindung meine externe IP prüfe ist das die des WG Servers
Weil du hier sehr wahrscheinlich einen fatalen Denkfehler machst! Logischerweise routet der Wireguard Server deine 10.13.13.x Absender IPs der Clients auf einen NAT (IP Adress Translation) Router oder einen NAT Prozess deines Servers der dann nach draussen ins Internet logischerweise die öffentliche WAN Port IP des Routers oder des Servers anzeigt. Extern könnten dir doch niemals private 10er RFC1918 IP Adressen der Clients angezeigt werden da die im öffentlichen Internet bekanntlich nicht geroutet werden. Das sind aber alles Binsenweisheiten aus der ersten Klasse IP Routing.
Die Configs kommen 1:1 direkt von Wireguard selbst angelegt vom Server.
Das ist Unsinn. Der Server erzeugt keine Konfigs automatisch. Außer vielleicht man hat eine AVM Fritzbox mit der proprietären Implementation von WG. Ein klassischer Linux WG Server verlangt die Konfigs als simple Textdateien. Die offizielle Wireguard Doku ist da recht eindeutig!!https://www.wireguard.com/quickstart/
Wie sollten WG Server und Clients auch ihr internes IP Netz kennen wenn die dafür immer erforderliche Subnetzmaske fehlt?! Bei jedem IP Interface muss man diese angeben. Auch eine der IP Binsenweisheiten...
und es ist nicht klar geworden, welches Setup ich einrichten will.
Das mag sein. Vielleicht solltest du das dann noch einmal exakt und klar definieren um Missverständnisse zu vermeiden. Allerdings ist im o.a. Wireguard Tutorial auch haarklein im Detail beschrieben wie diese Setups sowohl für Server als auch Client genau auszusehen haben. In Ruhe lesen und umsetzen kann helfen!
Nochmal: Adguard Server und WG Server sind NICHT im gleichen Netz.
Das spielt wie oben schon mehrfach gesagt keine Rolle da du mit AllowedIPs = 0.0.0.0/0 am Client ja einen "Gateway Redirect" machst!! Sprich dein Client routet dann generell sämtlichen IP Traffic in den Tunnel und damit auch alle DNS Anfragen an deinen Adguard. Völlig egal in welchem IP Netz der sich dann befindet.Primär soll der Adguard angefragt werden, falls der nicht erreichbar ist, einer aus der Kette
Dann sollte oben stehen:DNS = 192.168.10.53, <2te_DNS_IP>
In der Regel nimmt man hier sinnvollerweise die des remoten Internet Routers, der ja üblicherweise DNS Server spielt oder bei einem vServer dann die lokale DNS IP des Hosting Providers. Es müssen keine 6 sein...
Wenn du unbedingt meinst externe DNS zu verwenden kann das auch eine eines vertrauenswürdigen DNS Anbieters sein. https://www.privacy-handbuch.de/handbuch_93d.htm
Linuxserver WG Docker Container
Dann sind dessen Konfigs syntaktisch falsch und entsprechen nicht den WG Vorgaben. IP Adressen ohne Maske anzugeben ist fatal und auch falsch. Das lernt man aber schon in der IP Grundschule und als Linux Profi weisst du das auch selber. Versuch das mal bei deinem Ubuntu oder Debian...Ebenso die unsinnige Listen Port Angabe im Client. So ein Müll kommt meistens dabei raus wenn irgendwelche gruseligen Automatismen sowas erstellen und nicht der gesunde IT Verstand.
Zitat von @U08154711:
Und mal nebenbei:
Selbst Wireguard schreibt auf seiner Seite vom Listenport...
https://www.wireguard.com/#simple-network-interface
Das brauchst du nur wenn ein Client selbst von anderen Peers aktiv angewählt werden soll ansonsten ist das überflüssiger Tobak bei einem Client weil da meist sowieso Firewalls davor stehen die den direkten Zugriff ohne aktives DSTNAT verhindern. Nicht nur blind Copy n Pasten sondern auch verstehen wofür der Eintrag da ist .Und mal nebenbei:
Selbst Wireguard schreibt auf seiner Seite vom Listenport...
https://www.wireguard.com/#simple-network-interface
Wenn es das denn nun war bitte nicht vergessen deinen Thread dann auch als erledigt zu schliessen!
Wie kann ich einen Beitrag als gelöst markieren?
Wie kann ich einen Beitrag als gelöst markieren?