QMail – ClamAV (CentOS 7)
In questa sezione vedremo come far in modo che le mail in transito dal nostro sistema vengano filtrate per eliminare possibili messaggi con allegati potenzialmente pericolosi. Utilizzeremo ClamAV come sistema di antivirus e simscan per fare interagire il sistema di posta con il sistema di antispam e antivirus. Creiamo inizialmente l’utente ed il gruppo che ci serviranno in seguito:
# groupadd -g 88 simscan # useradd -g 88 -u 88 -d /var/spool/simscan simscan
ClamAV
ClamAV è un motore antivirus open-source su licenza GPL ideato per scovare trojans, virus, malware e altre minacce dannose per il nostro sistema ed i nostri utenti.
Per il mio sistema userò le seguenti impostazioni:
- ClamAV installato nella directory /opt/clamav-xxx
- Aggiornamenti dei db di ClamAV dentro la directory /opt/clamav-xxx/share
- Configurazione nella directory /opt/clamav-xxx/conf
Potete scaricare l’ultima versione (in formato sorgente) da questo indirizzo (vi consiglio di scaricare l’ultima versione stabile del prodotto; al momento in cui scrivo è la 0.98.4:
# cd /usr/src # wget http://prdownloads.sourceforge.net/clamav/clamav/0.98.4/clamav-0.98.4.tar.gz # tar xvfz clamav-0.98.4.tar.gz # cd clamav-0.98.4 # ./configure --prefix=/opt/clamav-0.98.4 --bindir=/opt/clamav-0.98.4/bin \ --sbindir=/opt/clamav-0.98.4/bin --sysconfdir=/opt/clamav-0.98.4/conf \ --mandir=/usr/share/man --disable-clamav # make # make install # rm -f /opt/clamav # ln -s /opt/clamav-0.98.4 /opt/clamav # cd /opt/clamav/conf # cp clamd.conf.sample clamd.conf # cp freshclam.conf.sample freshclam.conf # mkdir /var/run/clamd # mkdir /var/log/clamd # mkdir /opt/clamav/share/ # chown simscan /var/run/clamd /var/log/clamd /opt/clamav/share
Modifichiamo le seguenti direttive nel file di configurazione /opt/clamav/conf/clamav.conf; chiaramente effettuate le modifiche del caso secondo le vostre esigenze:
ExampleLogFile /var/log/clamd/clamd.log LogFileMaxSize 0 LogTime yes LogClean yes ExtendedDetectionInfo yes PidFile /var/run/clamd/clamd.pid TemporaryDirectory /tmp DatabaseDirectory /opt/clamav/share LocalSocket /tmp/clamd.socket LocalSocketGroup simscan FixStaleSocket yes TCPSocket 3310 TCPAddr 127.0.0.1 MaxConnectionQueueLength 30 MaxThreads 20 MaxQueue 200 MaxDirectoryRecursion 20 SelfCheck 600 User simscan AlgorithmicDetection yes ScanPE yes ScanELF yes DetectBrokenExecutables yes ScanOLE2 yes ScanPDF yes ScanSWF yes ScanMail yes ScanPartialMessages yes PhishingSignatures yes ScanHTML yes ScanArchive yes MaxScanSize 50M MaxFiles 15000 Bytecode yes
Per l’esecuzione automatica, creiamo il file /etc/init.d/clamd ed inseriamo le seguenti linee:
#! /bin/bash
#
# crond Start/Stop the clam antivirus daemon.
#
# chkconfig: 3 70 41
# description: clamd is a standard Linux/UNIX program that scans for Viruses.
# processname: clamd
# config: /opt/clamav/conf/clamd.conf
# pidfile: /var/run/clamd/clamd.pid
# Source function library.
. /etc/init.d/functions
RETVAL=0
# See how we were called.
prog="clamd"
progdir="/opt/clamav/bin/"
# Source configuration
if [ -f /etc/sysconfig/$prog ] ; then
. /etc/sysconfig/$prog
fi
start() {
echo -n $"Starting $prog: "
daemon $progdir/$prog
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/clamd
return $RETVAL
}
stop() {
echo -n $"Stopping $prog: "
# Would be better to send QUIT first, then killproc if that fails
killproc $prog
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/clamd
return $RETVAL
}
rhstatus() {
status clamd
}
restart() {
stop
start
}
reload() {
echo -n $"Reloading clam daemon configuration: "
killproc clamd -HUP
retval=$?
echo
return $RETVAL
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
reload)
reload
;;
status)
rhstatus
;;
condrestart)
[ -f /var/lock/subsys/clamd ] && restart || :
;;
*)
echo $"Usage: $0 {start|stop|status|reload|restart|condrestart}"
exit 1
esac
exit $?
Facciamo in modo che il nostro antivirus venga eseguito al boot.
# chmod 755 /etc/init.d/clamd # chkconfig clamd on
Occupiamoci ora del freshclam, ossia quella parte di clamav che periodicamente aggiorna i database delle signature dei virus: modifichiamo il file /etc/clamav/conf/freshclam.conf in questo modo:
ExampleDatabaseDirectory /opt/clamav/share UpdateLogFile /var/log/clamd/freshclam.log LogFileMaxSize 0 LogTime yes PidFile /var/run/clamd/freshclam.pid DatabaseOwner simscan DatabaseMirror db.it.clamav.net DatabaseMirror database.clamav.net MaxAttempts 3 Checks 8 NotifyClamd /opt/clamav/conf/clamd.conf
Modificato il file di configurazione del freshclam, lo eseguiamo per scaricare il primo database
/opt/clamav/bin/freshclam --config-file=/opt/clamav/conf/freshclam.conf
Il processo di aggiornamento del database, durerà qualche minuto; successivamente modifichiamo il crontab (con il comando “crontab -e”) per eseguire l’aggiornamento del database delle signature dei virus ogni 8 ore:
# AGGIORNAMENTO DB CLAMAV 20 */8 * * * /opt/clamav/bin/freshclam --config-file=/opt/clamav/conf/freshclam.conf --quiet 2>&1 > /dev/null
L’ultima cosa che ci rimane da fare è eseguire il nostro servizio:
# systemctl start clamd
Il nostro motore antivirus è installato, configurato e pronto per essere utilizzato dal nostro sistema di mailing.
← QMail – Test (CentOS 7) QMail – Spamassassin (CentOS 7) →