Simscan avec Clam Antivirus et SpamAssassin
Un article de Wiki SOS-ADMIN.
- Ce guide vous est proposé par Michael @ moon06 (http://www.aliosphere.fr).
- Certaines corrections ont étés apportés par David CHANIAL (http://www.euro-web.fr/).
- D'autres par Toorop (http://www.protecmail.com)
- D'autres par Guillaume @ GuiLE
- D'autres par Elgi (http://www.elginux.com)
Sommaire |
Installation de Simscan avec Clam Antivirus & SpamAssassin
Prérequis
Ce guide fonctionne avec une installation fonctionnelle de Qmail avec son patch Qmailqueue (voir ce guide)
J'ai traité il y a quelques jours de cela une installation similaire, mais en utilisant l'utilitaire Qmail-Scanner (voir ici, programmé en Perl. L'outil dont je vais parler aujourd'hui est lui programmé en C donc :
- Plus rapide et performant
- Pas de problèmes de suidperl
On ajoute les utilisateurs et groupes nécessaires :
groupadd clamav groupadd simscan useradd -g clamav -c "Compte ClamAV" -s /bin/false clamav useradd -g clamav -c "Compte Simscan" -s /bin/false simscan
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
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
Installation de Clam Antivirus
wget http://ovh.dl.sourceforge.net/sourceforge/clamav/clamav-0.87.1.tar.gz tar -zxf clamav-0.87.1.tar.gz cd clamav-0.87.1/
./configure --sysconfdir=/etc 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 simscan TemporaryDirectory /tmp
On s'occupe du fichier de log de clamd :
touch /var/log/clamd.log chmod 600 /var/log/clamd.log chown simscan:clamav /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
Afin d'être sympa et utiliser un miroir plus proche, on décommente et modifie également la ligne suivante (remplacez le 'fr' par un autre code de pays si votre serveur n'est pas en France) :
DatabaseMirror db.fr.clamav.net
On s'occupe du fichier de log de freshclam :
touch /var/log/freshclam.log chmod 660 /var/log/freshclam.log chown simscan:clamav /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 -d /home/spamd -s /bin/false spamd
On édite maintenant les options de démarrage du démon SpamAssassin :
vi /etc/sysconfig/spamassassin
Copiez ce texte dans le fichier :
SPAMDOPTIONS="-x -m5 -u spamd -H /home/spamd -d --socketpath=/var/spamd.socket"
Note : pour le chemin du socket et histoire de respecter le système de fichier linux, indiquez plutôt --socketpath=/var/run/spamd.sock
Etant donné que nous n'utilisons pas Qmail-Scanner, il va falloir définir nous mêmes les options de SpamAssassin dans le fichier
/etc/mail/spamassassin/local.cf
Toutes les options disponibles sont présentées dans cette documentation officielle : http://spamassassin.apache.org/full/3.1.x/dist/doc/Mail_SpamAssassin_Conf.txt
Vous pouvez pour l'instant par exemple vous contenter de cette configuration :
required_hits 5 report_safe 0 rewrite_header Subject [SPAM]
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 Simscan
Simscan necessite RipMime :
wget http://www.pldaniels.com/ripmime/ripmime-1.4.0.6.tar.gz tar xvzf ripmime-1.4.0.6.tar.gz cd ripmime-1.4.0.6 make && make install
Passons donc maintenant à l'application qui va permettre de faire la liaison entre Qmail et ces deux logiciels, Simscan.
wget http://www.inter7.com/simscan/simscan-1.1.tar.gz tar -zxf simscan-1.1.tar.gz cd simscan-1.1/
./configure --enable-spam=y \
--enable-spam-passthru=y \
--enable-clamav=y \
--enable-spamc-args="-U /var/spamd.socket" \
--enable-clamavdb-path="/usr/local/share/clamav" \
--enable-received=y \
--enable-attach=y
N'oubliez pas de modifier le chemin vers le socket de spamd.
Pour voir toutes le détail des options disponibles, consultez le fichier README.
Vous devriez avoir un résultat correspondant normalement à ceci :
Current settings --------------------------------------- user = simscan qmail directory = /var/qmail work directory = /var/qmail/simscan control directory = /var/qmail/control qmail queue program = /var/qmail/bin/qmail-queue clamdscan program = /usr/bin/clamdscan clamav scan = ON trophie scanning = OFF attachement scan = ON ripmime program = /usr/local/bin/ripmime custom smtp reject = OFF drop message = OFF regex scanner = OFF quarantine processing = OFF domain based checking = OFF add received header = OFF spam scanning = ON spamc program = /usr/bin/spamc spamc arguments = -U /var/spamd.socket spamc user = OFF spam passthru = ON
On lance donc la compilation et l'installation :
make clean make make install-strip
On attribue les bons droits au dossier de travail de Simscan :
chown simscan:clamav /var/qmail/simscan chmod 750 /var/qmail/simscan
On crée le fichier simcontrol et on le compile, puis on crée le fichier contenant les versions de simscan et autres softs qu'il utilisent (clamav et spamassassin à priori) :
echo ":clam=yes,spam=yes,spam_passthru=yes">/var/qmail/control/simcontrol /var/qmail/bin/simscanmk /var/qmail/bin/simscanmk -g
Testeons le bon fonctionnement de Simscan avec SpamAssassin et Clam Antivirus :
echo "voila ça marche" > mailtest.txt env QMAILQUEUE=/var/qmail/bin/simscan SIMSCAN_DEBUG=5 /var/qmail/bin/qmail-inject votre_adresse@domaine.com < mailtest.txt
Si vous recevez bien le mail, c'est bon, passez à l'étape suivante.
On édite les hôtes autorisés à utiliser notre SMTP comme relai :
vi /etc/tcp.smtp
Lignes à mettre dans ce fichier :
127.0.0.:allow,RELAYCLIENT="",QMAILQUEUE="/var/qmail/bin/simscan" :allow,QMAILQUEUE="/var/qmail/bin/simscan"
On relance tout :
tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp /etc/init.d/qmail restart OU qmailctl cdb qmailctl restart
Attention, les scripts de démarrage du daemon smtpd appliquent souvent des softlimit qui font que vous ne voyez pas certaines erreurs, et les mails arrivent soit vides, soit pas du tout. par exemple, pour les versions supervisés, il faut editer le fichier /service/qmail-smtpd/run, trouver la ligne (qui autorise l'utilisation de 3 mo de ram pour les process et sous process) :
exec /usr/local/bin/softlimit -m 3000000 \
et la remplacer par quelque chose du type (qui en autorise 100 mo) :
exec /usr/local/bin/softlimit -m 100000000 \
on relance le daemon smtpd :
svc -t /service/qmail-smtpd
Test de l'installation
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
Patchs et modifications
Système permettant de logger les informations de Simscan dans MySQL
Patch permettant le calcul de statistiques sur l'activité de simscan
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/
- SimScan : http://www.inter7.com/simscan/

