Tuning (besondere Einstellungen) am Squid-Proxy-Servers
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.
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
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