[[Vorlage(getestet, Bionic)]] {{{#!vorlage Wissen [:Pakete_installieren: Installation von Programmen] [:Editor: Einen Editor öffnen] [:sudo: Dateien mit Root-rechten bearbeiten] [:Terminal: Ein Terminal öffnen] [:Rechte:] - Dateien ausführbar machen }}} [[Inhaltsverzeichnis(2)]] 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 [http://www.dansguardian.org/ DansGuardian] {en}. Damit stellt er eine ähnliche Funktionalität wie [http://www.covenanteyes.com/ CovenantEyes] {en} 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#Werbefilter-einrichten:Privoxy] einrichten * Kinderschutz [:Privoxy#Kinderschutz-einrichten: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 [:Proxyserver:Artikel]. = Installation = Zunächst werden einige Programme installiert [1]. Die meisten davon sind bei einer Standardinstallation bereits vorhanden: {{{#!vorlage Paketinstallation cron anacron logrotate squid dansguardian, universe }}} = 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: {{{#!vorlage Befehl 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 [wikipedia:Mail_Transfer_Agent: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: {{{#!code bash #!/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''': {{{#!code bash #!/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 = * [:Serverdienste#Proxyserver:Proxyserver] {Übersicht} Programmübersicht # tag: Internet, Netzwerk, Server, Proxy, Inhaltsfilter