Inhaltsverzeichnis

Tuning (besondere Einstellungen) am Squid-Proxy-Servers

Squid Proxy Logo

In diesem Kapitel werden wir uns nun näher mit Tuning und/oder besonderen Einstellungen bei unserem Squid-Proxy-Server unter CentOS 6.x eingehender beschäftigen.

Definitionen der Sprache für die HTML-Meldungen

Für die Aktivierung der deutschen Fehlermeldungen und -seiten tragen wir am ende unserer Squid-Konfigurationsdatei einfach folgende beiden Zeilen nach.

 # Django : 2011-11-14 deutsche Rückmeldungen bei den Fehlermeldungen aktiviert
 error_directory /usr/share/squid/errors/de
 error_default_language de

Hierzu benutzen wir am einfachsten den Editor unserer Wahl, z.B. vim. Anschließend laden wir die Konfiguration unseres Proxyservers neu.

 # service squid reload

Will nun ein Nutzer an einem Client eine Webseite ohne entsprechende Berechtigung besuchen, so wird diesem nun eine deutschsprachige Fehlerseite präsentiert.

Bildschirmhardcopy: deutsche Fehlerseite beim Squid

Squid-Server Hostnamen setzen

Damit der Squidserver bei seinen Rückmeldungen nicht seinen Hostnamen, sondern (s)einen Serveralias preis gibt ergänzen wir am Ende unserer Konfigurationsdatei folgende Zeile.

 # Django : 2011-11-14 Serveralias statt des Hostnamens ausgeben:
 visible_hostname proxy.dmz.nausch.org

Anschließend laden wir wieder die Konfiguration unseres Proxyservers neu.

 # service squid reload

Bei den Rückmeldungen wir nun in der Statuszeile der gewünschte Servername angezeigt.

Unterdrücken der Version des Squid-Servers

Zur Unterdrückung der Version unseres Squid-Servers bei den Rückmeldeseiten ergänzen wir am Ende die Konfigurationsdatei unseres Servers.

 # Django : 2011-11-14 Unterdrücken der Squidversion bei der Ausgabe von Fehlerseiten
 httpd_suppress_version_string on

Anschließend laden wir wieder die Konfiguration unseres Proxyservers neu.

 # service squid reload

Squid-Manager setzen

In den Statusseiten des Proxyservers erfolgte eine Anzeige des Squidmanagers über die ein Anwender bei Bedarf eine eMail senden kann. Standardmäßig lautet die Anzeige bei der Verwendung der deutschen Fehlerseiten:

 Ihr Cache Administrator ist root

In unserem Fall wollen wir die eMailadresse squid-manager@nausch.org verwenden. Wir tragen daher in der squid.conf am Ende folgende Zeile ein:

 # Django : 2011-11-14 Setzen des Cache-Admins und Angabe der eMailadresse
 cache_mgr squid-manager@nausch.org

Zur Aktivierung der Konfigurationsänderung laden wir die Konfigurationsdatei unseres Squid-Servers neu.

 # service squid reload

Bildschirmphoto der angepassten Squid-Fehlermeldung

eMail-Absenderadresse setzen

Sollte der Squidserverprozess abstürzen, so wird eine Statusmail verschickt. Die Absenderadresse kann mit folgendem Eintrag, den wir wieder am Ende unserer Squid-Konfigurationsdatei einfügen, geändert werden.

 # Django : 2011-11-14 Setzen der eMail-Absendeadresse im Fehlerfall
 mail_from squid-proxy@nausch.org

Zur Aktivierung dieser Änderung laden wir die Konfigurationsdatei unseres Squid-Servers neu.

 # service squid reload

Caching unterdrücken bei dynamischen Inhalten (cgi-scripte)

Zum Unterdrücken von dynamischen Inhalten z.B. bei CGI-Scripten tragen wir am Anfang der ACL-Regeln folgende Zeile ein.

 # Django : 2011-11-14 NICHT cachen von dynamischen Inhalten (cgi-scripte)
 acl QUERY urlpath_regex cgi_bin \?

Nach den Cache-Regeln fügen wir noch folgende Zeile ein, damit unsere zuvor definierte ACL auch aktiviert und genutzt werden kann.

 # Django : 2011-11-14 Aktivieren der ACL-Regel zum Unterdrücken des Cachen von dynamischen Inhalten
 cache deny QUERY

Zum Schluß aktivieren wir auch hier mit einem reload unser Konfigurationsänderung.

 # service squid reload

Cache-Memory Warning

Der Vorgabewert für den cache_memory lautet nach folgender Dokumentationsseite 256 MB. Unter CentOS 6.x wird jedoch beim Betrieb folgende Fehlermeldung ausgegeben:

 WARNING cache_mem is larger than total disk cache space!

Zum Vermeiden dieses Warnhinweises setzen wir den Speichercache auf max. 100 MB. Hierzu tragen wir in unserer Konfigurationsdatei folgende Zeile nach.

 # Django : 2011-11-14 Cache-Memory heruntergesetzt, wegen der Fehlermeldung
 #                     WARNING cache_mem is larger than total disk cache space!
 # default cache_mem 256 MB
 cache_mem 100 MB

Zum Aktivieren der neuen max. Speichergrenze laden wir die Konfiguration einmal neu.

 # service squid reload

Ausnahmeregelungen bei der Authentifizierung

Zuweilen kann es wünschenswert sein, einzelne Seiten (URLs oder ganze Domänen) von der Notwendigkeit der Benutzerauthentifizierung auszunehmen.

Hierzu legen wir uns ein paar passende RegEx-Regeln an, die wir am Ende unserer ACL in der Squid-Konfigurationsdatei anfügen.

# Django : 2011-11-14 Ausnahmeregelung für den Zugriff ohne caching aktiviert
acl noauthsites url_regex repository\.nausch\.org/*
acl noauthsites url_regex static-cdn\.addons\.mozilla\.net:443
acl noauthsites url_regex ocsp\.digicert\.com/*
acl noauthsites url_regex ocsp\.verisign\.com/*
acl noauthsites url_regex evsecure-ocsp\.verisign\.com/*
acl noauthsites url_regex releases\.mozilla\.org/*
acl noauthsites url_regex addons\.mozilla\.org:443
acl noauthsites url_regex services\.addons\.mozilla\.org:443

Damit diese ACL auch greifen kann, erweitern wir noch unsere http_access-Regeln wie folgt:

 http_access allow localhost noauthsites
 http_access allow localhost ldap_auth
 http_access allow localnet noauthsites
 http_access allow localnet ldap_auth

Abschließen laden wir die Konfiguration einmal neu.

 # service squid restart

Squid-Proxy in Verbindung mit Content-Filter DansGuardian

Wird der Squid-ProxyServer in verbindung mit dem Web-Contentscanner Dansguardian verwendet, taucht bei Verwendung der Standardkonfiguration in der Squid-Access-Datei als log absendende IP-Adresse nur noch die IP-Adresse des DansGuardian auf. Dies kann mit einem speziellem Eintrag in der Konfiguratiosdatei /etc/squid/squid.conf und der Funktion follow_x_forwarded_for angepasst werden.

 # Django : 2011-11-14 Anpassen der Request-IP-Adresseder Clients bei Verwendung von Dansguardian
 follow_x_forwarded_for allow localhost
 follow_x_forwarded_for allow localnetwork

Links