ubuntuusers.de

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:

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
}

Diese Revision wurde am 19. Mai 2021 06:43 von noisefloor erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Internet, Inhaltsfilter, Netzwerk, Server, Proxy, ungetestet