39.4DansGuardian
Grundsätzlich ist es möglich, durch Regeln in squid.conf einzelne Websites zu blockieren. Auf dieser Basis einen echten Webfilter zu realisieren, wäre aber zu aufwendig. Wozu auch das Rad neu erfinden? Mit dem Programm DansGuardian erreichen Sie einen einigermaßen kindersicheren Webzugang viel einfacher.
Die Grundfunktion des Programms besteht darin, dass es den Text von Webseiten auf pornografische Schlüsselwörter analysiert und die Weiterleitung der Seite bei Überschreitung eines bestimmten Grenzwerts blockiert. Der Mechanismus ist intelligent genug, dass nicht jede Seite, die Wörter wie sex oder breast enthält, blockiert wird. Da DansGuardian den »Inhalt« der Seiten verarbeitet, ist das Programm zugleich unabhängig von zumeist veralteten Listen blockierter Websites. Einen Überblick über weitere Merkmale des Programms finden Sie auf der folgenden Website:
DansGuardian ist leider weder IPv6-fähig noch unterstützt es die vorhin vorgestellte TPROXY-Funktion, um es als transparenten Proxy in IPv6-Netzen einzusetzen. DansGuardian kann daher nur IPv4-Netze mit NAT schützen. Generell verläuft die Entwicklung von DansGuardian seit einigen Jahren äußerst schleppend. Es gibt mittlerweile einige Forks des Programms, aber leider keine echten Alternativen.
DansGuardian kann bei den meisten Distributionen direkt als Paket installiert werden. Da es auch den Download bekannter Windows-Viren blockiert, wird zusammen mit DansGuardian der Virenfilter ClamAV installiert.
DansGuardian ist ein Dämon, der durch das Init-System gestartet und gestoppt wird. Standardmäßig erwartet das Programm Webanfragen am Port 8080. Es kontaktiert dann das Programm Squid (Port 3128) und analysiert die Webseite. Wird die Seite für in Ordnung befunden, wird sie über Port 8080 zurück an den Webbrowser geleitet. Noch eleganter ist die hier vorgestellte Konfigurationsvariante, bei der DansGuardian transparent alle Webanfragen an Port 80 verarbeitet, sodass an den Clients keinerlei Proxy-Konfiguration erforderlich ist.
Die primäre Konfigurationsdatei ist /etc/dansguardian/dansguardian.conf. In der Regel können Sie diese Datei weitestgehend so lassen, wie sie ist. Je nach Distribution enthält die Datei die Zeile UNCONFIGURED, der Sie ein Kommentarzeichen voranstellen müssen.
Wenn Sie möchten, dass die Meldung »access denied« in deutscher Sprache erscheint, nutzen Sie außerdem die Einstellung language = 'german'. Falls sich in Ihrem Netzwerk ausschließlich Linux-Rechner befinden, deaktivieren Sie durch virusscan = off den Virus-Scanner, der standardmäßig alle Downloads auf Viren überprüft. Für das Zusammenspiel mit dem Proxy Squid müssen Sie dessen IP-Adresse und Port-Nummer angeben.
Nach der Konfiguration starten Sie DansGuardian erstmalig:
Standardmäßig funktioniert DansGuardian nur für Zugriffe über den Port 8080. Um einen transparenten Schutz für alle Webzugriffe auf Port 80 zu erreichen, müssen Sie Ihr Firewall-Script nochmals ein wenig verändern: Anstatt HTTP-Zugriffe auf den Port 3128 (Squid) umzuleiten, leiten Sie sie auf den Port 8080 um (DansGuardian). Diese Konfiguration funktioniert nur für die NAT-Variante, also nur für IPv4-Netze.
Unter CentOS, Fedora oder RHEL müssen Sie /etc/firewalld/direct.xml entsprechend anpassen. Außerdem müssen Sie den Port 8080 freischalten:
Squid muss als gewöhnlicher Proxy-Cache konfiguriert sein, nicht als transparenter Cache. Außerdem müssen Sie den Zugriff auf Squid nun so einschränken, dass nur der Rechner, auf dem DansGuardian läuft, mit Squid kommunizieren darf. Wenn Squid und DansGuardian auf demselben Rechner laufen und Sie die in diesem Kapitel beschriebene Konfiguration verwenden, müssen Sie dazu die Zeile http_access allow localnet entfernen. Andernfalls wäre es für technisch versierte Benutzer im LAN möglich, die Proxy-Konfiguration ihrer Webbrowser so einzurichten, dass die Webbrowser über den Port 3128 direkt mit Squid kommunizieren und so DansGuardian umgehen!
Webfilter-Konfiguration
Die eigentlichen Filterfunktionen von DansGuardian werden durch /etc/dansguardian/dansguardianf1.conf gesteuert. Die Datei verweist zuerst auf diverse vorkonfigurierte Dateien mit Schlüsselwörtern, blockierten Websites etc. Der Parameter naughtynesslimit steuert, ab welchem Grenzwert eine Seite blockiert wird. Dieser Wert ist umso höher, je mehr Schlüsselwörter bzw. Schlüsselwortkombinationen im Text gefunden werden.
Wenn DansGuardian eine Seite blockiert, zeigt der Webbrowser einen entsprechenden Hinweis an (siehe Abbildung 39.2).
Abbildung 39.2DansGuardian und Squid blockieren den Zugriff auf eine Webseite.
Das Aussehen und den Inhalt der Blockadeseite können Sie je nach Distribution in einer der folgenden Dateien einstellen:
Tabelle 39.1 fasst die Funktion der wichtigsten Dateien des Verzeichnisses /etc/dansguardian/list zusammen. In diesen Dateien bzw. in dort genannten Include-Dateien können Sie weitere erwünschte und oder unerwünschte Begriffe, Websites bzw. Dateitypen aufzählen.
Datei |
Inhalt |
---|---|
bannedextensionlist |
Dateien mit diesen Kennungen blockieren |
bannedmimetypelist |
diese Dateitypen blockieren |
bannedphraselist |
verbotene Schlüsselwörter |
weightedphraselist |
negative Schlüsselwörter |
bannedsitelist |
diese Websites komplett blockieren |
bannedurllist |
diese Seiten blockieren |
exceptioniplist |
Anfragen von diesen Rechnern nie blockieren (ermöglicht Administratorzugriff auf fragwürdige Seiten) |
exceptionsitelist |
diese Websites ohne weitere Kontrolle akzeptieren |
exceptionurllist |
diese Webseiten ohne weitere Kontrolle akzeptieren |
exceptionphraselist |
positive Schlüsselwörter |
greysitelist |
diese Websites prinzipiell akzeptieren, aber Textinhalt kontrollieren |
Tabelle 39.1DansGuardian-Konfigurationsdateien
Bei der Textanalyse unterscheidet DansGuardian zwischen verbotenen Schlüsselwörtern (bannedphraselist), deren Vorkommen den Zugriff auf eine Seite sofort verbietet, und gewichteten Schlüsselwörtern (weightedphraselist und exceptionphraselist).
In der Grundkonfiguration gibt es kaum verbotene Schlüsselwörter, weil diese oft auch in harmlosen Seiten vorkommen. Stattdessen verwendet DansGuardian relativ umfangreiche Wortlisten (siehe /etc/dansguardian/list/phraselists). Anhand dieser Listen bildet DansGuardian eine Summe über das Vorkommen aller negativen und positiven Schlüsselwörter. Überschreitet diese Summe einen Grenzwert, wird der Zugriff blockiert. Details darüber, wie die Bewertungssummen blockierter Seiten zustande kommen, finden Sie in der Logging-Datei /var/log/dansguardian/access.log.
Das DansGuardian-Paket enthält keine Listen von Webadressen, die blockiert werden sollen! Die Dateien bannedsitelist und bannedurllist dokumentieren nur die prinzipielle Syntax. Es gibt aber Firmen, die gegen Bezahlung den regelmäßigen Download aktueller Listen ermöglichen. Am bekanntesten ist URLblacklist, die in diversen Squid-kompatiblen Textdateien Links auf problematische Webseiten sammelt. Die Listen sind nach diversen Kategorien geordnet (z.B. drugs, porn, violence). Die Filterlisten dürfen zu Testzwecken einmalig kostenlos heruntergeladen werden, regelmäßige Updates sind aber kostenpflichtig:
In der Standardkonfiguration blockiert DansGuardian den Download von komprimierten Dateien, MP3-Dateien, ISO-Dateien etc. Diese Einstellungen sind für den Linux-Alltag entschieden zu restriktiv und verhindern bei manchen Distributionen sogar ein korrektes Funktionieren der Paketverwaltung. Werfen Sie einen Blick auf bannedmimetypelist und bannedextensionlist, und stellen Sie allen erlaubten Dateitypen ein Kommentarzeichen voran! Alternativ können Sie in dansguardianf1.conf bei der Einstellung der Variablen bannedextensionlist und bannedmimetypelist auch einfach eine leere Datei angeben.
Um auf Anfragen der Art DansGuardian blockiert Seite xxx, die ist aber OK zu reagieren, müssen Sie als Administrator in der Lage sein, DansGuardian zu umgehen. Am einfachsten erreichen Sie das dadurch, dass Sie in der Konfigurationsdatei exceptionip die fixe IP-Adresse Ihres Rechners im lokalen Netzwerk angeben.
Einschränkungen
Machen Sie sich keine Illusionen über die Wirksamkeit von DansGuardian! Selbst die Einstellung naughtynesslimit = 50 (for young children) bietet keinen vollständigen Schutz vor pornografischen Webseiten und Abbildungen. Unter anderem gelten die folgenden Einschränkungen:
-
Wie in der Kapiteleinleitung bereits beschrieben, besteht kein Schutz vor unerwünschtem Inhalt in HTTPS-Seiten. Längerfristig ist dies die größte konzeptionelle Einschränkung, die schwer zu überwinden ist.
-
Die Standardkonfiguration berücksichtigt überwiegend englischsprachige Schlüsselwörter. Für die meisten pornografischen Seiten mag das ausreichen, wenn Sie aber auch rechtsextreme oder gewaltverherrlichende Seiten blockieren möchten, ist Handarbeit erforderlich. Der richtige Startpunkt ist die Datei /etc/dansguardian/list/weightedphraselist.
-
Davon unabhängig lässt sich der Filter durch dynamisch von JavaScript oder Flash erzeugten Text oder durch PDF-Dateien leicht umgehen.
-
Der Zugriff auf Bilder und Videos ist gänzlich ungeschützt. Der Filter spricht nur auf den Text an, der die Mediendateien beschreibt.
-
Squid und DansGuardian gelten nur für gewöhnliche Webseiten. Andere Kommunikationsformen, wie E-Mail, News, Chat, Skype etc., bleiben ungeschützt.
-
Die Kombination aus Squid und DansGuardian kann zurzeit nicht in IPv6-Netzen verwendet werden.