Proxy Liste Datenbank

proxy
ucsschool
squid

#1

Hallo zusammen,

in Zukunft möchten wir an unserer Schule gerne den Zugriff auf “Jugendgefährdende” Seiten unterbinden.
Dafür bietet sich ja der mitgelieferte Proxy an…
Ist hier jemandem eine Lösung bekannt mit der man eine Online-Datenbank an den squid anbinden kann, damit man nicht alle Seiten händisch in eine Blackliste eintragen muss?
Ich bin über jeden Hinweis dankbar…

Beste Grüße
Lucas


#2

Squid im App-Katalog

“Die Filterung von Internetinhalten erfolgt über die Software DansGuardian.”


#3

@knebb: In UCS@school möchte man dafür lieber den SquidGuard nehmen, der bereits an Bord ist. Zusätzlich DansGuardian stört da nur - das ist eher etwas für UCS ohne @school.

@Lucas: Das Feature ist ja in http://docs.software-univention.de/ucsschool-handbuch-4.3.html#school:proxy:blacklists ganz gut beschrieben. Beliebte Listen sind z.B. die von Shalla (http://www.shalla.de/Info/blacklists.html) oder die von SquidGuard selbst erwähnten: http://www.squidguard.org/blacklists.html
Bitte die Lizenzbestimmungen beachten :slight_smile: Die Listen müssen dann nur noch wie im Handbuch beschrieben an die richtige Stelle gelegt und regelmäßig aktualisiert werden.


#4

@knebb @Grandjean :
Vielen Dank für die Hinweise und Links!
Da habe ich wohl das passende Kapitel im Handbuch nicht entdeckt :see_no_evil:

Einen guten Start in die Woche wünsche ich.

Lucas


#6

Wenn man die Listen auf mehreren Schulservern nutzen möchte, bietet sich die Verteilung über den rsync-daemon an. Die Aktivierung ist recht einfach, wenn man die Datei /etc/defailt/rsync anpasst:

root@app01:/etc# egrep -v "^$|^#" /etc/default/rsync
RSYNC_ENABLE=true
RSYNC_OPTS=''
RSYNC_NICE=''
RSYNC_IONICE='-c3'

Und dann in die neu zu erstellende Datei /etc/rsyncd.conf die zu exportierenden Ordner mit Zugriffsbeschränkungen auf die entspr. Subnetze einträgt:

root@app01:/etc# egrep -v "^$|^#" /etc/rsyncd.conf 
gid = users
read only = true
use chroot = true
transfer logging = true
log format = %h %o %f %l %b
log file = /var/log/rsyncd.log
[shallalist]
	path = /srv/rsyncd/shallalist
	comment = Shallalist
	hosts allow = 10.0.0.0/8 192.168.0.0/16
[fai]
	path = /srv/rsyncd/fai
	comment = FAI-ISOs
	hosts allow = 10.0.0.0/8 192.168.0.0/16

Nun können die Schulserver des Nachts in einem cron-job ihre Updates bandbreitenschonend ziehen. Das Script dafür könnte so ausschauen:

#!/bin/bash
#
# Shallalisten per rsyncd aktualisieren.
#                                       Thorsten Strusch <thorsten@ksan.de>
###########################################################################

KSAN_RSYNC_SERVER="app01.edu.DOMAIN.TLD"                                                                                               

SHALLABASE="/var/lib/squidguard/db/shallalist"
UCSBASE="/var/lib/ucs-school-webproxy/ksan"

PATH="${PATH}:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin"

mkdir -p $SHALLABASE $UCSBASE

rsync -qaz $KSAN_RSYNC_SERVER::shallalist /var/lib/squidguard/db/shallalist

chown -R proxy. /var/lib/squidguard/

# Grundschutz
cp -p ${SHALLABASE}/aggressive/domains    ${UCSBASE}/aggressive-d
cp -p ${SHALLABASE}/aggressive/urls       ${UCSBASE}/aggressive-u
cp -p ${SHALLABASE}/anonvpn/domains       ${UCSBASE}/anonvpn-d
cp -p ${SHALLABASE}/anonvpn/urls          ${UCSBASE}/anonvpn-u
cp -p ${SHALLABASE}/costtraps/domains     ${UCSBASE}/costtraps-d
cp -p ${SHALLABASE}/costtraps/urls        ${UCSBASE}/costtraps-u
cp -p ${SHALLABASE}/gamble/domains        ${UCSBASE}/gamble-d
cp -p ${SHALLABASE}/gamble/urls           ${UCSBASE}/gamble-u
cp -p ${SHALLABASE}/porn/domains          ${UCSBASE}/porn-d
cp -p ${SHALLABASE}/porn/urls             ${UCSBASE}/porn-u
cp -p ${SHALLABASE}/redirector/domains    ${UCSBASE}/redirector-d
cp -p ${SHALLABASE}/redirector/urls       ${UCSBASE}/redirector-u
cp -p ${SHALLABASE}/sex/lingerie/domains  ${UCSBASE}/sex-lingerie-d
cp -p ${SHALLABASE}/sex/lingerie/urls     ${UCSBASE}/sex-lingerie-u
cp -p ${SHALLABASE}/spyware/domains       ${UCSBASE}/spyware-d
cp -p ${SHALLABASE}/spyware/urls          ${UCSBASE}/spyware-u
cp -p ${SHALLABASE}/violence/domains      ${UCSBASE}/violence-d
cp -p ${SHALLABASE}/violence/urls         ${UCSBASE}/violence-u
cp -p ${SHALLABASE}/warez/domains         ${UCSBASE}/warez-d
cp -p ${SHALLABASE}/warez/urls            ${UCSBASE}/warez-u
cp -p ${SHALLABASE}/weapons/domains       ${UCSBASE}/weapons-d
cp -p ${SHALLABASE}/weapons/urls          ${UCSBASE}/weapons-u

# Weitere Listen im Ordner ${UCSBASE}, die auf -u oder -d enden, werden
# nun eingebunden - das ist der „hook” für lokale Anpassungen.

#update-squidguard > /dev/null

# domain und url basierte Blacklisten inkl. lokaler Listen aktivieren:
ucr set proxy/filter/global/blacklists/domains="$(for url in /var/lib/ucs-school-webproxy/ksan/*-d; do echo -n "ksan/$(basename $url) "; done)"
ucr set proxy/filter/global/blacklists/urls="$(for url in /var/lib/ucs-school-webproxy/ksan/*-u; do echo -n "ksan/$(basename $url) "; done)"