How To - wie integriere ich ClamAV (mit mod_clamav) in ProFTPd zum Viren scannen auf Debian Lenny

Version 1.0

Autor: Falko Timme

[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


0 Kommentar(e)

Zum Posten von Kommentaren bitte