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 :
- CPAN Perl : http://cpan.perl.org/
- Clam Antivirus : http://www.clamav.net/
- SpamAssassin : http://spamassassin.apache.org/
- Maildrop : http://www.courier-mta.org/maildrop/
- Qmail-Scanner : http://qmail-scanner.sourceforge.net/

