Der folgende Beitrag beschreibt die Installation eines Web Proxy inklusive Virenscan. Benutzt wurde hierzu wiederum nur freie Software. Als Proxy Squid, als Virenscanner ClamAV mit freshclam als Signaturupdater und c_icap zur Verbindung der beiden Prozesse. Das ganze lässt sich zwar auch über einen ClamAV Redirector lösen, ist jedoch um einiges langsamer.
Man findet im Internet ziemlich wenig über die Anbindung von Squid an ClamAV. Die Informationen verweisen auf Komplettpakete wie z.B. Dansguardian. Über c_icap findet man wiederum fast ausschließlich russische Foren, welche etwaige Probleme behandeln.
Ich verwende ein Debian etch 4.0 System, welches mittels der netinst CD hochgezogen wurde. Es sind ausschließlich die Pakete des “Standard-Systems” installiert. Weder Desktop Umgebung noch etwaige Server Applikationen sind vorhanden. Die Umgebung läuft in einer VMware, was aber in unserem Fall keinen Unterschied zu einem eigenständigen physikalischen System bringt.
uname -a
Linux etchy 2.6.18-4-486 #1 Mon Mar 26 16:39:10 UTC 2007 i686 GNU/Linux
Zuerst brauchen wir natürlich SSH Zugang
apt-get install openssh-server
Nun installieren wir Squid
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut... Fertig
Die folgenden zusätzlichen Pakete werden installiert:
squid-common
Vorgeschlagene Pakete:
squidclient squid-cgi logcheck-database resolvconf smbclient
Die folgenden NEUEN Pakete werden installiert:
squid squid-common
0 aktualisiert, 2 neu installiert, 0 zu entfernen und 1 nicht aktualisiert.
Es müssen 1093kB Archive geholt werden.
Nach dem Auspacken werden 6607kB Plattenplatz zusätzlich benutzt.
Möchten Sie fortfahren [J/n]? j
Hole:1 http://ftp.de.debian.org etch/main squid-common 2.6.5-6 [438kB]
Hole:2 http://ftp.de.debian.org etch/main squid 2.6.5-6 [654kB]
Es wurden 1093kB in 4s geholt (225kB/s)
Vorkonfiguration der Pakete ...
Wähle vormals abgewähltes Paket squid-common.
(Lese Datenbank ... 20009 Dateien und Verzeichnisse sind derzeit installiert.)
Entpacke squid-common (aus .../squid-common_2.6.5-6_all.deb) ...
Wähle vormals abgewähltes Paket squid.
Entpacke squid (aus .../squid_2.6.5-6_i386.deb) ...
Richte squid-common ein (2.6.5-6) ...
Richte squid ein (2.6.5-6) ...
Creating squid spool directory structure
2007/08/07 19:02:45| Creating Swap Directories
Restarting Squid HTTP proxy: squid.
etchy:~#
Squid muss nun konfiguriert werden, anbei eine minimale Beispielkonfiguration. Man muss nur “acl trusted” durch das eigene Netzwerk ersetzen. Anschließend wird Squid neu geladen
Nun kann man den Proxy auch schon testen, IP und Port im Browser eintragen und es sollte schon funktionieren.
Installation des Virenscanners ClamAV
Alle empfohlenen Abhängigkeiten werden mitinstalliert.
Installation der ICAP Schnittstelle c_icap
Hier gibt es immer die aktuelle Version: http://sourceforge.net/projects/c-icap
Entweder direkt mit wget herunterladen oder mittels WinSCP übertragen.
wget http://belnet.dl.sourceforge.net/sourceforge/c-icap/c_icap-180407.tar.gz
Entpacken & Installieren
tar xfz c_icap-VERSION.tar.gz
cd c_icap-VERSION
./configure --enable-static --with-clamav --prefix=/usr/local/icap
make
make install
Konfiguration von c_icap
/usr/local/icap/etc/c-icap.conf
man ändert “User wwwrun” zu “User proxy” und fügt am Ende der Config folgende Zeilen ein:
acl localsquid_respmod src 127.0.0.1 type respmod
acl localsquid src 127.0.0.1
acl externalnet src 0.0.0.0/0.0.0.0
icap_access allow localsquid_respmod
icap_access allow localsquid
icap_access deny externalnet
Wenn Squid auf einem anderen Server läuft, muss hier die IP Adresse angepasst werden.
Nun wird überprüft ob alles erfolgreich war
Konfiguration Squid & c_ICAP
Damit Squid seine Daten zum Virenscanner schickt, muss man ihm das vorher natürlich beibringen.
————— Fortsetzung folgt ——————
Folgende Meldungen können auftreten:
beim configure von c_icap
configure: error: no acceptable C compiler found in $PATH
Es muss ein C Compiler inkl. Abhängigkeiten installiert werden:
apt-get install gcc
inklusiv Abhängigkeiten
checking for C compiler default output file name… configure: error: C compiler cannot create executables
G++ inkl. Abhängigkeiten installieren
-bash: make: command not found
make inkl. Abhängigkeiten installieren
bei make von c_icap
srv_clamav.c:27:20: error: clamav.h: No such file or directory
srv_clamav.c:121: error: invalid use of undefined type 'struct cl_limits'
clam Antivirus library development files müssen installiert werden
apt-get install libclamav-dev
bei make install von c_icap
chgrp nobody /usr/local/icap/var/log/
chgrp: ungültige Gruppe nobody
Gruppe nobody anlegen und make install erneut ausführen
groupadd nobody
make install