Können wir DNS-Anfragen (TCP/UDP) mithilfe von iptables im nicht transparenten Modus (3128) an den Squid-Proxy umleiten? (Würde der Squid-Proxy dies verstehen und verarbeiten?)
Beispielregel zur Umleitung von TCP 53 (es könnte eine ähnliche Regel sein):
iptables -t nat -A PREROUTING -s 192.168.0.0/24 -i eth1 -p tcp --dport 53 -j REDIRECT --to-port 3128
Beispielregel zur Umleitung von UDP 53 (es könnte eine ähnliche Regel sein):
Hinweis: Squid „hört“ auf dem hohen UDP-Port. Beispiel: 36352, Befehl: netstat -tlunp | grep squid
Referenz:http://linuxplayer.org/2012/02/why-squid-listen-on-high-udp-port-number
iptables -t nat -A PREROUTING -s 192.168.0.0/24 -i eth1 -p udp --dport 53 -j REDIRECT --to-port 36352
PD: Dies sind nur Beispiele für Squid-Direktiven im Zusammenhang mit DNS. Ich behaupte nicht, dass sie meinen Zwecken dienen:
positive_dns_ttl
negative_dns_ttl
dns_nameservers 8.8.8.8 8.8.4.4
udp_incoming_address
Wenn dies nicht möglich ist, akzeptiere ich Alternativen
Antwort1
Squid ist kein DNS-Proxy und akzeptiert keine DNS-Anfragen.
Wenn man sich die Dokumentation zu den von Ihnen hervorgehobenen Anweisungen ansieht, ist es ziemlich klar, dass es sich dabei um interne Einstellungen handelt und sie nichts mit dem externen Clientzugriff zu tun haben:
Als ausdrückliche Antwort auf Ihren letzten Satz/Ihre letzte Frage: Es gibt keine alternativen Möglichkeiten, den DNS-Verkehr an einen Squid-Proxy umzuleiten, da Squid den DNS-Verkehr nicht als Proxy nutzt.
Weiterführende Literatur
- Kann Squid DNS-Anfragen an einen DNS-Server weiterleiten?
- Einrichten eines expliziten Squid-Proxys – DNS-Konfiguration
- Squid-Proxy: DNS-Anfragen
Ich habe noch ein bisschen darüber nachgedacht und versucht, das Problem zu erraten, das Sie eigentlich lösen möchten. Ist Ihnen klar, dass Squid zwar keine DNS-Anfragen weiterleitet, alle Standard-DNS-Server dies jedoch tun? Beispiele, die ich anführen kann, sind Dnsmasq und Bind.