Vous voila donc avec un Postfix de configuré, et vous voulez maintenant mettre un antivirus pour filtrer les mails qui contiennent des virus, c’est article est pour vous.
Amavis
Amavis est un scanner de mail. Ce n’est pas un antivirus mais un outil qui fonctionne conjointement avec Postfix pour fournir le contenu du mail à des scanners tels que Clamav.
# apt-get install amavisd-new
On vérifie dans un premier temps le port sur lequel Amavis est configuré :
$ grep '$inet_socket_port' /etc/amavis/amavisd.conf
$inet_socket_port = 10024; # accept SMTP on this local TCP port
Dans "/etc/postfix/main/cf", ajoutez alors amavis en tant que filtre :
#content filters ( refers to master.cf ) :
content_filter = smtp-amavis:[127.0.0.1]:10024
"smtp-amavis" est le nom donné du service dans "/etc/postfix/master.cf". Ajoutez-y :
#client part (smtp) - amavis
smtp-amavis unix - - y - 2 smtp
-o smtp_data_done_timeout=1200
-o disable_dns_lookups=yes
#server part (smtpd) - amavis
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
/etc/init.d/postfix reload
Il est judicieux de configurer plus finement les logs d’Amavis, modifiez le fichier "/etc/amavis/amavisd.conf" pour désactiver le logging dans syslog et mettez un log level qui vous convient :
$DO_SYSLOG = 0;
$LOGFILE = "/var/log/amavis.log"; # (defaults to empty, no log)
$log_level = 2; # (defaults to 0)
Redémarrez Amavis :
/etc/init.d/amavis restart
Clamav
Clamav est l’antivirus qui va lire le contenu des mails puis le valider et le transmettre à Postfix ou le rejeter. Comme je suis en Sarge, il existe un repository spécial pour avoir la dernière version de Clamav : « Debian-Volatile ». C’est indispensable pour avoir la possibilité de reconnaître toutes les signatures des virus les plus récents. Si vous ne faites pas cette étape, vous verrez apparaître dans vos logs :
WARNING: Your ClamAV installation is OUTDATED!
WARNING: Current functionality level = 4, recommended = 20
DON'T PANIC! Read http://www.clamav.net/faq.html
Ca fait peur hein ?! Donc rajoutez dans votre "/etc/apt/sources.list" :
#Debian volatile (clamav database)
deb http://volatile.debian.org/debian-volatile sarge/volatile main contrib non-free
Ensuite, installez Clamav :
# apt-get update
# apt-get install clamav clamav-daemon
Question lors de l’installation : choisissez le mode « daemon » pour des mises à jour automatiques (toutes les heures), et sélectionner le serveur « fr » pour le téléchargement de ces mises à jour.
Comme indiqué dans le fichier de configuration, vous devez ajoutez Clamav au groupe d’Amavis :
addgroup clamav amavis
Vérifier qu’Amavis est bien configuré pour fonctionner avec Clamav (c’est automatique). Dans le fichier "/etc/amavis/amavisd.conf" vous devez trouver :
### http://www.clamav.net/
['Clam Antivirus-clamd',
\&ask_daemon, ["CONTSCAN {}\n", "/var/run/clamav/clamd.ctl"],
qr/\bOK$/, qr/\bFOUND$/,
qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ],
Pour les autres antivirus, ces lignes doivent être commentées.
Tester son antivirus
Vous pouvez maintenant vous envoyer un virus pour tester le rejet de Clamav. Pour cela, télécharger un des fichier de l’EICAR (European Institute for Computer Anti-Virus Research) qui simule la signature d’un virus (c’est n’est pas un vrai virus, pas d’inquiétude !). Ajouter ce fichier en pièce jointe vers votre serveur de mail et regardez les logs :
tail -f /var/log/clamav/clamav.log
Sat Nov 17 20:05:02 2007 -> /var/lib/amavis/amavis-20071117T200501-10585/parts/part-00004: Eicar-Test-S
ignature FOUND
Dans les logs d’Amavis, vous devez trouvez quelque chose comme :
Nov 17 20:05:02 sd-10602 amavisd-new[10585]: (10585-01) INFECTED (Eicar-Test-Signature)