andere Farbe:
andere Schriftgröße: 60% 70% 80% 90%

Proxy-Server

1. Was ist ein Proxy?
2. Zugriffskontrollen
3. Überwachen des Proxys
4. Datenschutz
5. Squid installieren
6. Squid konfigurieren
7. Squid starten und beenden
8. SquidGuard installieren
9. SquidGuard konfigurieren
10. Verwendung der Berkeley-DB-Datenbank
11. Blacklists hinzufügen

Homepage des Proxy-Server Squid: http://www.squid-cache.org/

Homepage des SquidGuard: http://www.squidguard.org/

FAQ zum Proxy-Server Squid: http://wiki.squid-cache.org/SquidFaq/

1. Was ist ein Proxy? (nach oben)

Ein Proxy arbeitet als Vermittler, der auf der einen Seite Anfragen entgegennimmt, um dann über seine eigene Adresse eine Verbindung zur anderen Seite herzustellen.

Er kann die Daten zusammenhängend analysieren, Anfragen filtern und bei Bedarf beliebige Anpassungen vornehmen, aber auch entscheiden ob und in welcher Form die Antwort des Ziels an den tatsächlichen Client weitergereicht wird. Mitunter dient er dazu, bestimmte Antworten zwischenzuspeichern, damit sie bei wiederkehrenden Anfragen schneller abrufbar sind, ohne sie erneut vom Ziel anfordern zu müssen.

2. Zugriffskontrollen (nach oben)

Es gibt drei Arten der Zugriffskontrolle:

Anonymous Proxy: Anfragen werden von beliebigen Rechnern und Anwendern entgegen genommen.
Proxy-Server mit Authentifizierung: Erst nach erfolgreicher Authentifizierung des Anwenders durch Benutzername und Passwort werden Anfragen ausgeführt.
Proxy-Server mit Zugriffsregeln: Diese legen beispielsweise fest, zu welchen Zeiten bestimmte Daten aus dem Internet geladen werden dürfen.

Die Kontrolle der Zugriffsbeschränkungen kann man entweder direkt über Squid vornehmen oder über ein externes Programm wie SquidGuard.

3. Überwachen des Proxys (nach oben)

Wie kann ich den Verkehr bzw. die Web-Seiten sehen, die von den Usern abgerufen wurden? Am besten benutzt man dafür ein externes Tool wie Webalizer. Das Programm wertet die Log-Dateien von Squid aus. Es erstellt ein Übersicht aller Web-Seiten, die abgerufen wurde. Sowie die Anzahl der Anfragen, übertragenen Bytes und Tagesstatistiken. Finden Sie in der Webalizer-Auswertung Web-Seiten die gesperrt werden sollten, tragen Sie die Domain oder URL in die Datenbank ein. Um eine Domain oder ein URL sperren zulassen, siehe unten: SquidGuard konfigurieren
Webalizer finden Sie auf: Webalizer
Wenn man sich eine Übersicht über die aktuellen Daten von Squid verschaffen möchte, kann man das Cachemanager-Programm benutzen. Dazu kopiert man die Datei /usr/local/squid/bin/cachemgr.cgi in das CGI-Verzeichnis des Webservers (Setzen Sie die Dateirechte entsprechend).
In der Datei /etc/squid/squid.conf stellt man noch folgendes ein, damit der Cachemanager Zugriff auf Squid erhält:

http_access allow manager
cachemgr_passwd password all

Über einen Webbrowser greifen Sie über die URL http://Name_des_Proxy_server/cgi-bin/cachemgr.cgi auf den Cachemanager zu.

4. Datenschutz (nach oben)

Die IP-Adresse jeden Clients und der Benutzername für die Authentifizierung werden vom Proxy-Server mitprotokolliert. Diese Informationen lassen sich personenbezogen auswerten und verwenden. Vor allem der Benutzername in Verbindung mit aufgerufenen Seiten in den Auswertungen ist im Sinne des Datenschutzes bedenklich. Daher sollten Sie Ihre Anwender gegebenenfalls über Nutzungsrichtlinien darauf hinweisen.

5. Squid installieren (nach oben)

Bei einem Debian-Distribution ist es relativ einfach:apt-get install squid Die manuelle Installation des Squid-Paketes beginnt mit dem herunterladen des Squid-Paketes über www.squid-cache.org

1. tar-Archiv entpacken: tar xzvf squid-2.4.STABLE1-src.tar.gz
2. in das squid-Verzeichnis wechseln: cd squid-2.4.STABLE1-src
3. Konfiguration ausführen: /configure --prefix=/usr/local/squid --sysconfdir=/etc/squid
Mit prefix wird das Verzeichnis bestimmt, in demSquid installiert wird.
Mit sysconfdir wird das Verzeichnis bestimmt in dem die Konfigurationdateien liegen sollen.
4. make ausführen: make und
make install

6. Squid konfigurieren (nach oben)

User und Verzeichnisse anlegen:
useradd -g nogroup -d /var/squid -c "Proxy-Squid" -s /bin/bash squid
mkdir /var/squid/cache
mkdir /var/squid/logs
chown -R squid.root
/var/squid htpasswd -c /etc/squid/passwd Benutzername
Cache initialisieren:
su squid /usr/local/squid/bin/squid -z
Die Konfigurationdatei liegt unter /etc/squid und heißt squid.conf

7. Squid starten und beenden (nach oben)

Squid starten: /usr/local/squid/bin/squid
Squid beenden: /usr/local/squid/bin/squid -k shutdown

8. SquidGuard installieren (nach oben)

Für die Installation von SquidGuard wird die Version 2.x der Berkeley-DB-Library benötigt.
Das Paket kann man unter der folgenden Adresse herunterladen: http://www.oracle.com/database/berkeley-db/index.html

1. tar-Archiv entpacken tar xzvf squidguard-xxxx.tar.gz
2. in das squid-Verzeichnis wechseln: cd squidguard-xxxx/build_unix/
3. Konfiguration ausführen: ./configure --prefix=/usr/local --sysconfdir=/etc/BerkeleyDB
4. make ausführen make und make install

Das Paket SquidGuard bekommt man von http://www.squidguard.org/

1. tar-Archiv entpacken tar xzvf squidGuard-xxxx.tar.gz
2. in das squid-Verzeichnis wechseln: cd squidGuard-xxxx
3. Konfiguration ausführen: ./configure --prefix=/usr/local/squidGuard
--with-sg-config= /etc/squidGuard.conf
--with-sg-logdir=/var/squidGuard/log
4. make ausführen make und make install

9. SquidGuard konfigurieren (nach oben)

Zuerst muss die Konfigurationsdatei angelegt werden: touch /etc/squidGuard.conf
SquidGuard kann mit einer Negativliste oder mit einer Positivliste arbeiten: Bei einer Negativliste gilt: "Alles was nicht verboten ist, ist erlaubt." Bei einer Positivliste, muss die Erlaubnis vor den Verboten stehen. Alle Konfigurationsänderungen werden mit dem folgenden Befehl aktiviert:

/usr/local/squid/bin/squid -k reconfigure

SquidGuard arbeitet anhand von Datenbanken oder Textdateien: Domain-Listen zum Sperren ganzer Domains, URL-Listen zum Sperren spezieller URLs oder reguläre Ausdrücke, mit deren Hilfe Sie bestimmte Muster in den URLs und Domains verbieten. Diese Dateien und auch die Logfiles sollte man in einem zentralen Verzeichnis speichern:

mkdir /var/squidGuard
mkdir /var/squidGuard/db
mkdir /var/squidGuard/log

Es können verschiedene Datenquellen verwenden werden. z.B.:

mkdir /var/squidGuard/db/sex
mkdir /var/squidGuard/db/banken

Filtern von Domains:

In einer Textdatei werden alle Sex-Domains, die gesperrt werden sollen, untereinander eingetragen. Diese Textdatei wird anschließend in dem Verzeichnis /var/squidGuard/db/sex gespeichert. Weitere, z.B. Banken-Domains, die gesperrt werden sollen, kann man in einer anderen Textdatei speichern und in dem Verzeichnis /var/squidGuard/db/banken speichern.

Filtern bestimmter URL:

Sollen nur bestimmte URLs gesperrt werden, legen Sie eine Datei mit dem Name z.B. sex.urls unter /var/squidGuard/db/sex an. In dieser Datei tragen Sie dann die einzelnen URLs ein, gesperrt werden sollen.

Filtern nach Stichwörtern:

Sollen alle Domains oder URLs gesperrt werden, die bestimmte Buchstabenkombinationen enthalten, erstellen Sie eine Datei z.B. banken.regex und tragen dort untereinander alle Buchstabenkombinationen ein, die gesperrt werden sollen.

10. Verwendung der Berkeley-DB-Datenbank (nach oben)

Durch die Verwendung der Textdatei zur Filterung bestimmter Domain oder URLs erhöht sich die System-Perfomance, da jede URL gegen diese Stichwörter geprüft wird. Bei sehr großen Domain- und URL-Listen sollte nicht die Textdateien verwendet werden, sondern die Berkeley-DB-Datenbank. Die Zugriffsgeschwindigkeit erhöht sich dadurch erheblich. Als Vorlage für die Datenbank verwenden Sie die angelegten Textdateien, die Sie mit dem folgenden Befehl umwandeln:

/usr/local/squidGuard/bin/squidGuard -C Dateiname

Zum Verwalten der Datensätze wird ein so genanntes Diff-File verwendet. Geben Sie in diesem die Datensätze in folgender Form an:

+domain.hinzufügen.de
-domain.aus.Datenbank.entfernen.de

Die Diff-Datei muss im gleichen Verzeichnis wie die betreffende Datenbank liegen und zwingend Name-der-Datenbank.diff lauten. Mit dem Befehl:

/usr/local/squidGuard/bin/squidGuard -u

werden alle Datenbanken aktualisiert. Die Änderungen gelten sofort, so dass Sie Squid nicht neu starten müssen. Nach der Aktualisierung löschen Sie das Diff-File. Die Verzeichnisse und Dateien gehören dem Benutzer squid und die Datenbank-Dateien sollten auch nur von diesem Benutzer und der entsprechenden Gruppe lesbar sein. Dadurch wird vermieden, dass jeder Anwender die komplette Liste der verbotenen Sites einsehen kann.

chown -R squid.root /var/squidGuard
chmod 640 /var/squidGuard/db/*/*

Zuletzt kopieren Sie das CGI-Skript squidGuard.cgi aus dem Verzeichnis sample des Quellverzeichnisses in den CGI-Ordner des Webservers. Geben Sie der Datei zudem ausführbare Rechte. Ferner sind im Skript wenige Einstellungen anzupassen, wie die E-Mail-Adresse, an die sich Benutzer wenden können, falls sie eine Sperrung für ungerechtfertigt halten.

11. Blacklists hinzufügen (nach oben)

Neben der Verwendung Ihrer eigenen Datenbank können Sie so genannte Blacklists über die Homepage von SquidGuard herunterladen. Blacklists sind vorgefertigte Datenbanken mit Adressen mit zweifelhaften Inhalten. Die Listen können einfach in den Proxy-Server integriert werden. Solche Listen sind allerdings nicht allumfassend, bieten aber eine hervorragende Basis.