PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SQUID



22.01.01, 13:31
Hi all,
ich habe auf EINEM Rechner zwei mal Squid laufen (mit zwei verschiedenen Caches). Dazu habe ich zwei verschiedene .conf - Dateien (squid_intern.conf und squid_extern.conf). In jeder dieser beiden Dateien habe ich einen anderen Nameserver eingetragen. Squid1 (squid_intern.conf) (Port80) ist da, um die Clients zu den Servern im Intranet weiterzuleiten (der eingetragene Nameserver kennt nur diese Adressen). Alles was er nicht auflösen kann, schickt er über die Ports 3128 und 3130 zu squid2 (squid_extern.conf). Dieser kann dann über seinen Nameserver alles auflösen, was in's Internet soll. Das funktioniert soweit auch ziemlich gut.
Nun zu dem Problem:
Ich würde gerne an jedem dieser Squids eine extra Accessliste pflegen. Ursprünglich habe ich mir das so gedacht:
es gibt zwei listen:
- intern.acl (da stehen dann z.B. zwei Adressen drinn: 10.1.1.1 und 10.1.1.2
- extern.acl ( mit folgender Adresse: 10.1.1.2 )

D.h. 10.1.1.2 darf sowohl ins Internet als auch ins Intranet und 10.1.1.1 darf nur ins Intranet und nicht ins Internet.
Squid1 schaut in beide Listen rein, Squid2 nur in die extern.acl. kommt jetzt von 10.1.1.1 eine Anfrage ans Intranet (www.intranetserver1.de), lässt Squid1 sie durch (intern.acl), löst sie auf und der Kuchen ist gegessen. Will diese Adresse ins Internet (www.pro-linux.de), kann Squid1 das nicht auflösen und schickt die Anfrage weiter an Squid2. Dieser schaut nur in die extern.acl, dort steht diese Adresse nicht drinn, also darf sie auch nicht surfen. Kommt eine Anfrage von 10.1.1.2 in Richtung Internet, lässt Squid 1 sie durch, kann nicht auflösen, schickt sie weiter an Squid2, der prüft die Accessliste extern.acl, dort steht diese Adresse drinn, und schon darf sie surfen.

Ich hoffe, das war halbwegs verständlich.

DAS DUMME IST NUR:

Alle Anfragen, die Squid1 nicht auflösen kann, schickt er mit der IP 127.0.0.1 an Squid2. D.h. ich kann an Squid2 gar keine Accessliste pflegen weil dieser keine Anfragen von einzelnen IP's bekommt sondern nur von einer einzigen (127.0.0.1)!!!

MEINE FRAGE:

Kann ich in der squid_intern.conf z.B einstellen, dass die Ports 3128 und 3130 nur für IP-Adressen erlaubt sind, die in einer Accessliste stehen? D.H. Squid1 muss in dieser Liste schauen, ob er z.B. die Adresse 10.1.1.2 übehaupt an Squid2 weiterschicken kann.

Falls irgendwer halbwegs verstanden hat, was mein Problem ist und (oh Wunder) auch noch weiss, wie man es lösen könnte - BITTE MELDE DICH!!!!!!!

Falls es nicht verständlich ist - mailto:michael.kettel@rz-as.de oder fragt in diesem Forum.

Gruss Michael

LKH
22.01.01, 16:48
Hallo Seppl,

was Du erreichen willst, läßt sich IMHO mit Squid nicht erreichen.

Du musst einen transparenten Proxy deart einrichten, dass alle Anfragen im Intranet an den internen Proxy weitergeleitet werden, alles andere an den externen. Der interne leitet dann nicht an den externen, das muss vorher geschehen.

Realisieren kannst Du das mit ipchains. Ggf. musst Du den Kernel neu kompilieren mit der Unterstützung für den transparenten Proxy.

Hoffe es hilft,



------------------
Mit freundlichen Gruessen / Best regards

Leander Kirstein-Heine
--
COMPUTER & | Engelplatz 11 Phone: +49 3641-210.401
NETWORK | D-07743 Jena (Germany, EC) Fax: +49 3641-211.650
CONSULTING | eMail: lkh@cnc-online.net URL: http://cnc-online.net/ (http://www.cnc-online.net/)

24.01.01, 15:05
Hmmmmm,
ok. das wäre eine Möglichkeit. Wenn auch eine etwas kompliziertere.

Nun eine vielleicht saudumme Frage
(Newbie :-)).

Könnte man Squid nicht mit dem TCPD-Wrapper starten.

Da würden dann in der inetd.conf Datei folgende Einträge steheh:

http1 stream tcp nowait root /usr/sbin/tcpd squid -f /etc/squid_intern.conf

und

http2 stream tcp nowait root /usr/sbin/tcpd squid -f /etc/squid_extern.conf

http1 und http2 stehen in services:

http1 80/tcp
http2 3128/tcp

Ich habe das so schon probiert aber alles, was ich bekomme, wenn ich surfen will ist folgendes:

network error blafasel. Connection reset by peer

bevr diese Meldung kommt, sehe ich auf dem Linuxrechner noch wie squid gestartet wird (squid child prozess startet).

An was könnte das liegen?? In der hosts.allow ist die IP-Adresse mit der ich ankomme für alles freigegeben (ALL: 10.0.0.1). Ebenso die von dem Squidserver selber (ich weiss ja nicht, mit was die Anfragen intern weitergeschickt werden.

Kann sich jemand vielleicht noch eine Lösung denken? Oder habe ich mich völlig "verbastelt"?

Man sieht, ich drücke mich vor der masquerading-Lösung. Sieht sehr Anfängerunfreundlich aus (bibber...).

Danke im Vorraus

Michael

[Dieser Beitrag wurde von Seppl am 24. Januar 2001 editiert.]

[Dieser Beitrag wurde von Seppl am 24. Januar 2001 editiert.]

LKH
24.01.01, 16:08
Hallo Seppl,

ich muss ehrlich sagen, ich habe keine Ahnung ob das was genannt hast auch funzen wird. Ausserdem ist mir nicht klar, woher die Squids wissen sollten, für wen welche Anfrage ist. In den Browsern, die ich kenne, kann man auch nur einen Proxy (pro Dienst) einrichten.

Ich denke mal, um die ipchains-Lösung wirst du nicht rumkommen. Wenn es dann klappt, hast du auch eine Menge gelernt! http://www.linuxforen.de/ubb/smile.gif



------------------
Mit freundlichen Gruessen / Best regards

Leander Kirstein-Heine
--
COMPUTER & | Engelplatz 11 Phone: +49 3641-210.401
NETWORK | D-07743 Jena (Germany, EC) Fax: +49 3641-211.650
CONSULTING | eMail: lkh@cnc-online.net URL: http://cnc-online.net/ (http://www.cnc-online.net/)

25.01.01, 07:40
Jep. Du hast wohl recht.
Bei der Lösung in meinem ersten Beitrag hätten die Squids es gewusst. Alles was Squid1 nicht auflösen kann (über seinen DNS-Server), schickt er an Squid2 weiter. Alles was er auflösen kann, macht er selber. Dazu muss man in die Config Datei von Squid1 schreiben "cache_peer localhost parent 3128 3130".
Das es funzt sieht man wunderschön in den beiden access.log Dateien.

Die Idee, die als zweites geschrieben habe (mit tcpd) ist im Nachhinein betrachtet wohl blödsinn.

Also werde ich mich jetzt an die Firewall machen (seufz...).

Danke für die Hilfe.

Michael

25.01.01, 08:50
geb nicht ganz so schnell auf ... die idee an sich ist gut. ich grübele grade, irgendwie hatte ich mal etwas ähnliches gemacht, nur net mit squid ... mir fällts noch ein ... genau deswegen möchte ich mal vorsichtig und mit zugehaltenem mund sagen, die fw-rules sind nicht die einzigen die filtern können ... parent und child hört sich schon mal gut an ... squid2 hat squid1 als parent, oder?

cu/2 iae