Um WAN-Sites zu blockieren, kann man in der Conf-Datei etwa Folgendes tun:
address=/verystrangesite.com/127.0.0.1
Wenn der Benutzer also versucht, etwas nicht so Lustiges auf meinem Gast-LAN auszuprobieren, erhält er die Meldung ERR_CONNECTION_REFUSED.
Leider funktioniert dies nicht für interne Sites (Router, Gateways, hwfw, IP-Cam), zumindest nicht, wenn diese nur per IP erreichbar sind (ich weiß nicht, ob es funktionieren würde, wenn ich so etwas wie my-ip.com statt 172.16.1.54 hätte). Was ich versucht habe, sieht so aus:
address=/172.16.1.2/127.0.0.1
Kennen Sie also die richtige Syntax, um dies zu erreichen?
Vielen Dank im Voraus
Tobias
Antwort1
Es gibt keine korrekte Syntax, um dies zu erreichen.
dnsmasq ist nur ein DNS-Server – ernichtsitzen in der Mitte des gesamten Netzwerkverkehrs, es antwortet lediglich auf DNS-Anfragen und übersetzt Domänennamen in IP-Adressen. Ihre dnsmasq-Beispiele nichtBlockDie Sites fälschen lediglich die DNS-Abfrageergebnisse (und zwar nur, wenn der Client Ihren DNS überhaupt verwendet).
Clients, die versuchen, direkt über die IP-Adresse auf eine Website zuzugreifenverwende nichtDNS, um sie überhaupt aufzulösen – die Adresse wurde sozusagen bereits „voraufgelöst“. Daher gibt esNEINDNSMASQ-Konfiguration, die solche Verbindungen möglicherweise beeinträchtigen könnte.
Um beliebige Hosts nach IP-Adresse zu blockieren, tun Sie dies stattdessen in Ihrem Router.Firewall(Linux iptables/nft/ferm, BSD pf). Um eine Fehlermeldung „Verbindung abgelehnt“ zu generieren, fügen Sie eine Firewall-Regel hinzu, die die Verbindung „ablehnt“:
iptables -I FORWARD [...] -d 172.16.1.2 -p tcp -j REJECT --reject-with tcp-reset
iptables -I FORWARD [...] -d 172.16.1.2 ! -p tcp -j REJECT --reject-with icmp-port-unreachable