1. Allgemeines über SquidGuard
2. Installation
3. Blacklists aktuallisieren
4. Einstellungen in squidGuard.conf
SquidGuard ist eine Möglichkeit den Zugriff auf jugendgefährdende Seiten im Internet zu erschweren (daneben bietet SquidGuard noch eine Fülle anderer Möglichkeiten siehe: "Für SquidGuard spricht:")
Das Wichtigste vorweg:
Es ist Utopie, sich vorzustellen, dass SquidGuard oder jeder anderee Filtermechanismus
die Aufsichtspflicht bzgl. der angesuften Seiten im Internet obsolet machen
könnte - wie auch, wenn monatlich tausende neuer Webseiten mit jugendgefährdenden
Inhalten ins WWW gestellt werden.
Dann stellt sich allerdings die Frage, weshalb man einen solchen Filter überhaupt
installieren soll - das war für mich in der Tat auch längere Zeit
eher uninteressant, bis ein Schüler auf die geschmacklose Idee gekommen
ist, die ekelhaftesten und schrecklichsten Bilder anzusurfen, die ich je gesehen
hatte.
Dies lies mich umdenken: was wäre gewesen, wenn sich diese Bilder zufällig
ein 5.Klässler mit angeschaut hätte? - dieser wäre ziemlich
sicher verstört nach Hause gekommen und die Eltern hätten sich zu
Recht beschwert, wie es möglich sei, dass in der Schule solche Bilder angesurft
werden können.
Mir war klar, dass man nicht von allen Schülern einen vernünftigen
Umgang mit dem Internet erwarten darf, auch wenn diese auf Grund ihres Accounts
ziemlich problemlos zur Rechenschaft gezogen werden können -> daher
gab es für mich und die Schulleitung keine Frage mehr, ob ein Filter fürs
Internet eingesetzt werden müsse - dieser erschwert zumindest das Ansurfen
solcher Seiten und zudem lässt sich leichter verfolgen, ob von Schülern
häufiger versucht wird, solche Seiten anzusurfen.
Es gab für mich zwei Alternativen (die sich aber auch nicht gegenseitig ausschließen):
- Schmuddelliste
- SquidGuard
Gegen die Schmuddelliste spricht in meinen Augen:
- zu großer Aufwand:
wie sollte man z.B. das Wort "sex" sperren -> Staatsexamen, Lehplansexemplar
... kann dann auch nicht mehr angesurft werden und ich habe kein großes
Interesse jede Woche wieder einige Worte in die whitelist aufzunehmen, damit
dorthin gesurft werden kann.
- bremst das System aus:
damit die Schmuddelliste funktioniert, muss sie logischerweise wesentlich mehr
als nur 10 Einträge enthalten -> das Internet wird langsamer, auf Grund
der Rechenzeit von Arktur.
- einfach zu installieren
siehe Installation
- sehr schnell
durch die Datenbankabfragen der Blacklist funktioniert die Filterung sehr schnell,
wenn Arktur nicht gerade einen Pentium I 75Mhz mit 16MB ist.
- Logdateien
die geblockten Seiten werden mitgeloggt (samt userkennung, wenn z.B. identd
auf den Clients läuft.)
- einfacher Download der Blacklistfilter
die Blacklistfilter können problemlos von mehreren Stellen heruntergeladen
werden.
-mehr Möglichkeiten außer den Blacklist-Filtern (siehe auch 4.
Einstellungen in squidGuard.conf )
Zeitweise ...
rechnerspezifische ...
userspezifische ...
...Freischaltung/Sperrung des Internets oder Zugangbeschränkung auf festgelegte
Seiten.
Schluss:
Wenn man squidGuard einsetzt, kann man dessen Vorteile problemlos der Schmuddelliste
kombinieren (das geht übrigens auch mit SquidGuard, bei dem soetwas mit
implementiert ist, allerdings weiß ich (noch) nicht, wie das funktioniert
:-( ), in der noch Begriffe vorkommen, die unter keinen Umständen angesurft
werden dürfen - diese Schmuddelliste dürfte dann aber wesentlich geringer
ausfallen und daher auch die Zugriffszeit aufs Internet nicht negativ beeinflussen.
Für die Installation von SquidGuard sind mehrere Dateien nötig:
Download dieser Dateien mit einen Klick auf squidguard_all.tgz
(5,7 MB)
Kopiere diese Datei z.B. in den Ordner /whereever und entpacke diese als root
mit:
tar xzf squidguard_all.tgz
Diese Datenbank ist Voraussetzung für SquidGuard.
Während der Installation sollte man Online sein, da sonst Fehlermeldungen
erscheinen (die aber nicht weiter schlimm sind)
cp /whereever/db-2.7.7.tar.gz /usr/local/src
cd /usr/local/src
gzip -dc /usr/local/src/db-2.7.7.tar.gz | tar xvf -
cd db-2.7.7/dist
./configure
make
make install
make clean
-> Jetzt sollte die Berkeley Datenbank installiert sein; u.a. sollte der
Ordner /usr/local/BerkeleyDB erstellt
worden sein, in dem sich die library derselben befindet.
Während der Installation online sein
cp /whereever/SQUIDGUARD-1.1.4.TAR.GZ /usr/local/src
cd /usr/local/src
gzip -dc /usr/local/src/SQUIDGUARD-1.1.4.TAR.GZ | tar xvf -
cd squidGuard-1.1.4
./configure --with-sg-config=/etc/squid/squidGuard.conf
make
make test
-> Wenn test OK, dann
make install
(wenn test nicht OK, dann weiß ich leider auch nicht weiter :-( - ist mir aber noch nie passiert)
Im Abschnitt Zugriffskontrolle (ca. Z.107) nach den Kommentarzeichen die Zeile mit dem redirect_program einfügen.
# Abschnitt 7: Zugriffskontrolle
# --------------------------------
# Definitionen der ACcess List
redirect_program /usr/local/bin/squidGuard
tar xpPf /whereever/squidGuard.conf.tar
(-> nach /var/spool/squidGuard/db)
tar xpPf /whereever/squidGuard.tar
mkdir /var/log/squidGuard
chmod 771 /var/log/squidGuard
chown squid.squid /var/log/squidGuard
In diesem Ordner werden dann z.B. die geblockten Seiten - sogar mit Usernamen ;-), wenn identd läuft - mitgeloggt.
/usr/bin/squid/squid -k reconfigure
oder
/sbin/init.d/squid stop
/sbin/init.d/squid start
(-> wenn ein Schüler eine verbotene Seite aufruft, bekommt er diese Seite zu sehen.)
tar xpPf /whereever/squidGuard.cgi.tar
chmod 755 /home/www/cgi-bin/squidGuard.cgi
(evtl. ist chmod ... gar nicht nötig, aber schaden tut's zumindest
nicht ;-) )
Bemerkung:
Bislang bleiben beim Ausführen des Scripts die Angaben zu Rechername, Benutzer
und Gruppe leer; vielleicht kann hier der Entwickler des Scripts oder jemand
anderes weiterhelfen.
fertig :-)
Hierzu sollten erst einmal einmalig alle *.diff-Files umbenannt weden, da diese nur für den Aufbau der Datenbank benötigt wurden; im Prinzip könnten diese auch gelöscht werden, dann kann man aber nicht mehr erkennen, welche urls und domains in die Datenbank eingefügt wurden. Würde diese nicht umbenannt, würden diese *.diff-Files jedesmal beim Aktualisieren mit berücksichtigt werden, was natürlich relativ viel Zeit (je nach Rechnergeschwindigkeit) kostet.
Meine Vorgehensweise hierzu:
cd /var/spool/squidGuard/db/
mv ads/domains.diff ads/domains.diff_alt
mv audio-video/domains.diff audio-video/domains.diff_alt
mv drugs/domains.diff drugs/domains.diff_alt
mv hacking/domains.diff hacking/domains.diff_alt
mv violence/domains.diff violence/domains.diff_alt
mv aggressive/domains.diff aggressive/domains.diff_alt
mv gambling/domains.diff gambling/domains.diff_alt
mv porn/domains.diff porn/domains.diff_alt
mv warez/domains.diff warez/domains.diff_alt
Hierfür sind die Ordner /var/spool/squidGuard/db/custom/good bzw. .../bad vorgesehen.
Beispiel es soll z.B. die Domain www.porn.com und die url www.canabi.com/sex freigegeben werden.
Erstelle in /var/spool/squiGuard/db/custom/good eine Datei namens domains.diff
hierin wird einfach geschrieben:
+porn.com (ohne www am Anfang)
und erstelle analog eine Datei namens urls.diff:
+canabi.com/sex
danach ein Update der Berkley-Datenbank mit:
/usr/local/bin/squidGuard -u
Danach evtl. squid neustarten (/sbin/init.d/squid
stop; /sbin/init.d/squid start)
Da man die *.diff-Dateien nicht mehr benötigt, aber evtl. irgendwann einmal sehen will, was man freigegeben hat, sollte man jedesmal den Inhalt speichern und die Dateien löschen:
cat *.diff >> diff.alt
rm *.diff
Das funktioniert analog zum Freigeben, allerdings im Ordner /var/spool/squiGuard/db/custom/bad
Da diese Domains/Urls bereits in der Datenbank (domains.db/urls.db) beinhaltet sind, muss man diese wieder herausholen und zwar funktioniert das genauso wie das Freigeben bzw. Sperren, mit dem einzigen Unterschied, dass man in die Dateien domains.diff/ursl.diff
nicht +porn.com, sondern -porn.com
nicht +canabi.com/sex, sondern -canabi.com/sex
schreibt; der Rest funktioniert genau wie oben beschrieben :-)
Damit user hiervon ausgenommen werden sollen, muss ein ident-Programm z.B.
identd auf den Clients laufen, die an Squid die user-Kennung übermitteln.
Um Rechner vom Filtern herauszuhalten, muss man deren IP kennen.
Dann ergänzt man die Datei /etc/squid/squidGuard.conf folgendermaßen:
src adults {
ip 192.168.0.83 192.168.0.241 192.168.109
user fett kroe
}
acl {
adults {
pass all
redirect 302:http://192.168.0.1/cgi.bin/squidGuard.cgi
}
}
Es gibt noch eine Menge anderer Einstellungen (wie z.B. das zeitweise Blockieren
des Internets u.ä. für bestimmte Rechner oder User), das ist recht
gut (allerdings in Englisch) auf http://www.squidguard.org/config/
beschrieben.