Questo tutorial spiega come integrare ClamAV in PureFTPd per la scansione antivirus su un sistema CentOS 6.2. Alla fine, ogni volta che un file viene caricato tramite PureFTPd, ClamAV controllerà il file e lo cancellerà se si tratta di malware.
1 Nota preliminare
Dovresti avere una configurazione PureFTPd funzionante sul tuo server CentOS 6.2, ad es. come mostrato in questo tutorial:Hosting virtuale con PureFTPd e MySQL (incl. quota e gestione della larghezza di banda) su CentOS 6.2.
2 Installazione di ClamAV
ClamAV non è disponibile nei repository CentOS ufficiali, quindi abilitiamo il repository EPEL (se non lo hai già fatto, ad esempio nel tutorial Virtual Hosting With PureFTPd And MySQL (Incl. Quota And Bandwidth Management) On CentOS 6.2):
rpm --import https://fedoraproject.org/static/0608B895.txt
wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-5.noarch.rpm
rpm -ivh epel-release-6-5.noarch.rpm
yum install yum-priorities
Modifica /etc/yum.repos.d/epel.repo...
vi /etc/yum.repos.d/epel.repo
... e aggiungi la linea priority=10 alla sezione [epel]:
[epel] name=Extra Packages for Enterprise Linux 6 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch failovermethod=priority enabled=1 priority=10 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 [...] |
Successivamente possiamo installare ClamAV come segue:
yum install clamav clamd
Quindi creiamo i collegamenti di avvio del sistema per clamd e lo avviamo:
chkconfig --levels 235 clamd on
/usr/bin/freshclam
/etc/init.d/clamd start
3 Configurazione di PureFTPd
Per prima cosa apriamo /etc/pure-ftpd/pure-ftpd.conf e impostiamo CallUploadScript su yes :
vi /etc/pure-ftpd/pure-ftpd.conf
[...] # If your pure-ftpd has been compiled with pure-uploadscript support, # this will make pure-ftpd write info about new uploads to # /var/run/pure-ftpd.upload.pipe so pure-uploadscript can read it and # spawn a script to handle the upload. # Don't enable this option if you don't actually use pure-uploadscript. CallUploadScript yes [...] |
Quindi creiamo il file /etc/pure-ftpd/clamav_check.sh (che chiamerà /usr/bin/clamdscan ogni volta che un file viene caricato tramite PureFTPd)...
vi /etc/pure-ftpd/clamav_check.sh
#!/bin/sh /usr/bin/clamdscan --remove --quiet --no-summary "$1" |
... e rendilo eseguibile:
chmod 755 /etc/pure-ftpd/clamav_check.sh
Ora avviamo il programma pure-uploadscript come demone:chiamerà il nostro script /etc/pure-ftpd/clamav_check.sh ogni volta che un file viene caricato tramite PureFTPd:
pure-uploadscript -B -r /etc/pure-ftpd/clamav_check.sh
Ovviamente, non vuoi avviare il demone manualmente ogni volta che avvii il sistema, quindi apriamo /etc/rc.local...
vi /etc/rc.local
... e aggiungi la riga /usr/sbin/pure-uploadscript -B -r /etc/pure-ftpd/clamav_check.sh ad essa - ad es. come segue:
#!/bin/sh # # This script will be executed *after* all the other init scripts. # You can put your own initialization stuff in here if you don't # want to do the full Sys V style init stuff. /usr/sbin/pure-uploadscript -B -r /etc/pure-ftpd/clamav_check.sh touch /var/lock/subsys/local |
Finalmente riavviamo PureFTPd:
/etc/init.d/pure-ftpd restart
Questo è tutto! Ora, ogni volta che qualcuno tenta di caricare malware sul tuo server tramite PureFTPd, i file "cattivi" verranno eliminati silenziosamente.
4 link
- PureFTPD:http://www.pureftpd.org/
- ClamAV:http://www.clamav.net/
- CentOS:http://www.centos.org/