Caching-Proxy squid 2.4 mit Inhaltsfilter squidGuard installieren (SuSE 8.1) |
Beitrag von Uwe Walther, Lampertheim
Installationsziel:
Ein (einfacher) Squid 2.4 -Caching-Proxy-Server (unter SuSE 8.1) mit Inhaltsfolter
squidGuard soll eingerichtet werden (siehe Schema rot umrandet).
Der Internet-Explorer eines Windows-Client soll für den Zugriff über Proxy konfiguriert
werden.
Es wird einer der im Abschnitt A beschriebenen fli4l-Router für die Einwahl ins Internet
verwendet.
Schema:
Ausgangslage:
Ein Windows-Client (Win2000) ist als Standolanoe-PC eingerichtet und ein fli4l-Router
wurde (wie in einem der Beiträge zur Einrichtung eines Routers in Abschnitt A
beschrieben) betriebsbereit aufgebaut.
Notwendige Vorkenntnisse:
Kenntnisse über die Unterscheidung zwischen Hardware und Gerätetreibern.
Kenntisse im Betriebssystem Windows und in der Installation von Gerätetreibern unter
Windows. Grundkenntnisse in Befehlen zur Datei- und Verzeichnisverwaltung unter DOS oder
Linux/Unix sowie Kenntnisse in vi oder einem anderen Zeileneditor von Linux sind sinnvoll.
Funktionsweise des Proxy-Systems mit Inhaltsfilter:
Wenn der Proxy-Server läuft werden die Verbindungen ins Internet stets über den
Proxy-Server geleitet. Hierzu wird der Proxy-Server mit seiner IP-Adresse und Port im
Browser des Windows-Clients eingetragen. Der Proxy-Server bedient die Anfragen des Client
aus seinem Cache (Internet-Zwischenspeicher). Liegen die Daten dort nicht vor (weil sie
das erste Mail anagefordert wurden oder weil sie nicht mehr aktuell sind) werden sie vom
Proxy aus dem Internet geholt. Des Weiteren werden alle Anfragen gegen eine Liste mit
"verbotenen Seiten" sowie unerwünschten Ausdrücken in der URL verglichen. Wird
eine Übereinstimmung gefunden, wird die Anfrage umgeleitet (redirect) und eine HTML-Seite
mit dem Hinweis: "Zugriff nicht gestattet" o. ä. ausgegeben.
Installationsschritte kurz skizziert:
- Es wird ein SUSE-Minimalsystem installiert
- Das Basispaket wird um die Programme squid, squidguard und apache erweitert.
- Die Netzwerkgrundfunktionalität wird eingerichtet und getestet
- Der Proxy und der Inhaltsfilter werden konfiguriert, gestartet uind getestet
(Konfigurationsdateien: squid.conf, squidguard.conf)
- Der Browser des Client wird für Proxy konfiguriert und getestet
- Die HTML-Seite(n) die vom Redirector aufgerufen werden, werden auf den Apache gelegt,
der Apache gestartet und getestet.
1. Installation und Netzwerk-Grundkonfiguration
1.1 Linux-Grundinstallation und Proxy-Serversoftware installieren
Für dieses Beispiel verwendete Hardware: Pentium 200 MHz, 128 MB RAM, HDD: 1,6
GB, Floppy, Monitor VGA 640*480, DVD-ROM-Laufwerk. Ich schätze als Minimalvoraussetzung
sollte ein Pentium ab 90 MHz, 64 MB RAM und eine HDD ab 1 GB ausreichend sein.
SuSE 8.1 über Installations-DVD oder Installations-CD-ROM Nr.1 starten. Grundsätzlich
gehen Sie bei der Installation wie im Handbuch beschrieben vor. Sie führen eine
Installation nach den Vorschlägen von Linux durch. Einziger Punkt, der zu beachten ist:
nur Minimal-System installieren, da sonst der Plattenplatz nicht reicht. Hierzu, wenn das
Menü "Software-Auswahl" angeboten wird, das "Minimal-System"
auswählen. Das Minimal-System benötigt zusätzlich nur drei Programm-Pakete, die sie
über die Schaltfläche "Erweiterte Auswahl" hinzufügen können. Am einfachsten
ist es nach den Paketen zu suchen und in jeweils in der Auswahlliste als "zu
installieren" zu markieren. Wie man das macht erfahren Sie über "Hilfe".
Es handelt sich um die Pakete:
squid Das Proxy-Server-Paket
squidgrd Der Inhaltsfilter squidguard
apache Der Apache-Webserver
Danach starten Sie den Kopiervorgang. Bei der Installation per CD-ROM ist es von nöten nach Aufforderung die CD zu wechseln.
Irgendwann ist SuSE mit seiner Kopierarbeit fertig und bittet um die Eingabe des
Passworts für den Superuser "root".
Passwort eingeben, Wiederholen und auf <Next> gehen.
Ein Standard-User ist einzutragen. Kriterien: Vor- und Nachname, Name unter dem sich der User anmeldet, Passwort (8 Zeichen).
Das System verarbeitet die Informationen und sucht dann nach der Netzwerkkarte. Danach
muss für das Netzwerkdevice mit dem Namen eth0 (Treiber für die erste Netzwerkkarte)
eine IP-Nummer vergeben werden.
Bitte unter "Static address setup" eingeben:
IP-Adresse 192.168.6.253, Netzwerkmaske 255.255.255.0
Hinweis: Alle in diesem Beitrag empfohlenen Konfigurationsparameter (IP-Adressen etc.) sind auf den unter Abschnitt A aufgebauten Router abgestimmt. Sofern Sie andere Konfigurationsparameter einstellen, ist auch der Router ggfs. anzupassen.
In die Sektion "Detailed settings" wechseln und <Host name and name
server> auswählen.
Im Menü "Host name and name server configuration" unter "Host name and
domain name" den "Domain name"ändern in "lan" (weil der
Domänenname bei dem fli4l auch so heißt.). Es ist sauberer konfiguriert aber nicht
zwinged notwendig.
In die Sektion "Name servers and domain search list" unter "Name server
1" die
IP-Nummer des DNS-Servers 194.25.2.129
(der Beitrag bezieht sich auf den Provider T-Online bzw. 1&1; sollten Sie
einen anderen Provider haben, geben Sie deren IP-Nummer ein) und unter
"Domain search 1" den
Domänenname "t-online.de"
eingeben und <Next>.
Zurück im Menü <Network address setup> in der Sektion "Detailed
settings> das Menü <Routing> auswählen.
In "Default gateway" die IP-Nummer des fli4l-Router
Router 192.168.6.254
eingeben und die Option "Enable IP forwarding" aktivieren. Weiter mit
<Next>.
Das Menü "Network address setup" verlassen mit <Next>. Das Menü "Network cards configuration" verlassen mit <Finish>. Das Menü "Installation Settings" verlassen mit <Next>. Die Netzwerkeinstellungen werden übernommen, das System entsprechend eingestellt und die Einstellungen gspeichert. Das System läuft hoch.
Wenn die Meldung "Master Resource Control: runlevel 3 (oder runlevel 5, je nach Hardwarevoraussetzungen und Programmumfang) has been reached" erscheint, dann kann man sich einloggen.
Testen wir mal ob das Netzwerk funktioniert:
Testen, ob die Karte intern erreichbar ist: ping 192.168.6.253
Testen, ob der Router im Netz erreichbar ist: ping 192.168.6.254
Testen, ob T-Online erreichbar ist: ping 194.25.2.129
Testen, ob ein Rechner im Internet über die Eingabe eines Webnamens erreichbar ist: ping
www.lowpriceproject.de
Troubleshooting:
Das Thema ist leider zu komplex um alle Ursache hier abzuhandeln. Ich empfehle
folgende Vorgehensweise:
-Ist die Karte schon mittels ping 192.168.1.253 nicht erreichbar, so empfehle
ich eine Neuinstallation nach Handbuch, nicht mit dem Ziel einen Proxy aufzubauen, sondern
sich grundsätzlich mit der Materie vertraut zu machen. Sie sollten ausßerdem sicher
stellen, daß die Karte nicht defekt ist. Eine neue PCI-Karte Realtek-Chipsatz für 6,-
bis 10,- Euro könnte vielleicht schon helfen. Erst wenn sicher gestellt ist, daß die
Karte grundsätzlich funktioniert, können Sie weiter machen.
- Ist der Router im Netz nicht erreichbar, so sollten Sie die IP-Adressen auf dem Proxy
wie auch auf dem Router noch einmal überprüfen. Beide sollten in den ersten drei
Blöcken 192.168.6 haben. Der Proxy hat dann die 253 als Rechnernummer und der
Router die 254. Natürlich könnte es auch an der Verkabelung und am Hub liegen. Hier auch
noch mal kontrollieren.
- Ist der T-Online-Rechner nicht erreichbar, probieren Sie am Router ob mittels ping
194.25.2.129 on eine Einwahl ins Internet statt findet. Funktioniert es da schon nicht,
dann sind die Voraussetzungen für den Aufbau des Proxies (Einrichten eines fli4l oder
sontigen Routers) nicht erfüllt. Macht er es mittels ping 194.25.2.129 nur vom Proxy aus
nicht, dann überprüfen Sie bitte die Routing-Tabelle wie folgt:
route -n
Es sollten diese zwei Zeilen (auszugsweise) vorhanden sein:
192.168.1.0 0.0.0.0 255.255.255.0
eth0
0.0.0.0 192.168.1.254
eth0
Fehlt der zweite Eintrag, dann kontrollieren Sie die Datei
/etc/sysconfig/network/routes
Sie sollte folgende Zeile beinhalten:
default 192.168.1.254 - -
Ist diese in Ordnung, kontrollieren Sie bitte die Datei /etc/resolv.conf
Sie sollte dies beinhalten:
nameserver 194.25.2.129
search t-online.de
Nach den Änderungen machen Sie einen Neustart und probieren es noch einmal.
Weiter gehts jetzt in Richtung Proxy-Konfiguration
Anzeigen der Serverprogramme (nachschauen ob die Software, die wir benötigen, im
System vorhanden ist) mit
ls -ls /usr/sbin/squid
ls -ls /usr/sbin/squidGuard
ls -ls /usr/sbin/httpd
Troubleshooting:
Fehlt eines der Serverprogramme, dann überprüfen Sie bitte noch einmal ihre
Schreibweise. Fehlt es immer noch, starten Sie yast und installieren Sie die Pakete noch
einmal. Hier sei auch auf das Handbuch verwiesen.
1.2 Proxy-Server konfigurieren
Wechseln Sie ins Verzeichnis /etc/squid und überprüfen bzw. editieren Sie in
der Datei squid.conf folgende (rot unterlegten) Einträge
#
# /etc/squid.conf
NETWORK OPTIONS
# keine Änderungen
OPTIONS WHICH AFFECT THE NEIGHBOR SELECTION ALGORITHM
keine Änderungen
OPTIONS WICH AFFECCT THE CACHE SIZE
# keine Änderungen
LOGFILE PATHNAMES AND CACHE DIRECTORIES
# nur zur Info, keine Änderungen
# für 512 MB Cache, 16 Verzeichnisse, 256 Unterverzeichnisse; Standard: 100MB
cache_dir ufs /var/cache/squid 100 16 256
OPTIONS FOR EXTERNAL SUPPORT PROGRAMS
# TAG: redirect_programm
#Default:
# none
redirect_program /usr/sbin/squidGuard
OTIONS FOR TUNING THE CACHE
# keine Änderungen
TIMEOUTS
# keine Änderungen
ACCESS CONTROLS
# Hier ist Standardmäßig alles verboten und muß dediziert erlaubt werden
# zu diesem Zweck muß bei "http" der Eintrag "deny" in
"allow" geändert werden.
# (ungefähr in Zeile 1458) "http access deny all" umwandeln in:
http access allow all
ADMINISTRATIVE PARAMETERS
# Hier wird die E-Mail des Cache-Administrators
festgelegt.
cache_mgr ihreemailadresse@ihredomain.top
OPTIONS FOR THE CACHE
REGISTRATION SERVICE#
1.3 SquidGuard konfigurieren
In der Datei /etc/squidguard.conf die (rot
unterlegten) Einträge erzeigen bzw. editieren (sonst darf nix drin sein). Beachten Sie
bitte peinlichst genau die Exakte Schreibweise und die vielen geschweiften Klammern.
# squidGuard Konfigurationsdatei
# /etc/squidguard.conf (hier mit kleinem "g")
# Pfadangabe zu den logdateien. Die müssten aber noch
# konfiguriert werden.
logdir /var/squidGuard/logs
# Der gesamte Pfad zu den Dateien domains, urls und expressions
# ist /var/squidGuard/db/blacklist
# für dbhome wird hier wird das übergeordnete Verzeichnis angegeben!
dbhome /var/squidGuard/db
# Hier die globalen Parameter
dest blacklist {
domainlist blacklist/domains
urllist blacklist/urls
expressionlist blacklist/expressions
redirect http://www.lowpriceproject.de/verweigert.html
}
dest expressions {
expressionlist blacklist/expressions
redirect
http://www.lowpriceproject.de/verweigert2.html
}
# Hier wird entschieden ob Zugriff erlaubt oder verboten ist.
# Will man erlauben, dann muesste das Ausrufezeichen weg.
acl {
default {
pass !blacklist all
}
}
1.4 Starten und Testen der Server
Starten Sie squid (und damit auch automatisch squidguard) mittels
rcsquid start
Ob der Server läuft sehen Sie mit
ps ax | grep squid
In der Bildschirmausgabe sollten diese Einträge (Auszugsweise) zu sehen
sein:
....../usr/sbin/squid -sYD
..... (squid) -sYD
Wenn der Server nicht läuft gibts mehrere mögliche Gründe:
-Der Squid-Cache wurde verhunzt (z.B. durch manuelles löschen
"drüberinstallieren")
Der Cache kann so neu aufgebaut werden:
Squid aufrufen mit:
/usr/sbin/squid -z
Es werden Fehlerdetails ausgegeben. Beim Fehler
FATAL: Failed to make swap directory /var/cache/squid: (13) Permission denied
folgendes machen
Abhilfe:
Als root durchführen:
rcsquid stop (squid beenden)
cd /var/cache/
rm -R squid (löscht den gesamten Cache, dauert etwas, wird
bei zerschossenem Filesysem Fehlermeldungen bringen)
mkdir squid (Cache-Verzeichnis neu anlegen)
chown -c squid:nogroup squid (Rechte setzen, Besitzer: squid, Gruppe:
keine)
chown squid:nogroup cache (Rechte setzen)
/usr/sbin/squid -z (den Cache neu aufbauen lassen)
1.5 Automatisches starten des Squid
Die Automatisierung des Squid-Serverstarts erfolgt über insserv.
insserv squid
Anschließend starten Sie das System neu.
2. Konfiguration des Windows-Client
2.1 Den Client für Caching-Proxy konfigurieren
Internet-Explorer aufrufen.Im der Menüleiste den Menüpunkt <Extras> anwählen. Im
Pull-Down-Menü den Menüpunkt <Internetoptionen> anwählen. Im Dialogfenster die
Registerkarte <Verbindungen> auswählen. In der Registerkarte
"Verbindungen" den Menüpunkt <LAN-Einstellungen> anwählen. Dort
<Proxyserver verwenden> einschalten und IP-Nummer (192.168.1.253) sowie den Port
(3128) eintragen.
2.2 Testphase
Die Zugriffsgeschwindigkeit testen. Dazu erst mal eine große Seite aus dem Internet
downloaden. Den Lokalen Cache des Windows-Clients löschen. Dann die Seite nochmals aus
dem Internet anfordern. Die Ladezeitdauer müßte jetzt deutlich kürzer sein. Geben Sie
anschließend eine unsinnige URL ein. Der Proxy müßte sich jetzt im Brwoserfenster
ausweisen. Rufen Sie jetzt eine Suchmaschine auf und geben Sie einen unerwünschten
Suchbegriff ein (Siehe in den Dateien unterhalb von /var/squidGuard/db nach). Es sollte
jetzt folgender Hinweis (auf blauem Grund) kommen:
ZUGRIFF VERWEIGERT
|
Hinweis: Es werden zwei unterschiedliche Seiten ausgegeben. Für unserlaubte URLs bzw. Domains die verweigert.html und für unerlaubte Ausdrücke die verweigert2.html. Zum Testen ist das besser. Sie sehen schon was ich meine, wenn Sie es ausprobieren.
3. Die Seiten für den Redirector auf dem Proxy installieren
Sollte alles bis hierhin funtkioniert haben: HERZLICHEN GLÜCKWUNSCH.
Kommen wir nun zur KÜR:
In der von mir vorgeschlagenen squidguard-Konfiguration wird mittels redirect (Umleitung)
bei unerwünschten Seiten oder Ausdrücken in der URL auf zwei Seiten in der Domain www.lowpriceproject.de/verweigert
(bzw. www.lowpriceproject.de/verweigert2)
verzweigt. Ich kann mir vorstellen, daß es Ihnen vielleicht sympatischer ist, einen
eigenen Mechanismus hierfür zu etablieren. In weiser Voraussicht haben wir hierfür den
Apache installiert.
Erzeugen Sie im Verzeichnis /srv/www/htdocs die Datei verweigert.html mit z.B.
folgendem Inhalt:
<html>
<head>
<title></title>
</head>
<body </body bgcolor="#000080" topmargin="0"
leftmargin="0">
<table border="0" width="100%">
<tr>
<td width="100%"><p align="center"></td>
</tr>
<tr>
<td width="100%" bgcolor="#FF0000"><p
align="center"> </p>
<p align="center"><font color="#FFFFFF"
face="Arial"><strong><big><big><big>ZUGRIFF
VERWEIGERT</big></big></big></strong></font></p>
<p align="center"><font color="#FFFFFF"
face="Arial"><strong><br>
</strong></font></td>
</tr>
<tr>
<td width="100%"><p align="center"></td>
</tr>
</table>
</body>
</html>
oder eine eben eine Datei die Ihren persönlichen Ansprüchen genügt. Meines Wissens nach ist es auch möglich eine GIF-Datei zu hinterlegen, das habe ich allerdings noch nie ausprobiert.
Jetzt starten sie den Apache mittels
rcapache start
Geben Sie anschließend die IP-Nummer ihres Apache-Webserver im Browser ein. Sie sollten
folgendes zu sehen bekommen:
Mittels
insserv apache
aktivieren Sie den automatischen Start beim Hochfahren des Systems. Jetzt ist die
Squidguard-Konfiguration auf ihren Apache anzupassen. Editieren Sie hierzu die /etc/squidguard.conf
wie folgt (rot unterlegt):
dest blacklist {
domainlist blacklist/domains
urllist blacklist/urls
expressionlist blacklist/expressions
redirect
http://127.0.0.1/verweigert.html
}
dest expressions {
expressionlist blacklist/expressions
redirect
http://127.0.0.1/verweigert.html
}
Neustart des Systems. Voila, das war´s.
4. Nachbearbeiten bzw. ergänzen der blacklists
Im Verzeichnis /var/squidGuard/db/blacklist finden Sie drei Dateien:
domains
urls
expressions
Hier können Sie eigene Ergänzungen einpflegen.
Hinweis zu expressions:
Beachten Sie bitte, daß bei expressions nur drei Zeilen existieren (die je nach
verwendetem Programm zur Anzeige umgebrochen werden könnten). In der ersten Zeile können
Sie zusätzliche (zwischen zwei | ) Begriffe eintragen (alphabetische Reihenfolge
beachten).
>> Eine für Schulen optimierte blacklist anfordern <<
....... Ende des Beitrags