====== ClamAv / SpamAssassin ====== {{:2546654587_85ccca3562.jpg|}}{{:arrowlogo.png|}} == Intégration d’un Antivirus : ClamAv == Il existe de nombreux antivirus mais beaucoup sont distribués sous des licences propriétaires. Dans le monde libre, il existe ClamAv qui fait très bien sont boulot. Pour que Amavis puisse faire du filtrage antivirus, il faut donc installer ClamAv ainsi que quelques librairies de compression (pour analyser les archives) : === Installation des packages nécessaires === Afin d'avoir une version plus récente que celle de votre distribution de base, il faut ajouter la ligne suivante dans les sources APT : # vi /etc/apt/sources.list deb http://volatile.debian.org/debian-volatile etch/volatile main contrib non-free Puis faite une mise à jour avec : # apt-get update Maintenant installez ClamAv : # apt-get install clamav clamav-daemon clamav-freshclam gzip bzip2 unzip unrar zoo arj Pour que tout ce passe correctement, il faut maintenant s’assurer que l’utilisateur utilisé par "clamav" fasse partie du groupe "amavis". # adduser clamav amavis === Activation du support antivirus pour Amavis === # vi /etc/amavis/conf.d/15-content_filter_mode @bypass_virus_checks_maps = ( \%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re); === Configuration de Amavis === # vi /etc/amavis/conf.d/20-debian_defaults $final_virus_destiny = D_BOUNCE; === Redémarrage des services === # /etc/init.d/clamav-daemon restart # /etc/init.d/amavis restart Pour vérifier le bon fonctionnement de l’antivirus, on peut utiliser des sites prévus a cet effet comme GFI Email Security Test [10]. Ces sites permettent d’envoyer des mails infectés avec un virus de test (non dangereux) vers votre serveur. En fonction des paramètres de notification qui ont été choisit, la réception de ce mail devrai, ou non, déclencher une alerte a l’administrateur du serveur. On peut par ailleurs consulter le contenu détaillé des headers des mails reçus pour s’assurer qu’ils contiennent une ligne du type : X-Virus-Scanned: Debian amavisd-new at example.org == Intégration d’un AntiSpam : SpamAssassin == === Installation de Spamassassin et des outils anti-spam === # apt-get install spamassassin libnet-dns-perl razor pyzor === Activation du démon spamd === # vi /etc/default/spamassassin CRON=1 === MAJ des règles Spamassassin === # sa-update === Configuration de Spamassassin === # vi /etc/spamassassin/local.cf report_safe 0 lock_method flock # Bayes-related operations use_bayes 1 use_bayes_rules 1 bayes_auto_learn 1 bayes_auto_expire 1 bayes_path /var/lib/amavis/.spamassassin/bayes # External network tests dns_available yes skip_rbl_checks 0 use_razor2 1 use_pyzor 1 # Use URIBL (http://www.uribl.com/about.shtml) urirhssub URIBL_BLACK multi.uribl.com. A 2 body URIBL_BLACK eval:check_uridnsbl(’URIBL_BLACK’) describe URIBL_BLACK Contains an URL listed in the URIBL blacklist tflags URIBL_BLACK net score URIBL_BLACK 3.0 urirhssub URIBL_GREY multi.uribl.com. A 4 body URIBL_GREY eval:check_uridnsbl(’URIBL_GREY’) describe URIBL_GREY Contains an URL listed in the URIBL greylist tflags URIBL_GREY net score URIBL_GREY 0.25 # Use SURBL (http://www.surbl.org/) urirhssub URIBL_JP_SURBL multi.surbl.org. A 64 body URIBL_JP_SURBL eval:check_uridnsbl(’URIBL_JP_SURBL’) describe URIBL_JP_SURBL Has URI in JP at http://www.surbl.org/lists.html tflags URIBL_JP_SURBL net score URIBL_JP_SURBL 3.0 === Configuration de razor en utilisant l’utilisateur amavis === # su - amavis $ razor-admin -d --create $ razor-admin -register $ razor-admin -discover === Configuration de pyzor en utilisant l’utilisateur amavis === # su - amavis $ pyzor discover === Activation du support anti-spam pour amavis === # vi /etc/amavis/conf.d/15-content_filter_mode @bypass_spam_checks_maps = ( \%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re); Il faut maintenant définir le comportement de Amavis lorsque Spamassassin a analysé le message. Comme indiqué précédemment, Spamassassin affecte un score au message. Amavis va maintenant comparé ce score au seuil défini par la variable "FIXME". Si le score est supérieur à cette valeur, Amavis va appliquer les règles destinées aux messages indésirables. Le score affecté par Spamassassin n’étant jamais fiable à cent pour cent, il faire prendre beaucoup de précautions lors de la définition des règles d’Amavis. Par exemple : Il ne vaut mieux pas modifier le sujet du message en ajoutant "***SPAM***" : si le message est marqué par erreur, l’utilisateur final aura un message désirable dont le sujet commencera par ***SPAM***. Il est fortement recommandé de NE PAS SUPPRIMER directement les messages marqués comme SPAM. La méthode la plus sûr, est sans doute d’inscrire le score dans les en-têtes et de ne pas toucher au reste du message. Il suffit ensuite d’utiliser les différentes méthodes de filtrage pour que les SPAMs soient délivrés dans un dossier spécifique. Toute cette configuration ce fait dans le fichier /etc/amavis/conf.d/20-debian_defaults : # vi /etc/amavis/conf.d/20-debian_defaults # $sa_spam_subject_tag = ’***SPAM*** ’; $sa_tag_level_deflt = -999; $final_banned_destiny = D_BOUNCE; $final_spam_destiny = D_PASS; $final_bad_header_destiny = D_PASS; === Redémarrage des services === # /etc/init.d/amavis restart Pour vérifier le bon fonctionnement de l’anti-SPAM, on peut par s’envoyer un mail (depuis l’extérieur) content la chaine de test suivante (GTUBE) : XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X Cette chaine de test est reconnue par la plupart des anti-SPAM et doit forcement être reconnue par SpamAssassin. Si le mail contenant cette chaine n’est pas identifiée comme SPAM, il faut revoir la configuration de Amavis et de SpamAssassin : elle n’est surement pas correcte.