Installation von Squidwall

From MilkysWiki
Jump to: navigation, search
i18n
English
Deutsch

Contents

Installation

Squidwall Redirektor

Version

Dieses Dokument beschreibt die Installation von Squidwall Version 0.4b ... die Version 0.5 ist zur Zeit noch eine unstabile Entwicklerversion!

Anmerkungen

Bitte nutzt die Diskussionsseite um Fragen und eventuelle Lösungsansätze zu diskutieren.

Voraussetzungen

Die meisten Distributionen besitzen libowfat nicht, diese Bibliothek ist jedoch zur Kompilierung von Squidwall unbedingt notwendig und muß entsprechend heruntergeladen werden.

Zum kompilieren werden außerdem die Packete "make" und "gcc" benötigt. Alle gängigen Distributionen besitzen diese beiden Packete.

mycache:mkdir ~/packages/
mycache:cd ~/packages/
mycache:wget http://dl.fefe.de/libowfat-0.24.tar.bz2 (or any later version)
mycache:bzcat libowfat-0.24.tar.bz2 | tar -x
mycache:cd libowfat-0.24
mycache:make

Als nächstes muß ein symbolischer Link zur Libowfat Bibliothek erstellt werden, damit sie von der Squidwall Makefile gefunden wird.

mycache:cd ~/packages/
mycache:ln -s ~/packages/libowfat-0.24 ~/packages/libowfat

Kompilieren von Squidwall

Danach wird squidwall gebaut:

mycache:cd ~/packages/
mycache:wget http://www.mcmilk.de/projects/squidwall/dl/squidwall-0.4b.tar.bz2
mycache:bzcat squidwall-0.4b.tar.bz2 | tar -x
mycache:cd squidwall-0.4b
mycache:make
mycache:make install
cp contrib/squidwall.sh /usr/bin/

Squid Konfiguration

Füge folgendes zur /etc/squid/squid.conf hinzu:

redirect_program /usr/bin/squidwall.sh
redirect_children 5
redirector_bypass off
redirector_access deny localhost
acl requireIdent ident REQUIRED
http_access allow requireIdent

Dies würde die Benutzung eines Ident-Daemons zur Benutzeridentifizierung voraussetzen. Für Windows XP kann man Retina Scan's identd nutzen, welcher als Dienst auf jedem Client Rechner installiert wird.

Konfigurieren von Squidwall

Das Startskript /usr/bin/squidwall.sh kann genutzt werden, um diverse Variablen nach seinen eigenen Wünschen anzupassen. Es sollte ungefähr so aussehen:

#!/bin/sh 
 
SERVER="192.168.100.6"
NETWORK="testing"
 
exec env -i \
 LOG_FILE="/var/log/squid/squidwall.log" \
 PROXY="127.0.0.1:3128" \
 CLAMD="127.0.0.1:3310" \
 MAX_SIZE="50000" \
 PFILTER_MAX="100" \
 REDIR_BADUSER="http://$SERVER/inet/deny.php?network=$NETWORK&reason=user&" \
 REDIR_BADHOST="http://$SERVER/inet/deny.php?network=$NETWORK&reason=host&" \
 REDIR_BADCONT="http://$SERVER/inet/deny.php?network=$NETWORK&reason=cont&" \
 REDIR_BADURL="http://$SERVER/inet/deny.php?network=$NETWORK&reason=url&" \
 REDIR_VIRUSFOUND="http://$SERVER/inet/deny.php?network=$NETWORK&reason=virus&" \
 REDIR_BANNERFOUND="http://$SERVER/inet/img/t.png" \
 REDIR_SAFESITE="http://$SERVER/" \
 REDIR_WEBINTERFACE="http://$SERVER/inet/" \
 /usr/bin/squidwall

Webinterface Setup

Lade die aktuelle Version des Beispiel-Webinterfaces von http://www.mcmilk.de/projects/squidwall/dl/webinterface/ herunter und entpacke es unter "/etc" wie folgt:

mycache:cd /etc
mycache:wget http://www.mcmilk.de/projects/squidwall/dl/webinterface/0.4/2006-07-19.tar.bz2
mycache:bzcat 2006-07-19.tar.bz2 | tar -x

Verschiebe das Verzeichnis /etc/squidwall/inet in das Webroot des bereits installierten Apache. Dieses "http://your-server/inet/" wird dann als Basis für die deny.php als auch zum Einstellen der ACL's für squidwall genutzt.

mycache:cd /etc/squidwall
mycache:mv -f inet /home/httpd/www (oder /usr/local/httpd ...)

Öffne /etc/squidwall/webinterface/CONFIG und überprüfe die Einstellungen, insbesondere:

$denypath
$logpath
$lang (english/german)
$P_EXP="/inet"; /* Zugriff auf das Webinterface via http://servername/inet/ */
$P_EXP=""; /* Zugriff via http://squidwall/ - bevorzugt */

Die folgenden Dateien und Ordner müssen dem Webserver-User gehören. Und die Rechte müssen so gesetzt sein, dass Letzterer Lesen und Schreiben kann (bei Ordnern noch das x-Bit setzen).

Überprüfe, ob die folgenden Verzeichnisse und Dateien für den Webbenutzer oder der Webgruppe, meist nobody oder ähnlich, les- und schreibbar sind:

/etc/squidwall/filters
/etc/squidwall/hosts
/etc/squidwall/redirects
/etc/squidwall/users
/etc/squidwall/webinterface/sessions

Dies ist nötig, damit das Webinterface Dateien in diesen Verzeichnissen auch wirklich ändern darf. Falls die Rechte noch angepaßt werden müssen, sollte man folgendes ausführen:

chown -R webuser:webgroup /etc/squidwall

Variablen für die Meldungen

Die folgenden Variablen werden als HTTP GET Parameter an die Weiterleitungsseite übergeben:

$version - aktuelle Version von Squidwall
$url     - angefragte URL
$ip      - Client's IP Adresse
$host    - Hostname des anfragenden Clients
$user    - Benutzername des anfragenden Clients
$method  - the request method: GET, HOST, CONNECT, etc.
$clamd   - Version von ClamAV
$virus   - Name des gefundenen Virus
$filter  - Informationen, warum die Seite gefiltert / geblockt wurde

Verfügbare Filter Mechanismen

Wenn man einen Filter-File erstellt ist es wichtig, dass man eine leere Zeile am Schluss des Files hat. Ansonsten wird der letzte Eintrag nicht beachtet.

Werbefilter

Diese Filter ersetzen Werbungen oder Banner mit einem 1 x 1 Pixel Bild, und blockieren sie somit:

basierend auf Stringvergleiche innerhalb der URL

+b,Filter1,Filter2,Filter3
-b diese Filterung ausschalten

basierend auf regex.7 Ausdrücken innerhalb der URL

+B,Filter1,Filter2,Filter3
-B diese Filterung ausschalten

basierend auf regex.7 Ausdrücken im HTTP-Header

+a,Filter1,Filter2,Filter3
-a diese Filterung ausschalten

URL - Schwarze Listen

basierend auf Stringvergleiche innerhalb der URL

+u,Filter1,Filter2,Filter3
-u diese Filterung ausschalten

basierend auf regex.7 Ausdrücken innerhalb der URL

+U,Filter1,Filter2,Filter3
-U diese Filterung ausschalten

basierend auf den MD5 hash der domain

+m,Filter1,Filter2,Filter3
-m diese Filterung ausschalten

basierend auf den SHA1 hash der domain

+s,Filter1,Filter2,Filter3
-s diese Filterung ausschalten

URL - Weiße Listen

basierend auf Stringvergleiche innerhalb der URL

+w,Filter1,Filter2,Filter3
-w diese Filterung ausschalten

basierend auf regex.7 Ausdrücken innerhalb der URL

+W,Filter1,Filter2,Filter3
-W diese Filterung ausschalten

Filterung von Inhalten

basierend auf Stringvergleiche innerhalb des Inhaltes der Seite

+c,Filter1,Filter2,Filter3
-c diese Filterung ausschalten

basierend auf regex.7 Ausdrücken innerhalb des Inhaltes der Seite

+C,Filter1,Filter2,Filter3
-C diese Filterung ausschalten

Schlagwörter filtern, basierend auf einem Negativ-Punktesystem für jedes gefundene Wort

+p,Filter1,Filter2,Filter3
-p diese Filterung ausschalten

Antivirus Filter

+V
-V diese Filterung ausschalten

Zugriffskontrolle

Squidwall User ACL's


Zum Beispiel: Der Benutzer "foo" soll für das Internet gesperrt werden:

touch /etc/squidwall/users/-foo
touch /etc/squidwall/users/!

Squidwall Host/IP ACL's

Webinterface ACL's

Die Benutzer für das Webinterface werden in zwei Gruppen eingeteilt und in der Datei "/etc/squidwall/webinterface/users.csv" definiert.

Standard Benutzer

Adminstrator

Die Datei selber enthält auch eine kleine Beschreibung, wie man Benutzer per Hand dort definieren kann.

Format der Datei:

user:hash:perm

user -> username
hash -> sha1(user:pass)
perm -> a=admin u=user

Zum Beispiel:
- username    = adminuser
- password    = 12345
- permissions = admin

 -> result: 'adminuser:b810a5905bae88fd4cbbd94639d56b3ae0c43613:a'
Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox