Inhaltsfilter
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Dieser Artikel ist mit keiner aktuell unterstützten Ubuntu-Version getestet! Bitte teste diesen Artikel für eine Ubuntu-Version, welche aktuell unterstützt wird. Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
Diese Anleitung beschreibt, wie man unter Linux einen Proxy-Server einrichtet, um den Webzugriff zu filtern und zu überwachen. Dieser ContentFilter besteht aus dem Proxyserver Squid und der Filterliste DansGuardian 🇬🇧. Damit stellt er eine ähnliche Funktionalität wie CovenantEyes 🇬🇧 zur Verfügung.
Die hier beschriebene Variante ist nicht die einzige Lösung. Denn in der Praxis definiert der Begriff "Inhaltsfilter" nicht zwangsläufig den gewünschten konkreten Einsatzzweck. Die einen verstehen darunter Anonymität im Internet, andere möchten eher Werbung ausfiltern oder eine Art Kinderschutz verwirklichen. Daher gibt es nicht nur eine Lösung:
Tor - Anonymität im Webbrowser
Werbefilter mit Privoxy einrichten
Kinderschutz Privoxy einrichten
Tinyproxy - einfacher Proxy für Einzelplatzrechner oder kleine Netze
Um einen Inhaltsfilter in Desktop-Umgebungen oder konkreten Programmen verwenden zu können, gibt es einen eigenen Artikel.
Installation¶
Zunächst werden einige Programme installiert [1]. Die meisten davon sind bei einer Standardinstallation bereits vorhanden:
cron
anacron
logrotate
squid
dansguardian (universe )
Befehl zum Installieren der Pakete:
sudo apt-get install cron anacron logrotate squid dansguardian
Oder mit apturl installieren, Link: apt://cron,anacron,logrotate,squid,dansguardian
Konfiguration¶
Für die Konfiguration müssen einige Dateien in einem Editor [2] mit Root-Rechten [3] bearbeitet werden.
/etc/squid/squid.conf¶
emulate_httpd_log on visible_hostname localhost
/etc/dansguardian/dansguardian.conf¶
# UNCONFIGURED language = 'german'
/etc/dansguardian/dansguardianf1.conf¶
naughtynesslimit = 130 bypass = 0
Erweitere Konfiguration¶
In der Standardinstallation von DansGuardian werden unter anderem sehr viele Dateitypen geblockt, die aber teilweise sehr wichtig sein können. Beispielsweise werden TAR-Archive und GZ- und BZ2-komprimierte Dateien geblockt. Unter Umständen ist es auch nicht mehr möglich, Paketlisten über die Paketverwaltung zu aktualisieren.
Diese erweiterten Einschränkungen werden im Verzeichnis /etc/dansguardian/ unter anderem über Dateien geregelt, die mit banned
(für geblockte Inhalte) oder exception
(für Ausnahmen) beginnen. So werden z.B. Dateitypbeschränkungen in der Datei /etc/dansguardian/lists/bannedextensionlist geregelt.
Dienste neustarten¶
Nun startet man die Dienste in einem Terminal [4] neu:
sudo /etc/init.d/squid restart sudo /etc/init.d/dansguardian restart
Filterung aktivieren¶
Damit der Proxy und somit die Inhaltsfilterung aktiv wird, muss man nun die Proxy-Nutzung aktivieren (siehe auch Proxyserver).
Firefox¶
In Firefox wählt man im Menü "Bearbeiten → Einstellungen" und klickt dann im Reiter "Allgemein" bzw je nach Version auf "Erweitert → Netzwerk" und dann auf den Button "Verbindungs-Einstellungen...". In dem sich öffnenden Fenster wählt man "Manuelle Proxy-Konfiguration" aus. Bei "HTTP-Proxy" trägt man localhost
ein und als Port 8080
. Zum Schluss setzt man noch den Haken bei "Für alle Protokolle diesen Proxyserver verwenden".
Nun ist die Inhaltsfilterung aktiv. Falls eine Seite geblockt wurde, wird man darüber im Browser-Fenster in Kenntnis gesetzt.
Falls es stört, dass unten auf dem Block-Hinweis "Ihre Firma" steht, so öffnet man die Datei /etc/dansguardian/languages/german/template.html in einem Editor mit Root-Rechten [4] und sucht dort nach diesem Ausdruck. Man kann diesen jetzt entfernen oder durch etwas anderes ersetzen.
Log als E-Mail versenden¶
Voraussetzung ist ein funktionierender MTA, z.B. Postfix. Jetzt erstellt man das folgende Skript in einem Editor mit Root-Rechten [4] und speichert es als /usr/local/bin/visited_urls ab:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #!/bin/bash # # gib alle URLs aus, für die Squid angefragt wurde # die option -v zu grep bedeutet alle Zeilen, die den folgenden Text (oder regulaeren Ausdruck) # enthalten nicht augeben (A.d.Ue.) # echo $1 echo "" cat /var/log/squid/access.log | \ grep -v .tar.bz2 | grep -v .tar.gz | grep -v .pdf | \ grep -v .jpg | grep -v .gif | grep -v .png | \ grep -v .ra | grep -v .ram | grep -v .rm | grep -v .mp3 | grep -v .mid | \ grep -v .css | grep -v .js | grep -v .ico | \ sed -e 's#.http://#http://#' -e 's#.*CONNECT.#https://#' -e 's#[[:blank:]].*##' | \ sed -e 's#\?##' -e 's#:[0-9][0-9]*##' -e 's#{\|\;].*##' | \ sed -e 's#/#§#3' -e 's#§.*##' | \ sort -u 2>&1 |
Analog dazu erstellt man die Datei /usr/local/bin/mail_visited_urls:
1 2 3 4 5 6 7 8 | #!/bin/bash # # sende die besuchten URLs an den Accountability-Partner (jemand gegenüber den du # Rechenschaft über dein Surfverhalten ablegst) # /usr/local/bin/visited_urls "MeinName hat von den folgenden Webseiten Inhalte abgerufen:" | \ mail -s "Webseiten – MeinName" meinpartner@accountability.net echo "mail_visited_urls @ $(date)" >> /var/log/mail_visited_urls.log |
Beide Skripte müssen noch ausführbar gemacht werden [5].
Logrotate¶
Hier bearbeitet man die Datei /etc/logrotate.d/squid so, dass sie folgenden Inhalt enthält:
/var/log/squid/*.log { '''weekly''' compress delaycompress rotate 8 missingok nocreate sharedscripts prerotate /usr/local/bin/mail_visited_urls endscript postrotate test ! -e /var/run/squid.pid || /usr/sbin/squid -k rotate endscript }
Links¶
Proxyserver Programmübersicht