Contentfilter für die Schule

Bei uns in der Schu­le dür­fen die Kin­der den PC-Raum jeder­zeit für eige­ne Tex­te oder zur „Recher­che” nut­zen. Dazu kön­nen sie sich auch allein im PC-Raum auf­hal­ten. Wir haben glück­li­cher­wei­se bis­lang an der Schu­le noch nicht die Erfah­rung machen müs­sen, dass Kin­der dies dazu genutzt hät­ten, um sich „anstö­ßi­ge” Inhal­te gegen­sei­tig vor­zu­füh­ren.

Vor eini­gen Jah­ren sprach ich mit der Schul­lei­te­rin dar­über, dass wir für den PC-Raum einen Con­tent­fil­ter ein­rich­ten soll­ten. Das Für und Wider von Fil­tern möch­te hier nicht the­ma­ti­sie­ren. Nach­dem wir uns einig waren, begann ich vor etwa drei Jah­ren nach und nach eine Lis­te mit gesperr­ten Domains in der Fritz­box anzu­le­gen. Eini­ge Zeit spä­ter ergänz­te ich die Lis­te mit dem Safe Search Fil­ter von Goog­le, was aber immer noch sehr vie­le Lücken offen ließ. Vor etwa ein bis zwei Jah­ren rich­te­te ich bei Cis­co auf openDNS ein Kon­to ein, um über deren alter­na­ti­ven Name­ser­ver die dort ange­bo­te­nen Fil­ter­mög­lich­kei­ten zu nut­zen.

Resul­tat: Alle bis­he­ri­gen Fil­ter­ver­su­che erwie­sen sich kurz- und mit­tel­fris­tig als äußerst unbe­frie­di­gend, weil die Fil­ter zu schwach oder zu unge­nau waren. Zusätz­lich lag es mir im Magen, einen DNS zu nut­zen, der nicht auf deut­schem Boden steht.

Vor eini­ger Zeit nun habe ich auf dem Ser­ver im PC-Raum – ein klei­ner Bana­na Pi mit Arm­bi­an – einen pro­fes­sio­nel­len Con­tent­fil­ter auf Basis eines Pro­xy-Ser­vers ein­ge­rich­tet. Die Vor­ge­hens­wei­se beschrei­be ich im wei­te­ren Ver­lauf.

Squid

Squid ist ein frei­er sog. Pro­xy-Ser­ver, der welt­weit in klei­ne­ren und grö­ße­ren Unter­neh­men im Ein­satz ist. Er hat im Fal­le der Schu­le zwei Auf­ga­ben: a) er ermög­licht eine genaue Zugangs­kon­trol­le ins Inter­net (ACL) und b) er dient als Zwi­schen­spei­cher (Cache) für gela­de­ne Web­sei­ten / Updates aller Com­pu­ter, was dazu führt, dass „das Inter­net” auf jedem dar­an ange­schlos­se­nen PC (schein­bar) viel schnel­ler wird.

Zunächst ein­mal müs­sen wir auf dem Ser­ver squid instal­lie­ren.

$ sudo apt-get install squid3

Ich stel­le im Fol­gen­den nur eine ein­fa­che „Basis­kon­fi­gu­ra­ti­on” vor. Auf Fein­ein­stel­lun­gen ins­be­son­de­re bei der Cache-Grö­ße, den ACLs usw. gehe ich hier nicht ein, da die­se anhän­gig vom Schul­netz­werk von Fall zu Fall anders ein­ge­stellt wer­den müs­sen.

Auf dem Ser­ver wird jetzt die Kon­fi­gu­ra­ti­ons­da­tei von squid geöff­net:

$ sudo nano /etc/squid3/squid.conf

Fol­gen­der Ein­trag ist nun ein­zu­fü­gen:

acl SCHULNETZ src 192.168.1.0/24

Für SCHULNETZ kann man einen belie­bi­gen Namen ein­tra­gen. Zudem muss man den Adress­raum ggfs. auf das eige­ne Schul­netz abän­dern.

In der squid.conf müs­sen nun noch fol­gen­de Zei­len geän­dert wer­den.
Der Ein­trag http_access deny all wird geän­dert nach:

http_access allow SCHULNETZ

Und der Ein­trag forwarded_for on wird abge­än­dert nach

forwarded_for off

Mit der ers­ten Ein­stel­lung wird allen Cli­ents, die im Adress­raum 192.168.1.0/24 lie­gen, also jedem, der Zugriff ins Inter­net gewährt. Mit der zwei­ten Ein­stel­lung ver­hin­dert man, dass die netz­werk­in­ter­ne IP des Cli­ents nach drau­ßen über­mit­telt wird. Fehlt die­se Ein­stel­lung ist das zwar kein Pro­blem, aber es ist auch nicht wirk­lich schön.

Ans Ende von squid.conf gehört fol­gen­der Zwei­zei­ler:

url_rewrite_program /usr/bin/squidGuard -c /etc/squidguard/squidGuard.conf
url_rewrite_children 5

Hier­mit wei­sen wir squid an, dass es zum Fil­tern von Inhal­ten auf squid­guard zugrei­fen soll.

Squidguard

Der Con­ten­fil­ter squid­guard wird fol­gen­der­ma­ßen instal­liert:

$ sudo apt-get install squidguard

Bevor ich mich an die Kon­fi­gu­ra­ti­on des Con­tent­fil­ters squid­guard mache, lade ich eine Black­list-Datei her­un­ter und instal­lie­re sie im Sys­tem. Ich habe mich für die aus Deutsch­land stam­men­de Shal­la­list ent­schie­den. Sie wird regel­mä­ßig aktua­li­siert, ent­hält über 1,7 Mil­lio­nen Ein­trä­ge und ist dabei noch erstaun­lich kom­pakt in der Datei­grö­ße.

Nach dem Down­load der Lis­te ent­pa­cke bzw. ver­schie­be ich die Daten ins Ver­zeich­nis (sie­he ggfs. auch den Tipp zu den Besitz­rech­ten wei­ter unten):

/var/lib/squidguard/db/

Hier befin­den sich nun zahl­rei­che Ord­ner mit den Fil­ter­lis­ten.

schuladmin@server:~$ ls -al /var/lib/squidguard/db/
total 284
drwxr-xr-x 58 proxy proxy  4096 Oct 17 18:41 .
drwxr-xr-x  3 root  root   4096 Oct 17 13:40 ..
drwxr-xr-x  2 proxy proxy  4096 Oct 20 14:54 adv
drwxr-xr-x  2 proxy proxy  4096 Oct 20 14:54 aggressive
drwxr-xr-x  2 proxy proxy  4096 Oct 20 14:54 alcohol
drwxr-xr-x  2 proxy proxy  4096 Apr 15  2015 anonvpn
drwxr-xr-x  6 proxy proxy  4096 Sep 19 22:47 automobile
drwxr-xr-x  2 proxy proxy  4096 Oct 20 14:54 chat
-rw-r--r--  1 proxy proxy   803 Mar  8  2008 COPYRIGHT
drwxr-xr-x  2 proxy proxy  4096 Sep 10 11:27 costtraps
drwxr-xr-x  2 proxy proxy  4096 Oct 20 14:54 dating
drwxr-xr-x  2 proxy proxy  4096 Sep 15 12:10 downloads
...

Als nächs­tes wird die Kon­fi­gu­ra­ti­ons­da­tei ange­passt. Dazu könn­te die Datei ein­fach gelöscht wer­den: $ sudo rm /etc/squidguard/squidGuard.conf Alter­na­tiv öff­net man ein­fach die bestehen­de squidGuard.conf und ent­fernt die vor­han­de­nen Ein­trä­ge manu­ell:

$ sudo nano /etc/squidguard/squidGuard.conf

Die von mir erstell­te Kon­fi­gu­ra­ti­ons­da­tei kann hier ein­ge­se­hen wer­den squidguard.conf. Zusätz­lich zu den Black­lists habe ich auch eine White­list ange­legt: /var/lib/squidguard/db/whitelist/domains Dar­in tra­ge ich alle Ein­trä­ge ein, die in jedem Fall vom Pro­xy-Fil­ter durch­ge­las­sen wer­den müs­sen bzw. nicht gefil­tert wer­den dür­fen!

# Hier stehen alle Webseiten, die NICHT gefiltert werden.

duckduckgo.com
frag-finn.de
fragfinn.de
blindekuh.de
blinde-kuh.de
...

Die ein­zi­ge Such­ma­schi­ne (für Erwach­se­ne), die ich im PC-Raum zuge­las­sen habe, ist das auf Pri­vat­sphä­re wert legen­de Duck­Duck­Go. Alle ande­ren Such­ma­schi­nen (Goog­le, Bing, Yahoo etc.) sind gesperrt.

Tipp zur White­list: Die White­list liegt in einem Ord­ner, der dem Besit­zer proxy.proxy zuge­wie­sen ist. Um dort einen neu­en Ord­ner namens "whitelist" anzu­le­gen, kann es hilf­reich sein, zunächst die Besitz­rech­te zeit­wei­se nach root.root abzu­än­dern!

$ sudo chown -R root.root /var/lib/squidguard/db/

Dann die White­list ein­fü­gen und danach wie­der…

$ sudo chown -R proxy.proxy /var/lib/squidguard/db/

Die Datei squidguard.conf habe ich nun so ein­ge­stellt, dass bei einem Zugriff auf eine gesperr­te Sei­te eine Umlei­tung zur schul­ei­ge­nen Web­sei­te „Inter­net für Kin­der” erfolgt.

Ganz oben in der squidguard.conf muss bei "src default" noch der Adress­raum der eige­nen Schu­le ein­ge­tra­gen bzw. ange­passt wer­den!

Hin­weis für die White­list: In die­ser Datei ste­hen Domains, die teil­wei­se auch bei den Black­lists ste­hen. Die oben ange­ge­be­ne Such­ma­schi­ne Duck­Duck­Go steht sowohl in mei­ner White­list als auch in der her­un­ter­ge­la­de­nen Black­list. Damit mei­ne Ein­trä­ge in der White­list die Ein­trä­ge in der Black­list „schla­gen” / „über­trump­fen”, muss der Ein­trag White­list unten bei "acl" am Anfang ste­hen!

acl {
        default {
               pass whitelist !adv !aggressive !alcohol !chat !dating !drugs !fortunetelling !gamble !military !models !porn !searchengines !sex_education !sex_lingerie !socialnet !tracker !violence !warez all
               redirect http://burg-grundschule.de/internet-fuer-kinder
        }
}

So, bevor nun abschlie­ßend die Daten­ban­ken erstellt wer­den, ändern wir zur Sicher­heit die Besitz­rech­te.

$ sudo chown -R proxy.proxy /var/lib/squidguard/db/ 
$ sudo chown -R proxy.proxy /var/log/squidguard/

Mit fol­gen­dem Befehl wer­den aus den her­un­ter­ge­la­de­nen Fil­ter­lis­ten die Daten­ban­ken erstellt, auf die squid­guard dann zugrei­fen kann.

$ sudo squidGuard -C all

Soll­te es an die­ser Stel­le zu Feh­lern kom­men, hilft ein Blick in die Log-Datei­en. Bei mir war es so, dass ich immer dann Feh­ler­mel­dun­gen hat­te, wenn ich es ver­gaß, die Besitz­rech­te kor­rekt anzu­pas­sen!

$ sudo cat /var/log/squidguard/SquidGuard.log
$ sudo cat /var/log/squid3/access.log

Am Ende muss der Ser­ver neu gestar­tet wer­den "$ sudo init 6" Anstel­le eines Neu­starts mit­tels $ sudo init 6, kann auch der Ser­vice squi­d3 neu gestar­tet wer­den, um sich den Reboot des gan­zen Ser­vers zu erspa­ren:

$ sudo service squid3 restart

Mit Hil­fe von $ initctl list kann zudem der Sta­tus von squi­d3 über­prüft wer­den.

Proxy-Server auf den Clients

Damit nun ein Com­pu­ter auf den Pro­xy-Ser­ver zugreift, muss er noch kon­fi­gu­riert wer­den. Auf den im PC-Raum vor­han­de­nen Raspber­ry Pis erfolgt dies mit­tels:

$ sudo nano /etc/profile.d/proxy.sh

Dar­in wird ein­ge­tra­gen:

http_proxy=http://192.168.1.2:3128/
export https_proxy=$http_proxy
export ftp_proxy=$http_proxy
export rsync_proxy=$http_proxy

export HTTP_PROXY=$http_proxy
export HTTPS_PROXY=$http_proxy
export FTP_PROXY=$http_proxy
export RSYNC_PROXY=$http_proxy

Bei der IP-Adres­se muss der Pro­xy-Ser­ver ein­ge­tra­gen wer­den. Zum Schluss wird die Datei noch aus­führ­bar gemacht, damit sie auch gestar­tet wer­den kann:

$ sudo chmod +x /et/profile.de/proxy.sh

Der Pro­xy-Ser­ver wird auf den Win­do­sen direkt bei den jewei­li­gen Ein­stel­lun­gen im jewei­li­gen Brow­ser ein­ge­stellt. Bei Fire­fox liegt das bei Ein­stel­lun­gen > Erwei­tert > Ver­bin­dung > Ein­stel­lun­gen.

DuckDuckGo

Die Such­ma­schi­ne Duck­Duck­Go bie­tet zahl­rei­che Ein­stel­lungs­mög­lich­kei­ten. Die­se las­sen sich mit einem Pass­wort geschützt bei Duck­Duck­Go abspei­chern und anschlie­ßend von jedem Com­pu­ter her­un­ter­la­den. So ver­fügt jeder PC über die glei­chen Ein­stel­lun­gen. Die­se könn­ten zwar rela­tiv leicht gelöscht wer­den – es han­delt sich hier­bei ledig­lich um ein Coo­kie -, aber wel­cher Grund­schü­ler kennt schon Coo­kies und weiß zudem, wie man sie ent­fernt?

Weitergehende Infos

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

zehn + acht =