AdGuard Home beäntwert WireGuard Clienten vun Ärer LAN Adress
Eng 0.0.0.0 Bind erlaabt dem Kernel déi reagéierend Quell ze wielen. Op engem Multi-Homed Host kann dës Äntwert vun enger Adress kommen, déi den Tunnel net erreeche kann.
De Tunnel ass opstänneg, d'Firewall erlaabt den Port 53, AdGuard Home leeft, an Nimm léisen nach ëmmer net fir de WireGuard Client. D'Ufro kënnt normalerweis un an eng Äntwert geet normalerweis eraus, sou datt d'Paketzähler um Resolver gesond ausgesinn an de Service onschëlleg schéngt. Wat falsch geet ass d'Quelladress vun där Äntwert: si geet vun enger lokaler Adress eraus, déi de Client ni gefrot huet, an de Stub-Resolver vum Client verwierft se. Eng Lëscht an der Konfiguratioun vu AdGuard Home entscheet dat, an d'normal Default iwwerlooss d'Entscheedung un de Kernel.
D'Ufro kënnt un, d'Äntwert geet vun enger anerer Plaz eraus
En Client, deen 10.6.0.1 als Resolver konfiguréiert huet, schéckt eng UDP-Ufro un 10.6.0.1 Port 53. Dëse Packet geet duerch de Tunnel an kënnt um Host, an AdGuard Home beäntwert en. Op der Linn ass d'Resultat awer en neie Packet, wou d'Quelladress vum Stack vum Host ausgewielt gëtt a net vun de Erwaardungen vum Client.
Wann den Resolver vum Client e verbuede Socket ass, wat systemd-resolved, dnsmasq an déi meeschten Stub-Resolver benotze, akzeptéiert en nëmme Äntwerte vun der exakter Adress, op déi et geschéckt huet. Eng Äntwert, déi vu 192.168.1.10 op eng Ufro geschéckt gëtt un 10.6.0.1, gëtt verworf ier iergendeng Analyse stattfënnt. De Resolver loggt eng erfollegräich Äntwert, de Client loggt en Timeout, a béid soen d'Wourecht.
Also lügen d'Zähler net an och de Client lënt net. D'Beweiser déi Dir braucht sinn op dräi Plazen, an dëser Reiefolleg: d'Adress un déi de Lauschterer gebonne ass, d'Reesroute déi de Kernel géif fir zréck op de Client benotzen, an d'Quelladress um tatsächleche Äntwertpaket.
Wéi de Kernel d'Quell vun der Äntwert wielt
Eng UDP-Socket gebonne mat0.0.0.0huet keng eege Quelladress, sou datt all erausgaang Äntwert eng Route-Nofro fir d'Destinatioun ausgeléist. De Kernel hëlt dann d'Quell vun där Route: d'Adress festgeluecht vun der Route, oder d'haapt Gestiounsadress vum erausgaangen Interface. Nichts vum Destiinatiounsadress vun der Ufroen gëtt gespäichert.
Op engem eenzege Host ass dëst onsichtbar, well et nëmmen eng plausibel Äntwert gëtt. Op enger Maschinn mat enger LAN-Adress, enger WireGuard-Adress an enger Management-Adress sinn e puer Äntwerten plausibel, an de Gewënner hänkt vun der Routing-Tafel zu där Zäit of. Füügt eng zousätzlech Route dobäi, eng zweet Adress um selwechte Interface, eng NAT-Redirect virun der Resolver oder lount AdGuard an engem Container mat sengem eegene Namespace, a d'gewielt Quell kann vum Client appréciéierte Äntwert ënnerscheeden.
ss -lunp | grep :53weist wéi eng Spill Dir sinn. En Node um0.0.0.0:53ass de Wildcard-Fall; en Node um10.6.0.1:53huet d'Äntwert scho gepinn. D'Socket liesen ass méi séier wéi YAML liesen, a se reflektéiert wat tatsächlich leeft amplaz wat lescht gespäichert gouf.
Wat bind_hosts tatsächlech kontrolléiert
AdGuard Home sengdns.bind_hostsdës ass d'Lëscht vun de lokalen Adressen déi de DNS-Listener benotzt. Déi ausgeliefert Standard ass de Wildcard, wat bedeit op all lokaler Adress ze akzeptéieren an dem Kernel ze erlaben d'Quell pro Äntwert ze wielen. De Wildcard mat der Adress z'ersetzen op déi d'Clienten froen änneren de Socket, an domadder d'Quelladress op all Äntwert.
D'Lëscht ka méi wéi een Entrée opgeholl ginn, wat wichteg ass bei engem Resolver deen zwou Netzwierker bedéngt. D'Liste10.6.0.1an192.168.1.10Gëtt zwou gebonne Sockets, an eng Fro déi op entweder ukomm ass gëtt vun der Adress beäntwert op déi se ukomm ass. Dëst ass dat Verhalen wat déi meescht Leit ugeholl hunn, datt de Wildcard scho bitt.
YAML ass einfach, an d'Adress do dra ass déi, déi Är Tunnelenclienten hunn benotzt ze ginn, net déi primär Adress vum Host:
dns:
bind_hosts:
- 10.6.0.1
port: 53Firwat zwou Installatiounen vun engem Resolver net eens sinn
Plugin-geregelt, an dësem Kontext, bedeit datt de Resolver vun engem anere Package installéiert a iwwerwaacht gouf: en Router-Firmware-Package, en NAS-Package oder en Home-Automatiouns-Addon. Dësen Package liwwert normalerweis seng eegent Kopie vum YAML vun AdGuard Home a start de Prozess op sengem eegene Zäitplang nei, während eng autonom Instanz d'Verkäufer-Binärdatei oder Container ass, deen Dir selwer konfiguréiert. An all Fall kritt Dir zwee onofhängeg Prozesser mat getrennten Konfiguratiounsdateien a verschidde Bindungsoptiounen, och wann béid déi selwecht Upstream-Lëscht a Filterlëschten liesen. Ee kann d'spezifesch Tunneladress binden, wann den anere de Wildcard erwaart, an d'Webinterface schéngt vun enger Säit wéi vun der anerer identesch ze sinn.
Dofir beweist „de selwechte Resolver huet virdru geschafft virum Mësschung“ näischt iwwer d'aktuell Bindung. Kontrolléiert de Socket, da kontrolléiert d'Konfiguratiounsdatei déi de laafende Prozess tatsächlech geluede huet. Eng veraltete Kopie an engem aneren Verzeichnis ass eng heefeg Ursaach, datt d'Ännerung keng Effekter huet.
Pinnt et, da testt vun der Tunnel-Seit
Ännertbind_hostsop d'Tunnel-Adress, restartéiert de Service, a bestätegt datt de Socket geännert huet:ss -lunp | grep :53soll elo10.6.0.1:53a keng Wildcard-Entrée weisen. Wann et nach ëmmer0.0.0.0weist,liest de laafende Prozess net d'Datei déi dir ännert hutt.
Da testt vum Client, well dat ass déi eenzeg Säit déi wichteg ass. Eng Ufro matdig @10.6.0.1 example.comgeet den Wee deen de Benotzer benotzt, an eng Opnam um Host mattcpdump -ni wg0 udp port 53weist d'Quelladress vun der Äntwert um Kabel. Vergläicht se mat der Adress an den Resolver-Astellungen vum Client; wann se gläich sinn, gëtt d'Timeout net méi e Geheimnis.
ip route get 10.6.0.2erkläert all nach verbleiwend Odditéit, well et déi Interface an d'Quell ausgëtt, déi de Host un de Client géif benotzen. Wann dës Ausgab déi LAN-Interface nennt, ass d'Bind-Ännerung nach net déi komplett Léisung a d'Routingtabelle ass dat Nächstes, wat ze liesen ass.
Wat d'Bind-Settunge net kënne reparéieren
D'Feschen vum Lauschterer reparéiert keng Zougangslëscht, déi d'Tunnel-Subnett ausléisst, keng Firewallregelen, déi d'Ufro erlaabt awer net d'Äntwert, oder eng feelend Rëtsch zréck zum WireGuard-Pool. Dës falen éischter oder spéider wéi d'Quelladress, an all een huet en aneren Besëtzer.
Et ännert sech och netdeen de Resolver weider uewen un d'Quell weiderleet, onofhängeg dovun, ob Rebinding-Protektioun eng privat Äntwert fir en privaten Numm oflehnt, oder wéi de Client seng eege Sichdomäner uwennt. Dës si verschidde Kontrollméiglechkeeten. Ännert d'Bind-Adress wann d'Äntwertquell falsch ass, an ännert eppes aneres wann et net esou ass.