Guide Open Source

GUIDE E MANUALI DEL MONDO LINUX E CMS

Guide Open Source

GUIDE E MANUALI DEL MONDO LINUX E CMS

Guide Open Source

GUIDE E MANUALI DEL MONDO LINUX E CMS

Come integrare ClamAV (attraverso mod_clamav) in ProFTPd per Virus Scanning su Debian Lenny

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:

 

  • 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/

Piaciuto l'articolo? Condividilo sui social!

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn
Share on whatsapp
WhatsApp