J'ai eu à installer récemment une solution de filtrage anti-virus et anti-spam et comme à chaque installation de ce type de dispositif, bien que ça ne soit pas la première fois, je me suis replongé dans la documentation ... J'ai donc décidé de rédiger ce petit Howto afin de faciliter le travail de ceux qui auraient à accomplir la même opération.
Ce document est basé sur la dernière version Debian (4.0 / Etch), ce qui devrait lui assurer une bonne durée de vie ;-). Toutes les applications utilisées sont disponibles sous forme de packages officiels (c'est plus simple pour les mises à jour).
UPDATE du 15/4/2009 : je viens de tester cette procédure sur la dernière version de Debian (Lenny / 5.0) et tout fonctionne correctement !
Les pré-requis sont les suivants :
- Une distribution Linux Debian 4.0 fonctionnelle ;
- Un serveur Postfix en état de fonctionnement et configuré selon vos besoins (ce document ne traitera pas de la configuration de Postfix - mais si vous avez des questions je pourrais peut être vous aider ...).
Petit rappel sur les différents éléments utilisés :
- ClamAV : anti-virus Open Source (plus d'infos ICI)
- SpamAssassin : anti-spam Open Source (plus d'infos ICI)
- Amavisd-New : module réalisant l'interface entre Postfix les modules de filtrage SpamAssassin et ClamAV (plus d'infos ICI)
C'est parti ...
- installation Amavisd-New et ClamAV
apt-get install amavisd-new clamav clamav-daemon
L'installeur va vous poser des questions, normalement les réponses par défaut devraient convenir.
- il faut ajouter l'utilisateur clamav au groupe amavis
addgroup clamav amavis
- il faut modifier le fichier /etc/amavis/conf.d/15-content_filter_mode
- décommentez les deux lignes suivantes (pour autoriser le filtrage anti-virus) :
@bypass_virus_checks_maps = (
\%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);
- et celles-ci (pour autoriser le filtrage anti-spam) :
@bypass_spam_checks_maps = (
\%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);
- téléchargez et installez "spamassassin"
apt-get install spamassassin
- dans "/etc/default/spamassassin"
modifiez "ENABLED=1"
modifiez "OPTIONS="--max-children 5 --helper-home-dir" (remplacez 5 par le nombre de process de "spamd" devant fonctionner simultanéement)
- ajoutez la ligne suivante dans le fichier "/etc/postfix/main.cf"
content_filter = smtp-amavis:[127.0.0.1]:10024
- ajoutez les lignes suivantes dans le fichier "/etc/postfix/master.cf"
(attention à bien conserver un espace avant chaque "-o")
smtp-amavis unix - - y - 2 smtp
-o smtp_data_done_timeout=1200
-o disable_dns_lookups=yes127.0.0.1:10025 inet n - y - - smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_client_restrictions=
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks=127.0.0.0/8
-o strict_rfc821_envelopes=yes
- et enfin pour bénéficier de toutes les fonctionnalités d'Amavis, il faut lui indiquer le (ou les) domaines gérés sur ce serveur (en terme de courrier bien sûr)
- Ajouter dans le fichier "/etc/amavis/conf.d/05-domain_id" :
@local_domains_maps = ( [ '.domain1.com', '.domain2.com', '.domain3.com' ] );
- on relance tout le bazar :
/etc/init.d/spamassassin restart
/etc/init.d/clamav-daemon restart
/etc/init.d/amavis restart
postfix reload
-
pour s'assurer qu'Amavis prenne bien en charge ClamAV et Spamassassin, aprés avoir relancé Amavis (étape précédente) on doit retrouver les lignes suivantes dans les logs du serveur de mail (normalement /var/log/mail.info)
May 9 11:44:37 hostname amavis[26709]: ANTI-VIRUS code loaded
May 9 11:44:37 hostname amavis[26709]: ANTI-SPAM-SA code loaded
May 9 11:44:37 hostname amavis[26709]: Using internal av scanner code for (primary) ClamAV-clamd
May 9 11:44:37 hostname amavis[26709]: Found secondary av scanner ClamAV-clamscan at /usr/bin/clamscan
-
Il est également plus prudent de tester un envoi de mail avec la chaîne de test "EICAR" (allez faire un tour sur www.eicar.com), puis allez jeter un oeil sur les logs de Postfix :
May 9 14:02:41 hostname amavis[13251]: (13251-01) Blocked INFECTED (Eicar-Test-Signature), [192.168.0.1] <nom@domaine.fr> -> <test@testmail.fr>, quarantine: virus-lFDtkSo0b4vz, Message-ID: <20070509120235.D8AF02AA74@hostname>, mail_id: lFDtkSo0b4vz, Hits: -, 125 ms
- On peut également tester l'anti-spam avec l'envoi d'un message contenant la chaine de test suivante : XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X
On doit retrouver un truc comme ça dans les logs de Postfix :
May 9 14:24:45 hostname amavis[6446]: (06446-02) Blocked SPAM, [192.168.0.1] <nom@domaine.fr> -> <test@testmail.fr>, quarantine: spam-atCf69YINh+q.gz, Message-ID: <20070509122435.87ED32AA74@hostname>, mail_id: atCf69YINh+q, Hits: 1004.184, 2128 ms
Vous disposez désormais d'une solution de filtrage anti-virus et anti-spam fonctionnelle !
Normalement tout devrait fonctionner correctement, néanmoins si vous constatez quelques anomalies n'hésitez pas à me contacter afin que je puisse mettre à jour ce document !
excellent...! merci pour le howto 🙂
plus ça va, plus je me met a publier online mes propres notes et travaux... ça me permet au moins de pouvoir les retrouver depuis n'importe où 😉
Bonjour ,
et merci pour ce travail.
Malgrès la bonne instalation de Debain Etch avec Postfix que j'a pu installer et configurer pour mes besoins sans difficulté, c'est l'installation de clamav et spamassassin en elle même qui pose problème.
La ligne
apt-get install amavisd-new clamav clamav-daemon
m'innonde de messages. Que cela ne tienne je lance apt-get update puis manuellement pour chaque package. amavisd-new fait état de dépendances non satisfaites, essentiellement des librairies perl. Le tout accompagné du message n'est pas instalable.
J'imagine que mon installation initiale ne répond pas à tous les prérequis. Ces derniers sont difficiles à établir, la documentation sur certains packages reste quand meme très succinte, même pour un utilisateur habitué depuis longtemps à la ligne de commande et aux fichiers de configurations.
Si vous voyez avec évidence quel est le problème, je gagnerai du temps, sinon je reprendrai les choses au début.
Cordialement.
Bonjour Claude,
Pas facile de te dépanner comme ça ... Je te fait passer mon adresse email, si tu veux m'adresser quelques infos supplémentaires je t'indiquerais en retour si je vois quelques chose de bizarre :
- le résultat de "apt-get install amavisd-new clamav clamav-daemon"
- une copie de ton "/etc/apt/sources.list"
/Xavier
Je me suis posé les bonnes questions grace à cette réponse. Premier constat apt-get update ne fonctionne pas correctement donc mon fichier sources.list n'est pas correct. Je suis donc allé voir à la source et je l'ai modifié d'après les informations données ici :
http://www.us.debian.org/doc/manuals/apt-howto/ch-basico.fr.html#s-sources.list
Et bien sur apt-get update puis apt-get install amavisd-new clamav clamav-daemon sont maintenant opérationnels.
Le reste dela configuration en suivant la procédure ne m' a pas posé de difficulté.
Merci pour ce coup de pouce.
Merci pour cette doc
Je me demande tout de même s'il est possible de récupérer tous les mails passés en spam pour vérification ?
Merci pour ce howto assez descriptif.
Je pense cependant qu'il y a une redondance dans les outils utilisés. Il est bien nécessaire d'installer le paquet spamassassin, mais pas d'activer spamd. En effet amavisd-new fait usage des bibliothèques de fonctions de spamassassin en interne, sans déléguer les vérifications à spamd. Et les performances sont similaires à celles de spamd. Voir le point 6 de Performances à http://www.ijs.si/software/amavisd/#features-performance
Il semblerait qu'il y ai un probleme d'accès sur mon système après avoir (scrupuleusement, ai-je oublier qq chose , probleme de droit ? ) Une idée de comment réparer ça ?
Nov 1 20:53:29 ogs amavis[8941]: (08941-01) (!) ClamAV-clamd: Can't connect to UNIX socket /var/run/clamav/clamd.ctl: Aucun fichier ou r\351pertoire de ce type, retrying (2)
Nov 1 20:53:35 ogs amavis[8941]: (08941-01) (!!) ClamAV-clamd av-scanner FAILED: Too many retries to talk to /var/run/clamav/clamd.ctl (Can't connect to UNIX socket /var/run/clamav/clamd.ctl: Aucun fichier ou r\351pertoire de ce type) at (eval 44) line 268.
Nov 1 20:53:35 ogs amavis[8941]: (08941-01) (!!) WARN: all primary virus scanners failed, considering backups
MERCI.
Meme probleme que Rica .. une idée ?
Bonjour,
tout d'abord, merci pour cette documentation... J'ai un petit problème lors de l'installation de amavisd-new, lors de son installation, il me renvoie l'erreur suivante :
addgroup: Starting amavisd: The value of variable $myhostname is "srv", but should have been
a fully qualified domain name; perhaps uname(3) did not provide such.
You must explicitly assign a FQDN of this host to variable $myhostname
in amavisd.conf, or fix what uname(3) provides as a host's network name!
(failed).
invoke-rc.d: initscript amavis, action "start" failed.
dpkg : erreur de traitement de amavisd-new (--configure) :
le sous-processus post-installation script a retourné une erreur de sortie d'état 1
Des erreurs ont été rencontrées pendant l'exécution :
amavisd-new
E: Sub-process /usr/bin/dpkg returned an error code (1)
je n'arrive pas à voir d'où vient le problème...
Si vous pouvez m'apporter un début de réponse, ce serait avec grand plaisir...
Merci par avance
Christophe
Bonjour Christophe,
Visiblement il semble y avoir un problème avec le nom de la machine. Il faudrait essayer, comme indiqué dans le message d'erreur, de définir la variable "$myhostname" au sein du fichier de conf d'Amavis avec un nom pleinement qualifié du type "ma_machine.mon_domaine.tld" ...
A essayer.
/Xavier
Bonjour Xavier,
Le problème c'est que je n'ai rien d'installé dans /etc/amavis donc pas de fichier amavisd.conf, juste un dossier conf.d... peut-être le problème vient-il de là ? J'ai essayé de désinstaller le paquet et le ré-installer mais pas mieux...
Merci en tout cas pour ce début de réponse
Christophe
Salut,
En fait les fichiers de conf d'Amavis doivent se trouver dans le répertoire conf.d . Par contre il ne doit plus y avoir de fichier amavis.conf mais plusieurs fichiers "éclaté". Essaye de regarder dans le fichier 05-node_id.
@+
/Xavier
Bonjour Xavier
Merci pour tout, c'est ok : en fait j'avais déjà testé une ancienne version d'Amavis sur une Sarge, et donc je m'obstinais à chercher le amavisd.conf, alors que cela a changé dans cette version. Donc j'ai pu paramêtré le bon hostname, dans le fichier que tu m'as indiqué, et ensuite j'ai suivi ton tudo, et tout est ok..., juste quelques décodeurs non trouvés pour certains types de fichiers compressés : rmp, lzo... Par contre, il y a dans le mail.info, des erreurs sur SQL base code : NOT Loaded, SQL: Log Code : NOT Loaded, je ne sais pas trop à quoi cela correspond...
Merci encore en tout cas
Christophe
Christophe,
Nickel pour le fonctionnement d'Amavis. Par contre pour tes messages dans le log "mail.info", je pense que ta version de Postfix a été compilée avec la prise en charge de MySQL (ou un truc du genre). Si tout fonctionne correctement, à mon avis tu peux ignorer ces infos.
@+
/Xavier
Ping : Le Blog de Nicodème » Blog Archive » Sécurisation du serveur : Spamassassin et Clamav
Ping : Le Blog de Nicodème » Blog Archive » Sécurisation du serveur : Spamassassin et Clamav
Merci après plusieurs mois de tentative d'install infructueuse enfin une solution bien détaillé et fonctionnelle.j'ai seulement dû commenter quelques ligne de configuration de clam et d'amavis. qui me retournaient des erreurs au reload.
Bonjour Xavier,
J'ai toujours le même problème... Tu aurais une piste ?
Merci par avance !
Bonjour savez vous comment franciser les messages d'erreur (Mail Delivery System)de postfix qui utilise
spamassassin amavis clamav.
Merci
Bonjour
Si quelqu'un a la réponse pour Rica ou Jmix90... Merci!
C'est peut être un problème de droits utilisateur sur /var/run/clamav/
Vérifier le propriètaire du dossier quel est l'utilisateur qui fait tourner clamav et amavis, puis harmoniser les utilisateurs dans les fichiers de conf de clamav amavis et fresclam.
Penser aussi a identifier le bon utilisateur dans logrotate pour ne pas avoir d'erreur de mise à jours.
Pour résoudre le probleme de Rica ou Jmix90, j'ai :
1/ Ajouter le dépot volatile :
deb http://volatile.debian.net/debian-volatile etch/volatile main
2/ apt-get update
3/ apt-get upgrade
Et cela à corriger cette erreur chez moi
Merci Laurent pour la réponse au problème de Rica ou Jmix90.
J'ajouterai juste que pour chez moi, a la suite il a fallu faire un:
# apt-get --purge remove amavisd-new clamav clamav-daemon spamassassin
# apt-get install amavisd-new clamav clamav-daemon spamassassin
au cas ou, si cela ne fonctionne toujours pas, tentez un
# dpkg-reconfigure clamav-base
Bonsoir,
Merci à Laurent et drfazor pour leur solution de Rica.
Néanmoins, depuis que j'ai modifie tout ca. Mon postfix intercept bien les spams mais j'ai toujours:
Oct 18 20:41:47 server amavis[8001]: (08001-01) (!) ClamAV-clamd: Can't connect to UNIX socket /var/run/clamav/clamd.ctl: Aucun fichier ou r\351pertoire de ce type, retrying (2)
Oct 18 20:41:47 server amavis[8001]: (08001-01) (!!) ClamAV-clamd av-scanner FAILED: Too many retries to talk to /var/run/clamav/clamd.ctl (Can't connect to UNIX socket /var/run/clamav/clamd.ctl: Aucun fichier ou r\351pertoire de ce type) at (eval 44) line 268.
Oct 18 20:41:47 server amavis[8001]: (08001-01) (!!) WARN: all primary virus scanners failed, considering backups
Quand j'essaie de demarrer /etc/init.d/clamav-daemon: il me dit que clamav n'est pas configuré. Qu'il faut le faire puis le demarrer.
Une autre question, les spams considérés comme spam sont supprimé directement :
Oct 18 20:41:59 server amavis[8001]: (08001-01) Blocked SPAM, [212.27.42.36] [82.243.158.31] -> , quarantine: spam-Y9mexZy+QFF2.gz, Message-ID: , mail_id: Y9mexZy+QFF2, Hits: 1000.127, 19915 ms
Oct 18 20:41:59 server postfix/smtp[8067]: CB36432DA1: to=, relay=127.0.0.1[127.0.0.1]:10024, delay=20, delays=0.07/0.01/0.02/20, dsn=2.5.0, status=sent (250 2.5.0 Ok, id=08001-01, BOUNCE)
Oct 18 20:41:59 ks300147 postfix/qmgr[7997]: CB36432DA1: removed
Comment peux-t-on faire pour que le mail en question se mette juste dans un dossier spam? Comme sur googlemail
Merci,
J'ai suivi votre procédure qui semble claire, mais un telnet localhost 100025 affiche:
****
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused
****
Mes logs affichent justement:
****
warning: connect to transport smtp-amavis: No such file or directory
****
et mon message de test reste indéfiniment dans la queue...
J'ai fouillé le net en essayant pas mal de solutions... mais apparement je n'arrive pas à fixer le pb de façon convenable!
Un coup de main serait le bienvenu.
Merci
Salut,
Bizarre ton problème et pas évident à résoudre sans être directement sur la machine ...
C'est bien entendu pas normal qu'un telnet sur le port 10025 (attention ce n'est pas le port 100025 - certainement une erreur de frappe de ta part) ne donne rien ...
Il faut bien vérifier que ce paragraphe est respecté "à la lettre" :
* ajoutez les lignes suivantes dans le fichier “/etc/postfix/master.cf“
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!! ******(attention à bien conserver un espace avant chaque “-o”) *****!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
smtp-amavis unix - - y - 2 smtp
-o smtp_data_done_timeout=1200
-o disable_dns_lookups=yes
127.0.0.1:10025 inet n - y - - smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_client_restrictions=
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks=127.0.0.0/8
-o strict_rfc821_envelopes=yes
Ca marche à merveille maintenant!
Les lignes ci dessous avaient des espaces à gauche inutiles (utiles pour les lignes -o ):
smtp-amavis unix - - y - 2 smtp
127.0.0.1:10025 inet n - y - - smtpd
Merci pour avoir attirer mon attention sur ladessus.
j'ai un petit soucis qui est le suivant:
debian postfix/qmgr[2486]: warning: connect to transport smtp-amavis: Connection refused
quelqu'un aurait la solution miracle, je cherche mais je ne trouve pas
Bonjour. Merçi beaucoup pour ce tuto Xavier, car il est très bien expliqué.
Mais j'ai la meme question que ngoc, c'est à dire : comment peux-t-on faire pour que les mails en questions se mettent juste dans un dossier spam? Comme sur googlemail.
Merçi
salut,
où vont les spams et les virus détectés ?
merci pour le tuto, c impec
++
J'ai entendu un echo assez semblable sur ce site:
http://www.colibrix.info/?p=6
Y'a-t-il une quelconque licence sur les posts de ce blog ?
Bonjour Kat. Merci pour l'info. C'est effectivement un beau copier/coller ... C'est quand même lamentable de pomper un billet sans même faire référence à la source. Enfin bon c'est comme ça. Il n'y a pas de licence particulière sur mon blog. Le fait que l'on reprenne certains de mes billets ne me gêne pas plus que ça tant qu'on en cite la source.
Encore merci pour le feed-back.
/Xavier
Le repompage est limite mais effectivement tant qu'il y a citation de la source, ça me gène moins, mais là c'était flagrant. J'ai aussi touché un mot au prioritaire de l'autre blog mais mon commentaire a été modéré....
Belle mentalité.
En tout cas je n'ai pas encore mis en place cette solution, mais dès que ce sera fait, je ferais certainement un article. Et je vous citerai ^^
Ping : Colibrix.info » Installation de Spamassassin et Clamav avec Postfix sous Debian Squeeze
Ping : Colibrix.info » Installation de Spamassassin et Clamav avec Postfix sous Debian Lenny (5.0)
C'est un super tuto, un travail à la finesse et précision.
En suivant ce tuto, nous avons pu installer amavis, clamav et spamassasin sur Debian 6 Squeeze.
Ca marche donc aussi bien sur la nouvelle version de OS Debian squeeze.
Je signale que le test de spam n'arrive pas à bloquer:
mail avec la chaîne EICAR dans le corps de message ni en entête.
Merci encore.
Merci pour le commentaire !
/Xavier
Presque fonctionnel sous Debian 8.0 Jessie. Il y a juste un message d'erreur dans les logs qui concerne le scan antivirus du message. Le soucis viens de clamav. Il suffit de changer cette configuration dans /etc/clamav/clamd.conf : AllowSupplementaryGroups false => true
Ping : Colibrix.info » Installer Spamassassin sous Debian GNU/Linux Jessie
Ping : Rama.ovh – Le site pour tout » Bonjour tout le monde !
Ping : Colibrix.info » Bonjour tout le monde !
Ping : Rama.ovh » Installation de spamassassin sous Debian GNU/Linux Wheezy ou Jessie
Ping : Supweb.fr » Bonjour tout le monde !