Questo tutorial spiega come è possibile integrare ClamAV in ProFTPd per virus scanning su un sistema Debian Lenny. Questo grazie a mod_clamav. Alla fine, ogni volta che un file viene caricato tramite ProFTPd, ClamAV sarà controllare il file ed eliminarlo se si tratta di malware.
Io non rilasciano alcuna garanzia che questo funziona per voi!
1 Nota preliminare
Si dovrebbe avere un programma di installazione di ProFTPd di lavoro sul server Debian Lenny.
2 installazione di ClamAV
ClamAV può essere installato come segue:
aptitude install clamav clamav-daemon libclamav-dev
Ora ci dobbiamo riconfigurare ClamAV affinché Clamd utilizza connessioni TCP anziché un socket Unix locale. È altamente raccomandato che le connessioni socket di Unix sono evitate quando si utilizza la funzionalità di Chroot di ProFTPd (DefaultRoot ~). Il motivo è che se mod_clamav deve connettersi a Clamd, il socket Unix non è disponibile nell’ambiente di chroot.
Correre
dpkg-reconfigure clamav-base
… e rispondere a queste domande come segue (accettare i valori predefiniti per tutte le altre domande):
Tipo di socket: <-TCP
TCP porta clamd resterà in ascolto su: < – 3310
IP indirizzo clamd resterà in ascolto su: <-127.0.0.1
Quindi riavviare Clamd e freshclam:
/etc/init.d/clamav-daemon restart
/etc/init.d/clamav-freshclam restart
Ora eseguire
netstat -tap | grep clamd
… e si dovrebbe vedere che Clamd è in ascolto su localhost attraverso TCP:
server1:~# netstat -tap | grep clamd
tcp 0 0 localhost.localdom:3310 *:* LISTEN 29430/clamd
server1:~#
3 ricostruzione ProFTPd
Purtroppo mod_clamav non fa parte di ProFTPd per impostazione predefinita, e non c’è alcun pacchetto Debian per mod_clamav, così dobbiamo ricostruire ProFTPd con mod_clamav. Userò il pacchetto sorgente Debian di ProFTPd e costruire nuove ProFTPd i pacchetti. deb con supporto mod_clamav.
Prima installiamo tutti i pacchetti che sono necessari per ricostruire ProFTPd:
aptitude build-dep proftpd
Abbiamo anche bisogno del seguente pacchetto (che non vengono installato con il comando precedente per qualche motivo…):
aptitude install libpam-dev
Ora scarichiamo il pacchetto sorgente ProFTPd a/usr/src:
cd /usr/src
apt-get source proftpd
Successivamente abbiamo scaricare mod_clamav in/usr/src e scompattarlo:
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
Quindi copiamo i file mod_clamav-0.11rc/mod_clamav.* nella directory di proftpd-dfsg-1.3.1/contrib …
cp mod_clamav-0.11rc/mod_clamav.* proftpd-dfsg-1.3.1/contrib
… e patch le fonti di ProFTPd:
cd proftpd-dfsg-1.3.1
patch -p1 < ../mod_clamav-0.11rc/proftpd.patch
Successivamente abbiamo dobbiamo modificare il file debian/rules:
vi debian/rules
Cerca la sezione CONF_ARGS e aggiungere ..–con moduli = mod_clamav ad esso:
[...] 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 [...] |
Ora siamo in grado di ricostruire ProFTPd:
dpkg-buildpackage
Ora saliamo una directory, che è dove sono stati creati i nuovi pacchetti. deb:
cd ..
Il comando
ls -l
consente di visualizzare i pacchetti disponibili:
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#
Possiamo installare i nuovi pacchetti. deb ProFTPd come segue:
dpkg -i proftpd*.deb
4 configurazione di ProFTPd
Ora dobbiamo configurare ProFTPd per utilizzare mod_clamav ogni volta che un file viene caricato. Aperto /etc/proftpd/proftpd.conf…
vi /etc/proftpd/proftpd.conf
… e aggiungere la strofa
<IfModule mod_clamav.c>
ClamAV on
ClamServer 127.0.0.1
ClamPort 3310
</IfModule>
da qualche parte, per esempio sotto il
<IfModule mod_ctrls_admin.c>
AdminControlsEngine off
</IfModule>
sezione:
[...] <IfModule mod_ctrls_admin.c> AdminControlsEngine off </IfModule> <IfModule mod_clamav.c> ClamAV on ClamServer 127.0.0.1 ClamPort 3310 </IfModule> # # Alternative authentication frameworks # #Include /etc/proftpd/ldap.conf Include /etc/proftpd/sql.conf [...] |
Riavviare ProFTPd:
/etc/init.d/proftpd restart
Ora controllare se mod_clamav viene caricato eseguendo:
proftpd -vv
mod_clamav dovrebbe essere elencato nell’output:
server1:~# proftpd -vv
- ProFTPD Version: 1.3.1 (stable)
- Scoreboard Version: 01040002
- Built: Fri Oct 1 03:31:03 CEST 2010
- Module: mod_core.c
- Module: mod_xfer.c
- Module: mod_auth_unix.c
- Module: mod_auth_file/0.8.3
- Module: mod_auth.c
- Module: mod_ls.c
- Module: mod_log.c
- Module: mod_site.c
- Module: mod_delay/0.6
- Module: mod_dso/0.4
- Module: mod_auth_pam/1.0.1
- Module: mod_clamav.c
- Module: mod_cap/1.0
- Module: mod_ctrls/0.9.4
- Module: mod_lang/0.8
server1:~#
Questo è tutto! Ora ogni volta che qualcuno tenta di caricare malware sul vostro server attraverso ProFTPd, verranno eliminati i file di “cattivi”. È possibile verificare che scaricando il virus di prova Eicar dal http://www.eicar.org/anti_virus_test_file.htm; prova a caricarlo sul server ProFTPd, e se tutto va bene, esso deve essere eliminato:
5 link
- ProFTPd: http://www.proftpd.org/
- mod_clamav: http://www.thrallingpenguin.com/resources/mod_clamav.htm
- ClamAV: http://www.clamav.net/
- Debian: http://www.debian.org/