Frage zu Squid-Server als Gateway

MagicJojo

Registered User
Hallo Kollegen,

kurz zum "Ist":
im Netzwerk befinden sich (nur auf's wesentliche gekürzt) zwei Clients, ein Homeserver und eine Fritz!Box. Die Fritz!Box wird nur noch dazu verwendet, eine Verbindung ins Internet aufzubauen, mehr nicht. DHCP-Daemon, Nameserver und Proxy liegen auf dem Homeserver.
Werden die Clients also hochgefahren, erhalten diese automatisch vom Homeserver eine IP-Adresse und konfigurieren gleichzeitig den Homeserver als Nameserver, die Fritz!Box aber als Gateway. Der Proxy kann optional eingestellt werden.

Jetzt zum "Soll":
Ich würde gerne den Proxy transparent machen, sprich dass der Homeserver alle Anfragen bearbeitet und die Pakete, die das Internet als Ziel haben, durch den Proxy gejagt werden. Aber gleichzeitig will ich, dass alle Pakete, die sich lediglich im Intranet befinden, nicht den Weg über den Proxy nehmen müssen sondern sofort weitergeleitet werden. Wie setze ich das um?
Außerdem will ich, dass man den Proxy nicht mehr manuell konfigurieren muss (deshalb auch die oben genannte Transparenz), sondern dieser automatisch immer verwendet wird. Kann ich hierfür den DHCP-Daemon so konfigurieren oder muss ich den Homeserver gleich als Gateway eintragen?

Homeserver: Gentoo Linux mit DCHPd, Bind und Squid

Danke für Eure Hilfe :-)
Viele Grüße
 
Das sind zwei unterschiedliche Baustellen.

Wenn der Proxy automatisch per DHCP zugewiesen wird, brauchst Du den WPAD-Mechanismus von Microsoft und die DHCP-Option 252.
dhcp.conf said:
option pac-url code 252 = text;
option pac-url "http://192.168.1.2/proxy.pac";
proxy.pac said:
function FindProxyForURL(url, host) {
if (isInNet(myIpAddress(), "192.168.1.0", "255.255.255.0"))return ("DIRECT");
else return "PROXY 192.168.1.2:3128";
}

Ein transparenter Proxy hingegen muß garnicht konfiguriert werden. Hier trägst Du einfach Deinen Server (192.168.1.2) als Default-Gateway ein und leitest Port 80 (und ggf. weitere wie 443) per IPtables auf den Proxy.
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to 192.168.1.2:3128
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128
 
Ah, danke für die Info! Mir sagt die zweite Methode mehr zu.

Dazu noch eine kleine Frage: Wenn ich den Proxy direkt transparent als Gateway nutze, was passiert dann mit Anfragen über Ports, die nicht direkt per NAT auf den Proxy verweisen? Die werden dann ja meines Erachtens nach verworfen. Liege ich damit richtig?
 
Last edited by a moderator:
Nein. Das ist ja gerade der Sinn, daß die Clienten es nicht merken.
Eine beliebige Verbindung auf Port 80 wird transparent auf den Proxy "umgebogen".

Recht ausführlich ist die Konfiguration hier oder hier dargestellt.

Diesen Mechanismus nutzen übrigens auch viele Internetprovider, die ihren Kunden nur Adressen aus RFC1918-Bereichen zuteilen, beispielsweise per Mobilfunk oder Fernsehkabel.
 
Back
Top