Qmail-Scanner avec Clam Antivirus et SpamAssassin

Un article de Wiki SOS-ADMIN.


Ce guide vous est proposé par Michael @ moon06 (http://www.aliosphere.fr).


Sommaire

Installation de Qmail-Scanner avec Clam Antivirus & SpamAssassin

Prérequis

Ce guide fonctionne avec une installation fonctionnelle de Qmail avec son patch Qmailqueue (voir ce guide)

Pour un dédié OVH en release, un guide a été fait pour installer tous les pré-requis: Spamassassin et Clamav sur dédié OVH avec Qmail-scan

On ajoute l'utilisateur de Qmail-Scanner :

useradd -c "Qmail-Scanner Account" -s /bin/false qscand

Vous devez avoir au minimum perl version 5.6.1, pour vérifier votre version de perl :

$ perl -v

This is perl, v5.8.6 built for i686-linux-thread-multi-ld

Copyright 1987-2004, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using `man perl' or `perldoc perl'.  If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.

Les modules Perl suivants sont nécessaires pour effectuer correctement l'installation :

Digest::SHA1
Digest::HMAC
Net::DNS
Time::HiRes
HTML::Tagset
HTML::Parser
Pod::Usage
Parse::Syslog
Statistics::Distributions
Mail::SPF::Query

Petit information utile, il s'avere que la version 3.49 de HTML::Parser ne se compile pas correctement. Une solution consiste à utiliser la version precedente 3.48 et tout rentre dans l'ordre.

Pour installer ces modules, lancez la commande suivante :

perl -MCPAN -e shell

Lors de l'installation manuelle (si c'est la première fois que vous utilisez cette commande), vous devrez choisir les mirroirs les plus proches en répondant aux questions posées. Pour toutes les autres questions, il suffit d'appuyez sur entrée.

Une fois en ligne de commande, vous pouvez installer les modules comme suit (attention à bien respecter les majuscules !) :

install Module::Module

En cas d'erreur pour certains, vous pouvez toujours tenter de forcer l'installation :

force install Module::Module

ou encore de télécharger les sources sur http://cpan.perl.org/ et en les installant comme suit :

perl Makefile.PL
make
make install

et dernière solution les RPM ; par exemple :

Sous RedHat/Fedora :
apt-get install perl-module-module

Sous Mandrake/Mandriva :
urpmi perl-module-module

Pour l'installation de Maildrop, il est necessaire d'avoir PCRE :

wget http://ovh.dl.sourceforge.net/sourceforge/pcre/pcre-6.3.tar.gz
tar xvzf pcre-6.3.tar.gz
cd pcre-6.3
./configure
make && make install

Installation de Clam Antivirus

wget http://ovh.dl.sourceforge.net/sourceforge/clamav/clamav-0.88.tar.gz
tar -zxf clamav-0.88.tar.gz
cd clamav-0.88/
./configure --sysconfdir=/etc --with-user=qscand --with-group=qscand
make
make install
cp ./contrib/init/RedHat/clamd /etc/init.d/clamd
chkconfig clamd on

Nous éditons le fichier de configuration du démon Clam Antivirus :

vi /etc/clamd.conf

On commente la ligne suivante :

#Example

Et on décommente les lignes suivantes :

LogTime
LogSysLog
ScanMail

Voici les lignes à ajouter :

LogFile /var/log/clamd.log
User qscand
TemporaryDirectory /tmp

On s'occupe du fichier de log de clamd :

touch /var/log/clamd.log
chmod 600 /var/log/clamd.log
chown qscand /var/log/clamd.log

On commente la ligne suivante du fichier /etc/freshclam.conf :

#Example

Et on décommente celle-ci :

UpdateLogFile /var/log/freshclam.log

On s'occupe du fichier de log de freshclam :

touch /var/log/freshclam.log
chmod 600 /var/log/freshclam.log
chown qscand /var/log/freshclam.log

On lance la commande suivante :

freshclam

Une fois la mise à jour effectuée, il ne vous reste plus qu'à lancer le démon Clam !

/etc/init.d/clamd start

Nous allons automatiser la mise à jour de la base de signatures de Clam Antivirus grâce à une tâche Cron quotidienne.

On édite le fichier /etc/crontab :

vi /etc/crontab

Et on rajoute la ligne suivante :

x y * * * root /usr/local/bin/freshclam -l /var/log/freshclam.log &>/dev/null

Modifiez les valeur x et y (respectivement les minutes et l'heure) en évitant les heures "pile" afin de ne pas surcharger les serveurs de mise à jour inutilement.

Voilà, c'en est fini de l'installation de Clam Antivirus, passons maintenant à SpamAssassin.

Installation de SpamAssassin

wget http://mir2.ovh.net/ftp.apache.org/dist/spamassassin/source/Mail-SpamAssassin-3.1.0.tar.gz
tar -zxf Mail-SpamAssassin-3.1.0.tar.gz
cd Mail-SpamAssassin-3.1.0/
perl Makefile.PL (lorsqu'on vous demande l'email de l'administrateur, appuyez sur Entrée)
make
make install

cp spamd/redhat-rc-script.sh /etc/init.d/spamd
chkconfig spamd on

groupadd spamd
useradd -g spamd -s /home/spamd spamd

On édite maintenant les options de démarrage du démon SpamAssassin :

vi /etc/sysconfig/spamassassin

Copiez ce texte dans le fichier :

SPAMDOPTIONS="-d -c -m5 -H -u spamd --socketpath=/var/spamd.socket"

On lance le démon SpamAssassin :

/etc/init.d/spamd start

Si tout est OK, bravo, vous venez d'installer avec succès Clam Antivirus et SpamAssassin !

Installation de Maildrop

Afin de faire fonctionner correctement Qmail-Scanner il faut installer Maildrop :

wget http://www.courier-mta.org/beta/maildrop/maildrop-2.0.1.20051115.tar.bz2
tar -jxf maildrop-2.0.1.20051115.tar.bz2
cd maildrop-2.0.1.20051115/
./configure --prefix=/usr/local --exec-prefix=/usr/local --enable-maildrop-uid=root --enable-maildrop-gid=vchkpw --enable-maildirquota

make && make install-strip && make install-man

Installation de Qmail-Scanner

Passons donc maintenant à l'application qui va permettre de faire la liaison entre Qmail et ces deux logiciels, Qmail-Scanner.

wget http://ovh.dl.sourceforge.net/sourceforge/qmail-scanner/qmail-scanner-1.25.tgz
tar -zxf qmail-scanner-1.25.tgz
wget http://heanet.dl.sourceforge.net/sourceforge/qms-analog/qms-analog-0.4.4.tar.gz
tar -zxf qms-analog-0.4.4.tar.gz
cd qms-analog-0.4.4/

make all
cp qmail-scanner-1.25-st-qms-20050618.patch ../qmail-scanner-1.25/
cd ../qmail-scanner-1.25
patch -p1 <  qmail-scanner-1.25-st-qms-20050618.patch

On édite le script qui va permettre d'installer Qmail-Scanner :

vi qms-config

Dans ce fichier, vous devez remplacer yourdomain.com par votre domaine (exemple : nsXXXXX.ovh.net) et la liste de vos domaines dans --local-domains (exemple : mondomaine.com,monsite.net).

chmod 755 qms-config
./qms-config

Si tout se passe bien lancez la commande suivante :

./qms-config install

Qmail-Scanner est désormais installé dans /var/qmail/bin (qmail-scanner-queue.pl).

/var/qmail/bin/qmail-scanner-queue.pl -z
/var/qmail/bin/qmail-scanner-queue.pl -g

Editez le fichier /var/qmail/bin/qmail-scanner-queue.pl et retirer le " -T " de la première ligne.

chown -R qscand:qscand /var/spool/qmailscan

On édite les hôtes autorisés à utiliser notre SMTP comme relai :

vi /etc/tcp.smtp

Ce que doit contenir le fichier :

127.0.0.1:allow,RELAYCLIENT="",QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl"
:allow,QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl"

On relance tout :

tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
 
/etc/init.d/qmail restart
OU
qmailctl restart

Test de l'installation

Vous pouvez maintenant tester votre installation comme suit :

chmod +x qmail-scanner-1.25/contrib/test_installation.sh
qmail-scanner-1.25/contrib/test_installation.sh -doit

Afin de tester SpamAssassin, vous pouvez utiliser le GTUBE : il suffit de vous envoyer la ligne ci-dessous par email et celui-ci devrait être marqué comme SPAM :

XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X

Un système identique existe pour tester Clam Anvirus, comme ci-dessous, envoyez-vous par mail la ligne suivante :

X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*

Vous pouvez aussi tester Clam Anvirus plus en profondeur grâce à ce test : http://www.webmail.us/testvirus

Liens utiles

Voici une liste de liens qui pourront vous être utiles durant cette installation :