Benutzer-Werkzeuge


squidGuard installieren

WICHTIG-IMPORTANT:

Mit aktuellen Firmwaren gibt es - aus mir zur Zeit unbekannten Gründen - Probleme mit dem configure Kommando. Obwohl die Berkeley-DB (libdb) von ipkg installiert ist, wirft configure immer einen Fehler und beschwert sich über eine nicht passende libdb Version. Auch mit der libdb der Firmware geht es leider nicht. So wie es ausschaut lässt sich daher squidguard nicht mehr so bauen wie mit alten Firmwaren.

With the most recent firmware there are currently problems compiling squidguard. Although libdb is in place from ipkg the configure command complains about missing libdb. Even the libdb version shipped with the firmware does not allow to compile the squidguard. So it looks like squidguard cannot be build anymore.


Tobi 2012/06/18 10:41


Was ist das?

squidGuard ist ein Aufsatz für die Proxy Software squid. Es ermöglicht relativ einfach eigene Regeln in den Ablauf von squid einzubauen (z.B. Blacklists von IP/Domains)

Installation

Leider gibt es squidGuard nicht als ipkg Paket in der Paketverwaltung. Daher muss man die benötigten Dateien aus den Quellen selber kompilieren. Das hört sich erstmal schwierig an, ist es aber nicht wirklich ;-)

Vorarbeiten

Damit man auf der DS überhaupt Quellen kompilieren kann muss man erst die benötigten Pakete via ipkg installieren. Benötigt werden folgende Pakete

  • crosstool-native ODER gcc
  • optware-devel
  • libdb

Bei meiner DS107+ musste ich gcc anstelle der crosstool-native nehmen, da letzteres gar nicht vorhanden war

$ ipkg update
$ ipkg install gcc
$ ipkg install optware-devel
$ ipkg install libdb

Download der Quellen

Auf der Homepage des Projekts gibt es die Quellen (http://www.squidguard.org/Downloads/squidGuard-1.4.tar.gz). Diese Datei muss man herunterladen und entpacken

$ cd /opt/etc
$ wget http://www.squidguard.org/Downloads/squidGuard-1.4.tar.gz
$ gzip -d ./squidGuard-1.4.tar.gz
$ tar xfv ./squidGuard-1.4.tar

Kompilieren der Quellen

Zum Kompilieren der Quellen wechselt man erst in das Verzeichnis wo die Sourcen entpackt wurden (z.B. /opt/etc/squidGuard-1.4)

$ cd ../squidGuard-1.4
$ ./configure --prefix=/opt --with-db-inc=/opt/include --with-db-lib=/opt/lib --sysconfdir=/opt/etc/squidGuard
$ make
$ make install

und schon liegen die Binaries in /opt/bin/squidGuard und die Config files in /opt/etc/squidGuard/

Konfiguration

Die Konfiguration von squidGuard gestaltet sich relativ einfach.

squidGuard.conf

In dieser Datei werden die Kategorien und Zugriffsregeln erstellt. Wichtig ist, dass

dbhome /opt/etc/squidGuard/db
logdir /opt/etc/squidGuard/log

korrekt gesetzt sind

Kategorien und Zugriffregeln

Damit squidGuard die Kategorien erkennen kann muss man ihm diese erst bekannt machen

dest ads {
        domainlist      ads/domains
        urllist         ads/urls
}

erstellt eine Kategorie Namens ads. Unter /opt/etc/squidGuard/db/ads müssen sich die beiden Dateien domains und urls befinden. Diese stellen die Blacklist für die Kategorie ads dar. Unter http://www.squidguard.org/blacklists.html gibt es einige Links zu Anbietern solcher Listen, wobei ich persönlich Shalla Secure Services verwendet habe.

Auf angelegte Kategorien kann man dann in den Zugriffsregeln referenzieren

acl {
        default {
                pass !ads all
                redirect http://localhost/block.html?clientaddr=%a&clientname=%n&clientuser=%i&clientgroup=%s&targetgroup=%t&url=%u
        }

}

Blacklists installieren

$ cd /opt/etc/squidGuard/db
$ wget http://www.shallalist.de/Downloads/shallalist.tar.gz
$ gzip -d blacklist.tar.gz
$ tar xfv blacklist.tar

Blacklists initialisieren

$ squidGuard -C all
$ chown -R nobody /opt/etc/squidGuard/*

Es ist wichtig, dass die db Files dem User gehören unter dem squidGuard läuft und das ist auf der DS nobody.

Testen der Konfiguration

Zum schnellen Funktionstest kann man folgenden Befehl benutzen

echo "http://DOMAIN.TLD CLIENT_IP/ - - GET" | squidGuard -c /opt/etc/squidGuard/squidGuard.conf

Wobei DOMAIN.TLD eine Domain sein sollte die auf der Blacklist steht und CLIENT_IP die IP Adresse eures Clients. Wenn alles geklappt hat, dann sollte euch als Antwort die Redirect URL angezeigt werden.

squidGuard in squid einbauen

Damit squid auch weiss, dass es den squidGuard verwenden soll, muss man noch einige Einträge in die squid.conf vornehmen

redirect_program /opt/bin/squidGuard
redirect_children 2

Die children definieren wieviele Subprozesse beim Start initialisiert werden sollen. In diesem Falle werden also zwei squidGuard-Instanzen beim Start von squid aktiviert.

$ ps | grep squid
# 2497 root        492 S   /opt/sbin/squid -f /opt/etc/squid/squid.conf
# 2499 nobody    25536 S   (squid) -f /opt/etc/squid/squid.conf
# 2510 nobody     3588 S   (squidGuard)
# 2511 nobody     3184 S   (squidGuard)
# 2512 nobody      612 S   (ncsa_auth) /opt/etc/squid/etc/passwd
# 2513 nobody      304 S   (ncsa_auth) /opt/etc/squid/etc/passwd

Bei mir werden zusätzlich noch zwei Instanzen für die Authentifizierung mit ncsa_auth gestartet.

Melden Sie sich an, um einen Kommentar zu erstellen.

Seiten-Werkzeuge