Squid - transparenter Proxy mit NICs im selben Subnetz?

4853
fistameeny

Ich habe eine grundlegende virtuelle Maschine von Squid + DansGuardian eingerichtet, die ich zum Überwachen und Blockieren bestimmter Websites verwenden sollte. Derzeit läuft der Web-Verkehr über einen Router, der als Gateway festgelegt ist. Die IP-Adresse hiervon wird von einem DHCP-Dienst auf einem Linux-Server ausgegeben. Ich möchte einige Clients auf der Grundlage ihrer MAC-Adresse (was ich bereits tun kann) an ein anderes Gateway weiterleiten. Das Setup ist wie folgt:

Router (Gateway) - 192.168.0.1 DHCP/DNS Server - 192.168.0.10 Squid Server - 192.168.0.254 Client PCs - 192.168.0.100-199 

Die meisten Tutorials scheinen jedoch zu verlangen, dass Squid den Verkehr auf einer NIC akzeptiert und ihn dann an eine andere NIC in einem anderen Subnetz an die Außenwelt weiterleitet.

Ist es möglich, dass Squid Datenverkehr auf seiner IP (192.168.0.254) akzeptiert und an das Gateway (192.168.0.1) weiterleitet, um das Gebäude wie gewohnt zu verlassen? Wenn ja, hat jemand die relevanten iptables-Regeln, die er mir geben könnte?

1

1 Antwort auf die Frage

1
Serge

Sie brauchen dafür keine separate Schnittstelle.

Fügen Sie einfach eine Regel hinzu, um den HTTP-Datenverkehr umzuleiten und den Rest in angemessener Weise zum NAT zu leiten:

iptables -t nat -A PREROUTING -i eth0 -m iprange --src-range 192.168.0.100-192.168.0.199 -p tcp --dport 80 -j REDIRECT --to-port 3128 iptables -t nat -A POSTROUTING -o eth0 -m iprange --src-range 192.168.0.100-192.168.0.199 -j SNAT --to-source 192.168.0.254 

Es wird davon ausgegangen, dass die Standardrichtlinie für alle Ketten akzeptiert wird. Sie müssen außerdem die IPv4-Weiterleitung auf diesem Host aktivieren, und das Standard-Gateway sollte auf 192.168.0.1 eingestellt sein.