Konfiguration des Proxyservers Squid

Seite: 9/12
(8696 Worte insgesamt im Text)
(31870 mal aufgerufen)  Druckerfreundliche Ansicht

ACCESS CONTROL

Zitieren wir einmal das Squid-Handbuch: "F�r das folgende Kapitel ben�tigen Sie einen starken Kaffee, ein paar billige Bleistifte (zu Ihrer Gesundheit m�glichst ungef�rbte) und Sie sollten alle scharfen Gegenst�nde aus Ihrer Umgebung entfernen. Mit Squid ACL's k�nnen Sie nahezu jede erdenkliche Zugriffsregel erstellen. Manche Firewall kann hier nicht mithalten. Diese Komplexit�t birgt jedoch auch einige Fallen, in die Sie stolpern k�nnen. Mancher Administrator soll daran schon verzweifelt sein icon_wink ."

Aber keine Angst, die meisten Einstellungen sind ja schon gemacht. Wir wollen hier nur noch zus�tzliche Eintr�ge f�r eine Bandbreitenbegrenzung und f�r die Absicherung des Proxys nach aussen einf�gen.

acl

ACLs sind Access-(Zugriffs-)Listen, die umst�ndlich ausgedr�ckt nur eine Definition von Regeln darstellen.

Die hier vorgenommenen Einstellungen gelten also normalerweise noch nicht!

Damit werden nur bestimmte Ausdr�cke mit einem "einfach" zu merkenden Namen verkn�pft. Diese Namen unterliegen wieder den normalen Restriktionen, wie man sie allgemein kennt (erlaubt sind nur Buchstaben, Nummern sowie '_' und '-').

Wir definieren hier - sofern noch nicht vorhanden - verschiedene Regeln und weisen diesen Regeln dann einen Namen zu. Da die Regeln hier noch nicht in Kraft treten, sondern nur definiert werden, ist die Reihenfolge hier nicht weiter wichtig. Sie sollten nur beachten: pro Regel nur eine Zeile. Sollte ihnen der Platz nicht ausreichen, k�nnen Sie die Regel auch in eine separate Datei auslagern (s.u.).

acl all src 0.0.0.0/0.0.0.0 Hiermit wird eine Regel definiert, die auf alle IP-Adressen trifft. Mit dem K�rzel "acl" teilen wir Squid mit, dass nun eine neue Regel definiert wird, deren Name direkt folgt und u.a. keine Leerzeichen beinhalten darf. Unsere Regel lautet also "all". Das Schl�sselwort "src" nach dem Namen weist Squid an, den nachfolgenden Wert als IP-Adresse oder IP-Netzwerkbereich zu behandeln. Weiter unten werde ich noch andere Schl�sselw�rter erl�utern. Zum Schluss kommt dann der eigentliche Inhalt der Regel - in diesem Fall ein IP-Adressbereich.
acl our_networks src 172.16.0.0/16

Mit "our_networks" definieren wir diejenigen Rechner, welche �berhaupt auf den Proxyserver zugreifen d�rfen. In unserem Beispiel sind das Rechner mit der IP 172.16.x.y und dem Subnetz 255.255.0.0 - die Zahl 16 ist nur eine andere Schreibweise f�r das Subnetz.

Wenn Sie also zus�tzlich noch Rechner im 192.168er Netz �ber den Proxy laufen lassen m�chten, m�ssen Sie - mit Leerzeichen getrennt - noch 192.168.0.0/16 anf�gen.
acl dateien urlpath_regex -i \.(zip|exe|cmd|rar|com|mp3|mp[e]g)($|\?) Die hier erstellte Zugriffsregel wird f�r beliebte "Download"-Dateien sp�ter nur eine bestimmte Bandbreite zulassen. Hier sieht man sehr sch�n, dass nach der Namensvergabe "dateien" ein anderes Schl�sselwort urlpath_regex folgt, welches zus�tzlich noch bestimmte "Optionen" erlaubt. In diesem Fall steht die "Option" -i f�r das Ignorieren von Gross- und Kleinschreibung.

Da gleich mehrere Dateiendungen in dieser Regel erfasst werden sollen, werden diese durch Leerzeichen voneinander getrennt.
acl authenticated proxy_auth REQUIRED Hiermit definieren wir eine ACL mit dem Inhalt "Proxy-Anmeldung erforderlich". Wenn diese ACL sp�ter aktiviert wird, dann m�ssen die Nutzer sich �ber die unter auth_param eingestellte Authentifizierungsform anmelden. Ansonsten verweigert Squid die Nutzung.
acl sites_without_auth dstdomain *.foo.com

Angenommen, die Nutzer sollen einige Seiten im Internet ansurfen k�nnen ohne sich vorher authentifizieren zu m�ssen. Mit dieser ACL definieren Sie eine Regel "sites_without_auth" und dahinter geben Sie die Seiten an, welche sp�ter auch ohne Anmeldung am Squid angesurft werden k�nnen.

Beachten Sie bitte, dass sp�ter dann die Reihenfolge der http_access entscheidend ist! Nur wenn Sie diese Reihenfolge hier w�hlen:

http_access allow sites_without_auth
http_access allow authenticated
dann wird das sp�ter auch funktionieren...
acl winupdate dstdomain .update.microsoft.com .windowsupdate.microsoft.com Damit die Rechner ein Windows-Update fahren k�nnen, ohne dass eine Anmeldemaske "aufpoppt", nehmen wir diese Adressen noch in eine eigene ACL mit auf. Diese ACL kommt dann nat�rlich auch vor http_access allow authenticated.

Nun wollen wir noch eine "whitelist" und eine "blacklist" anlegen, welche URLs von Webseiten enthalten soll, die wir entweder sperren oder freigeben m�chten. Um nicht immer in der Konfiguration von Squid herumfuhrwerken zu m�ssen, um hier neue Seiten einzutragen, werden diese Listen in separate Dateien ausgelagert und in der Konfigurationsdatei wird nur der Speicherort der Dateien angegeben.
acl whitelist url_regex "/etc/squid/acl_whitelist" In der Datei /etc/squid/acl_whitelist werden dan einfach untereinander der einzelnen URLs der Seiten (ohne http://) aufgelistet.
acl blacklist url_regex "/etc/squid/acl_blacklist" In der Datei /etc/squid/acl_blacklist werden dan einfach untereinander der einzelnen URLs der Seiten (ohne http://) aufgelistet.

Tip: Diese Art der Sperrung von Internetseiten mag bei wenig Eintr�gen noch gut funktionieren. Wenn Sie aber mehr als 100 Eintr�ge haben, lohnt der Einsatz von speziellen Filterprogrammen wie SquidGuard.

Ab und zu kommt von Schulen die Frage: "K�nnen wir die Anmeldung am Squid �hnlich begrenzen, wie unter Samba?" Also Squid so konfigurieren, dass ein Sch�ler sich nur einmal am Squid anmelden kann?

Die Antwort lautet: Ja.
Hierf�r definiert man eine spezielle ACL:
acl maxlogon max_user_ip -s 1
Der Parameter -s bewirkt sp�ter das "harte" Blocken, d.h. wenn sich der Sch�ler an einem anderen Rechner anmelden will, bekommt er sofort die rote Karte. Ohne -s l��t Squid ihn noch ab- und zu durch - in der Hoffnung, dass der Sch�ler den Fehler erkennt.

Wichtig hierbei: Squid speichert ja die Anmeldung (ansonsten w�rde der Sch�ler sein Passwort bei jeder neuen Seite erneut eingeben m�ssen) f�r eine gewisse Zeit. Wenn nun aber ein Raumwechsel ansteht, dann kann es passieren, dass Squid noch die Anmeldung unter der alten IP gespeichert hat und den Nutzer dann im neuen Raum nicht hineinl��t. Deshalb muss man zus�tzlich noch ein wenig mit dem Parameter:
authenticate_ip_ttl 2 minutes
herumspielen. In diesem Beispiel cached Squid das Passwort 2 Minuten - normalerweise ausreichend f�r eine Schulstunde in welcher die Sch�ler oft neue Seiten aufrufen.

Denken Sie daran, dass Sie f�r die ACL "maxlogon" noch eine http_access-Regel definieren m�ssen.

http_access

Mit den http_acess-Anweisungen bestimmen wir nun, was mit den zuvor gemachten ACLs geschehen soll.

Hier kommt es auf die richtige Reihenfolge an!

Der erste zutreffende Ausdruck wird verwendet!
Deshalb sperren wir jetzt auch erst einmal den Rest der Welt aus unserem Proxy-Server aus, indem wir zun�chst nur nur unser lokales Netzwerk zulassen und anschlie�end die weite Welt aussperren:
http_access allow our_networks
http_access deny all

Mit diesen beiden Angaben am Ende der http_access-Regelliste erlauben ("allow") wir also grunds�tzlich unserem Netzwerk ("our_networks"), welches wir ja weiter oben genau definiert haben, den Zugriff auf den Proxy w�hrend der Rest der Welt ("all" s.o.) der Zugriff verboten ("deny") wird. Zu beachten: werden diese Regeln andersherum durchlaufen, bleibt auch das lokale Netzwerk draussen, da auch die lokalen Adressen von der allgemeinen Regel erfasst werden und damit die Abarbeitung der Regeln schon nach der ersten abgebrochen wird.

Wenn Sie also z.B. den Zugriff auf unsere "Dateien" verbieten wollen, muss eine entsprechende http_access-Regel VOR dem "allow our_networks" hinzugef�gt werden! Steht Sie dahinter, darf unser Netzwerk diese Dateien laden, weil Squid die weiter unten stehende Regel nicht mehr auswertet, sobald ein Rechner zu unserem Netzwerk geh�rt...

icp_access

Nachdem wir andere Clients ausgesperrt haben, verbieten wir in einem zweiten Schritt auch anderen Proxys den Zugriff auf unseren Server. Da die Proxys untereinander �ber sogenannte icp-queries miteinander kommunizieren, m�ssen wir daf�r eine andere Regel setzen: den icp_access. Wer bei http_access aufgepasst hat, der d�rfte die jetzt folgende Regelkette schon erraten.
icp_access allow our_networks
icp_access deny all




Kommentare

Schultzi
13.09.06, 07:38
Super

Klasse

Andreas
24.11.06, 08:11
Spitzen Info´s

Hallo,

da ich gerade dabei bin, einen Squid zu installieren, haben mir die Infos sehr geholfen. Speziell die Delay Pools waren für mich ein wenig schwierig , aber mit der Erklärung hab ich es jetzt begriffen. :-) Auch die Tuning Tips sind sehr wertvoll .... Respekt !!!

Weiter so ...

Grüße

Andreas

Einen Kommentar hinzufügen



 Suchen:


 Umfrage

(Nur für angemeldete Benutzer)

Was wird hier am meisten vermisst?

[ Ergebnis | Umfragen ]

Stimmen: 621
Kommentare: 0

 Zitate

Brauchen Device-Driver einen Führerschein?

-- anonymous