Questo tutorial spiega come integrare ClamAV in ProFTPd per la scansione antivirus su un sistema Ubuntu 10.04. Ciò si ottiene tramite mod_clamav. Alla fine, ogni volta che un file viene caricato tramite ProFTPd, ClamAV controllerà il file e lo cancellerà se si tratta di malware.
Non garantisco che questo funzionerà per te!
1 Nota preliminare
Dovresti avere una configurazione ProFTPd funzionante sul tuo server Ubuntu 10.04.
Poiché eseguiremo tutti i passaggi di questo tutorial con i privilegi di root, possiamo anteporre tutti i comandi in questo tutorial con la stringa sudo, oppure diventare root in questo momento digitando
sudo su
2 Installazione di ClamAV
ClamAV può essere installato come segue:
aptitude install clamav clamav-daemon libclamav-dev
Ora dobbiamo riconfigurare ClamAV in modo che Clamd utilizzi connessioni TCP invece di un socket Unix locale. Si consiglia vivamente di evitare le connessioni socket Unix quando si utilizza la funzione Chroot di ProFTPd (DefaultRoot ~). Il motivo è che se mod_clamav deve connettersi a Clamd, il socket Unix non è disponibile nell'ambiente chroot.
Corri
dpkg-reconfigure clamav-base
... e rispondi a queste domande come segue (accetta i valori predefiniti per tutte le altre domande):
Tipo di socket:<-- TCP
Il clamd della porta TCP sarà in ascolto su:<-- 3310
Il clamd dell'indirizzo IP sarà in ascolto su:<-- 127.0.0.1
Quindi riavvia Clamd e freshclam:
/etc/init.d/clamav-daemon restart
/etc/init.d/clamav-freshclam restart
Ora corri
netstat -tap | grep clamd
... e dovresti vedere che Clamd è in ascolto su localhost tramite TCP:
[email protetta]:~# netstat -tap | grep clamd
tcp 0 0 localhost.localdom:3310 *:* ASCOLTA 7911/clamd
[email protected]:~#
3 Ricostruzione di ProFTPd
Sfortunatamente mod_clamav non fa parte di ProFTPd per impostazione predefinita e non esiste un pacchetto Ubuntu per mod_clamav, quindi dobbiamo ricostruire ProFTPd con mod_clamav. Userò il pacchetto sorgente Ubuntu di ProFTPd e costruirò nuovi pacchetti ProFTPd .deb con il supporto di mod_clamav.
Per prima cosa installiamo tutti i pacchetti necessari per ricostruire ProFTPd:
aptitude build-dep proftpd-dfsg
Abbiamo anche bisogno dei seguenti pacchetti:
aptitude install libpam-devdpkg-dev libmysqlclient-dev debhelper libpq-dev libldap2-dev libwrap0-dev libcap2-dev autotools-dev libncurses5-dev dpatch libacl1-dev libattr1-dev unixodbc-dev libsqlite3-dev
Ora scarichiamo il pacchetto sorgente di ProFTPd in /usr/src:
cd /usr/src
apt-get source proftpd-dfsg
Quindi scarichiamo mod_clamav in /usr/src e lo decomprimiamo:
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 proftpd-dfsg-1.3.2c/contrib...
cp mod_clamav-0.11rc/mod_clamav.* proftpd-dfsg-1.3.2c/contrib
... e patch i sorgenti di ProFTPd:
cd proftpd-dfsg-1.3.2c
patch -p1 <../mod_clamav-0.11rc/proftpd.patch
Quindi dobbiamo modificare debian/rules:
vi debian/rules
Cerca nella sezione CONF_ARGS e aggiungi --with-modules=mod_clamav ad essa:
[...] 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 possiamo ricostruire ProFTPd:
dpkg-buildpackage
Ora andiamo di una directory in alto, ecco dove sono stati creati i nuovi pacchetti .deb:
cd ..
Il comando
ls -l
ti mostra i pacchetti disponibili:
[email protetta]:/usr/src# ls -l
totale 7500
drwxr-xr-x 24 root root 4096 2010-04-29 14:00 linux-headers-2.6.32-21
drwxr-xr-x 7 root root 4096 2010-04-29 14:00 linux-headers-2.6.32-21-server
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-04 17:21 mod_clamav-0.11rc.tar.gz
-rw-r--r -- 1 src root 930578 2010-10-04 17:38 proftpd-basic_1.3.2c-1_amd64.deb
-rw-r--r-- 1 src root 630168 2010-10-04 17:38 proftpd -dev_1.3.2c-1_amd64.deb
drwxr-xr-x 14 root root 4096 2010-10-04 17:37 proftpd-dfsg-1.3.2c
-rw-r--r-- 1 src root 4522 2010-10-04 17:38 proftpd-dfsg_1.3.2c-1_amd64.changes
-rw-r--r-- 1 src root 98674 2010-10-04 17:30 proftpd-dfsg_1 .3.2c-1.diff.gz
-rw-r--r-- 1 root src 1138 2010-10-04 17:30 proftpd-dfsg_1.3.2c-1.dsc
-rw -r--r-- 1 root src 3018899 2009-12-22 07:05 proftpd-dfsg_1.3.2c.orig.tar.gz
-rw-r--r-- 1 root src 1408070 2010- 04-10 17 :38 proftpd-doc_1.3.2c-1_all.deb
-rw-r--r-- 1 root src 315326 2010-10-04 17:38 proftpd-mod-ldap_1.3.2c-1_amd64.deb
-rw-r--r-- 1 root src 305076 2010-10-04 17:38 proftpd-mod-mysql_1.3.2c-1_amd64.deb
-rw-r--r-- 1 radice src 306848 2010-10-04 17:38 proftpd-mod-odbc_1.3.2c-1_amd64.deb
-rw-r--r-- 1 root src 304762 2010-10-04 17:38 proftpd- mod-pgsql_1.3.2c-1_amd64.deb
-rw-r--r-- 1 root src 304634 2010-10-04 17:38 proftpd-mod-sqlite_1.3.2c-1_amd64.deb
[email protetta]:/usr/src#
Possiamo installare i nuovi pacchetti ProFTPd .deb come segue:
dpkg -i proftpd*.deb
4 Configurazione di ProFTPd
Ora dobbiamo configurare ProFTPd per utilizzare mod_clamav ogni volta che viene caricato un file. Apri /etc/proftpd/proftpd.conf...
vi /etc/proftpd/proftpd.conf
... e aggiungi la strofa
ClamAV su
ClamServer 127.0.0.1
ClamPort 3310
da qualche parte, ad es. sotto il
AdminControlsEngine disattivato
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 [...] |
Riavvia ProFTPd:
/etc/init.d/proftpd restart
Ora controlla se mod_clamav è caricato eseguendo:
proftpd -vv
mod_clamav dovrebbe essere elencato nell'output:
[email protected]:~# proftpd -vv
ProFTPD Version: 1.3.2c (maint)
Versione scoreboard : 01040002
Costruito: lun 4 ottobre 17:34:10 CEST 2010
Moduli caricati:
mod_ifsession/1.0
mod_dynmasq/0.2.1
mod_wrap2_file/1.2
mod_wrap2/2.0.6
mod_ban/0.5.3
mod_load/1.0.1
mod_rewrite/0.7
mod_wrap.c
mod_quotatab_radius.c
mod_quotatab_file.c
mod_quotatab/1.3.0
mod_radius /0.9
mod_tls/2.2.2
mod_ctrls_admin/0.9.5
mod_lang/0.9
mod_ctrls/0.9.4
mod_cap/1.0
mod_clamav.c
mod_auth_pam/1.1
mod_ident/1.0
mod_dso/0.4
mod_facts/0.1
mod_delay/0.6
mod_site.c
mod_log.c
mod_ls.c
mod_auth.c
mod_auth_file/0.8.3
mod_auth_unix.c
mod_xfer.c
mod_core.c
[email protetta ]:~#
Questo è tutto! Ora, ogni volta che qualcuno tenta di caricare malware sul tuo server tramite ProFTPd, i file "cattivi" verranno eliminati. Puoi verificarlo scaricando il virus di prova Eicar da http://www.eicar.org/anti_virus_test_file.htm; prova a caricarlo sul tuo server ProFTPd e, se tutto va bene, dovrebbe essere cancellato:
5 link
- ProFTPd:http://www.proftpd.org/
- mod_clamav:http://www.thrallingpenguin.com/resources/mod_clamav.htm
- ClamAV:http://www.clamav.net/
- Ubuntu:http://www.ubuntu.com/