How To – wie integriere ich ClamAV (mit mod_clamav) in ProFTPd zum Viren scannen auf Debian Lenny
Version 1.0
Autor: Falko Timme <ft [at] falkotimme [dot] com>
[1] Folge mir auf Twitter [2]
Diese Anleitung erklärt wie man ClamAV in ProFTPd integriert, um auf einem Debian Lenny Viren zu scannen. Dafür setzen wir mod_clamav [3] ein. Als Ergebnis wird ClamAV jedesmal, wenn eine Datei über ProFTPd hochgeladen wird, auf Viren untersucht und gelöscht, falls sie Malware enthält.
Diese Anleitung kommt ohne Gewähr.
1 Vorbemerkung
Du solltest eine reibungslose funktionierende Insatllation von ProFTPd auf Deinem Debian Lenny Server haben.
2 Installation von ClamAV
ClamAV kann folgendermaßen installiert werden:
aptitude install clamav clamav-daemon libclamav-dev
Nun müssen wir ClamAV rekonfigurieren, so daß Clamad TCP Verbindungen anstatt des lokalen Unix Sockets nutzt.
Es wird dringend empfohlen, Verbindungen über Unix Sockets zu meiden wenn Chroot Optionen auf ProFTPd verwendet wird (DefaultRoot ~). Wenn sich mod_clamav mit Clamd verbinden soll, ist das Unix Socket nicht verfügbar für die chroot Umgebung.
Führe aus:
dpkg-reconfigure clamav-base
… und beantworte die Fragen folgendermaßen (für alle anderen die Standardeinstellung wählen):
Socket type: <– TCP
TCP port clamd will listen on: <– 3310
IP address clamd will listen on: <– 127.0.0.1
Starte dann Clamd und freshclam neu:
/etc/init.d/clamav-daemon restart
/etc/init.d/clamav-freshclam restart
Führe aus
netstat -tap | grep clamd
… und nun sollte angezeigt werden dass Clamd über TCP mit localhost kommuniziert:
server1:~# netstat -tap | grep clamd
tcp 0 0 localhost.localdom:3310 *:* LISTEN 29430/clamd
server1:~#
3 Wiedererstellung ProFTPd
Leider ist mod_clamav kein Standard für ProFTPd, und es gibt kein Debian Packet für mod_clamav, so daß wir ProFTPd mit mod_clamav neu erstellen müssen. Dafür werde ich das Debian Quellenpakcet für ProFTPd nutzen und neue ProFTPd Pakete mit mod_clamav Unterstzützung erstellen.
Zunächst installieren wir alle Pakete, die wir benötigen um ProFTPd wieder zu erstellen:
aptitude build-dep proftpd
Wir benötigen nun das folgende Paket (welches sich nicht beim ersten Befehl installieren lässt, weshalb auch immer…):
aptitude install libpam-dev
Nun laden wir das ProFTPd Quellenpaket nach /usr/src:
cd /usr/src
apt-get source proftpd
Als Nächstes laden wir mod_clamav nach /usr/src herunter und entpacken es:
wget –no-check-certificate https://secure.thrallingpenguin.com/redmine/attachments/download/1/mod_clamav-0.11rc.tar.gz
tar xzvf mod_clamav-0.11rc.tar.gz
Danach kopieren wir die mod_clamav-0.11rc/mod_clamav.* Dateien ins proftpd-dfsg-1.3.1/contrib Verzeichnis…
cp mod_clamav-0.11rc/mod_clamav.* proftpd-dfsg-1.3.1/contrib
… und patchen die ProFTPd Quellen:
cd proftpd-dfsg-1.3.1
patch -p1 < ../mod_clamav-0.11rc/proftpd.patch
Als Nächstes müssen wir debian/rules editieren:
vi debian/rules
Suche den CONF_ARGS Bereich und füge –with-modules=mod_clamav hinzu:
[...] CONF_ARGS := --prefix=/usr --with-includes=$(shell pg_config --includedir):$(shell mysql_config --include|sed -e 's/-I//') --mandir=/usr/share/man --sysconfdir=/etc/$(NAME) --localstatedir=/var/run --libexecdir=/usr/lib/$(NAME) --enable-sendfile --enable-facl --enable-dso --enable-autoshadow --enable-ctrls --with-modules=mod_readme --enable-ipv6 --enable-nls --with-modules=mod_clamav [...] |
Nun können wir ProFTPd neu erstellen:
dpkg-buildpackage
Nun gehen wir ein Verzeichnis höher; dort wurden die neuen .deb Pakete erstellt:
cd ..
Das Befehl
ls -l
zeigt uns die verfügbaren Pakete:
server1:/usr/src# ls -l
total 5472
drwxr-xr-x 2 501 501 4096 2009-04-20 10:22 mod_clamav-0.11rc
-rw-r–r– 1 root src 5115 2010-10-01 03:28 mod_clamav-0.11rc.tar.gz
-rw-r–r– 1 root src 195066 2010-10-01 03:32 proftpd_1.3.1-17lenny4_all.deb
-rw-r–r– 1 root src 690228 2010-10-01 03:32 proftpd-basic_1.3.1-17lenny4_i386.deb
drwxr-xr-x 13 root root 4096 2010-10-01 03:32 proftpd-dfsg-1.3.1
-rw-r–r– 1 root src 107998 2010-10-01 03:29 proftpd-dfsg_1.3.1-17lenny4.diff.gz
-rw-r–r– 1 root src 1103 2010-10-01 03:29 proftpd-dfsg_1.3.1-17lenny4.dsc
-rw-r–r– 1 root src 3305 2010-10-01 03:32 proftpd-dfsg_1.3.1-17lenny4_i386.changes
-rw-r–r– 1 root src 2662056 2007-10-16 01:02 proftpd-dfsg_1.3.1.orig.tar.gz
-rw-r–r– 1 root src 1255660 2010-10-01 03:32 proftpd-doc_1.3.1-17lenny4_all.deb
-rw-r–r– 1 root src 213004 2010-10-01 03:32 proftpd-mod-ldap_1.3.1-17lenny4_i386.deb
-rw-r–r– 1 root src 203562 2010-10-01 03:32 proftpd-mod-mysql_1.3.1-17lenny4_i386.deb
-rw-r–r– 1 root src 203512 2010-10-01 03:32 proftpd-mod-pgsql_1.3.1-17lenny4_i386.deb
server1:/usr/src#
Wir können nun die neuen ProFTPd .deb Pakete folgendermaßen installieren:
dpkg -i proftpd*.deb