Proxyserver Squid mit Contentfilter Dansguardian und Virenfilter ClamAV unter CentOS 5.x
Für die Zugriffsverwaltung und inhaltliche Bewertung der angewählten Internetseiten bedienen wir uns dem Proxy Squid und dem Contentfilter Dansguardian. Bei dieser Konstellation arbeiten Squid und Dansguardian als einer Vermittler, der auf der einen Seite Anfragen entgegennimmt, um dann über seine eigene Adresse eine Verbindung zu einem Zielhost herzustellen. So bleibt einerseits die eigentliche Adresse des Client-Rechners dem Zielhost gegenüber komplett verborgen, was eine gewisse Anonymität schafft. Ferner können die Ergebnisse der Clientanfragen zwischengespeichert werden, um so Bandbreite zu sparen, da diese gepufferten Objekte nicht nochmals geladen werden müssen. Darüber hinaus haben wir so die Möglichkeit:
- unerwünschte Seiten zu blocken (Pornographie)
- bestimmte Inhalte nur bestimmten Usern zur Verfügung zu stellen (Multimediainhalte des WWW)
- Seiten auf unerwünschten Inhalt zu überprüfen und ggf. zu blocken (Glücksspiel und politische Propaganda) oder
- eine Virenprüfung der übermittelten Daten vorzunehmen.
Squid
Im ersten Schritt installieren wir den Proxy-Server Squid.
Dansguardian
Im nächsten Schritt werden wir nun mit der Installation und Konfiguration von Dansguardian weiter fortfahren. Hierzu stehen uns Stand heute zwei Programmversionen zur Verfügung, auf die in den folgenden Kapiteln einzeln eingegangen wird.
Dansguardian Version 2.10.1.1
Möchte man neben der inhaltlichen Überprüfung, beschrieben im nachfolgenden Kapitel auch eine Virenfilterung des Webtraffics vornehmen, so installiert man sich am besten die aktuelle Version von Dansguardian. Hierzu benutzt man entweder direkt die Sourcen von Dansguardian oder man nutzt die komfortablere Variante eines RPMs aus einem Repository.
Die komfortabelste Variante ist die Nutzung von Djangos Repository. Die Einbindung ist im Dokuwiki unter Einbindes von Djangos Repository for CentOS 5.x beschrieben.
Installation und Konfiguration ist im nachfolgenden Kapitel Dansguardian Version 2.10.1.1 - Installation und Konfiguration detailliert beschrieben.
Dansguardian Version 2.8.0.6
Die einfachere Variante ist die Installation der Version 2.8.0.6 aus dem Dag Apt Repository. Stand Dezember 2009
Diese Version unterstützt nur die Inhaltliche Überprüfung noch noch NICHT die Virenfilterung!
Diese ist im aktuellen neuen Release-Kandidaten enthalten - die Installation ist im nachfolgenden Kapitel beschrieben. Installation und Konfiguration ist im nachfolgenden Kapitel Dansguardian Version 2.8.0.6 - Installation und Konfiguration detailliert beschrieben.
Konfiguartion des Browsers auf der Clientseite
Zur Aktivierung unserer Proxy-Konfiguration haben wir zwei Möglichkeiten. Die scheinbar schnelle und einfache manuelle Variante, oder die vollautomatische zentrale Konfiguration. Mit der Letztgenannten ist man vor allem bei späteren Änderungen und Erweiterungen weitaus flexibler.
manuelle Konfiguartion
Im firefox aktivieren wir nun unter dem Menüpunkt Bearbeiten | Einstellungen bei Erweitert den Reiter Netzwerk. Bei den Einstellungen tragen wir nun die IP-Adresse unserer NSS ein und geben als Port die 8080 an.
automatische Konfiguartion
Apache-Konfig
In der Konfigurationsdatei /etc/httpd/conf/httpd.conf ergänzen wir folgende Angabe:
vim /etc/httpd/conf/httpd.conf # If the AddEncoding directives above are commented-out, then you # probably should define those extensions to indicate media types: # # hinzugefügt am 16.08.2008 wegen Proxy-Pac-File-Unterstützung AddType application/x-ns-proxy-autoconfig .pac
V-Host Definition
Für unsere Proxy-Konfiguration nutzen wir einen virtuellen Host, den wir wie folgt definieren:
- vhost.conf
# # proxy.nausch.org # <VirtualHost *:80> ServerAdmin webmaster@nausch.org ServerName proxy.nausch.org:80 ServerAlias proxy.nausch.org ServerPath / DocumentRoot "/usr/share/proxypac" <Directory "/usr/share/proxypac"> Options FollowSymLinks AllowOverride AuthConfig Order Deny,Allow Deny from all Allow from 127.0.0.1 Allow from 192.168.100.0/24 </Directory> DirectoryIndex index.html ErrorLog logs/proxy_error.log CustomLog logs/proxy_access.log combined </VirtualHost>
Abschließend starten wir dann unseren Webserver einmal durch:
# service httpd restart
proxy.pac file
Gemäß unserer V-Host-Definition legen wir nun das entsprechende Verzeichnis (DocumentRoot) an und setzen die Berechtigung für unseren Apache:
# mkdir /usr/share/proxypac # chown apache:apache /usr/share/proxypac
Hier erstellen wir nun unser proxy.pac-File
# vim proxy.pac
// proxy pac file function FindProxyForURL(url, host) { // proxy string to return var proxy = "PROXY proxy.nausch.org:8080"; // no Proxy if (shExpMatch(url, "http://*.nausch.org/*")) { return "DIRECT"; } if (shExpMatch(url, "http://*.wetterstation-pliening.info/*")) { return "DIRECT"; } if (shExpMatch(url, "http://localhost/*")) { return "DIRECT"; } if (shExpMatch(url, "http://127.0.0.1/*")) { return "DIRECT"; } // go Proxy return proxy; }
Abschließend verlinken wir nun noch unsere proxy.pac nach index.html
# ln -s /usr/share/proxypac/proxy.pac usr/share/proxypac/index.html
Clientseite
Auf Seiten unserer Klienten sit es lediglich bei den Browsereinstellungen die automatische Proxykonfiguration mit der URL http://proxy.nausch.org anzugeben.
Dansguardian Logfile-Auswertung
Zum Auswerten unseres Dansguardian-Logfiles, bedienen wir uns eines einfachen und effektiven Perl-Programmes DGLog.
Download und Installation
Das Perl-Programm holen wir uns direkt von der Projektseite mittels wget.
# wget http://www.cherokeek12.org/technology/dg/2.0/dglog2.pl
Dieses File kopieren wir an die für uns richtige Stelle und weisen anschließen die Nutzerrechte entsprechend zu.
# mkdir /usr/share/dansguardian # cp dglog2.pl /usr/share/dansguardian/ # chown apache:apache dglog2.pl # chmod 750 dglog2.pl
V-Host Definition
Zur Auswertung unsers Dansguardian-Logfiles legen wir nun zum schluß einen geeigneten VHost an.
# vim /etc/httpd/conf.d/vhosts.conf
- vhost.conf
# # dansguardian.nausch.org # <VirtualHost *:80> ServerAdmin webmaster@nausch.org ServerName dansguardian.nausch.org:80 ServerAlias www.dansguardian.nausch.org ServerPath / DocumentRoot "/usr/share/dansguardian" AddHandler cgi-script .pl <Directory "/usr/share/dansguardian"> Options ExecCGI AllowOverride AuthConfig Order deny,allow Deny from all Allow from 127.0.0.1 Allow from 192.168.100.0/24 </Directory> DirectoryIndex dglog2.pl ErrorLog logs/dansguardian_error.log CustomLog logs/dansguardian_access.log combined </VirtualHost>
Abschließend starten wir dann unseren Webserver einmal durch:
# service httpd restart
Programmaufruf
Zu guter Letzt rufen wir die Auswertung, genauer gesagt die Auswahlmaske für die Selektion der Nutzerdaten im Browser unter der Adresse https://dansguardian.nausch.org/ auf.