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) :
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
# vi /etc/amavis/conf.d/15-content_filter_mode
@bypass_virus_checks_maps = (
\%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);
# vi /etc/amavis/conf.d/20-debian_defaults
$final_virus_destiny = D_BOUNCE;
# /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
# apt-get install spamassassin libnet-dns-perl razor pyzor
# vi /etc/default/spamassassin
CRON=1
# sa-update
# 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
# su - amavis $ razor-admin -d --create $ razor-admin -register $ razor-admin -discover
# su - amavis $ pyzor discover
# 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 "". 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;
# /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.