Sommaire
Amavisd-new
Amavisd-New est un des outils de la lutte anti-spam de l'AUF.
La page de l'ancien wiki est à migrer : AmavisdNew
à mettre à jour ! à vos claviers
Introduction
amavisd-new est un logiciel permettant d'analyser des messages électroniques reçus ou envoyés par un logiciel de gestion de messagerie (MTA) tel que Postfix.
Le principe est le suivant :
- le MTA est configuré pour envoyer les messages à analyser à amavisd-new
- amavisd-new décompose le message dans ses différentes parties (entêtes, corps, attachements)
- amavisd-new effectue quelques vérifications de base sur le message (entêtes trop longs ou mal codés)
il envoie ensuite ce message à d'autres systèmes tels que SpamAssassin (anti-spam) ou ClamAV (anti-virus)
- en fonction des résultats des différentes analyses, il peut laisser passer le message, le bloquer ou le modifier. Il peut aussi prévenir l'expéditeur, le destinataire ou l'administrateur du système de message.
Pour que amavisd-new fonctionne il faut donc :
lui adjoindre d'éventuels analyseurs, tels que SpamAssassin ou ClamAV (deux logiciels fortement conseillés) ;
- configurer amavisd-new pour lui indiquer quel comportement adopter dans quelle situation ;
- configurer votre MTA pour qu'il envoie les messages à amavisd-new.
Installation
# aptitude install amavisd-new
Seul, amavisd-new n'est pas utile : il faut lui adjoindre des filtres. Il faut donc installer à cet effet SpamAssassin (anti-spam) , ClamAV (anti-virus) et également postgrey. Voir les pages respectives de ces logiciels pour plus d'informations sur leur installation.
Configuration
Faire certaines modifications à amavis.conf1
Inclure votre domaine à la ligne suivante:
$mydomain = 'vu.auf.org'; # (no useful default)
Décommenter la ligne suivante:2
#@bypass_spam_checks_acl = qw( . ); # No default dependency on spamassassin
Décommenter :
#@local_domains_acl = ( ".$mydomain" ); # $mydomain and its subdomains
Décommenter et modifier pour ajouter vos autres domaines:
@local_domains_acl = ( ".$mydomain", "refer.org.vu" );
Modifier les ligne suivantes en fonction de vos besoins (/etc/amavis/conf.d/20-debian_defaults):
$final_virus_destiny = D_DISCARD; # (defaults to D_BOUNCE) $final_banned_destiny = D_BOUNCE; # (defaults to D_BOUNCE) $final_spam_destiny = D_PASS; # (defaults to D_REJECT) $final_bad_header_destiny = D_PASS; # (defaults to D_PASS), D_BOUNCE suggested
Décommenter les lignes suivante3
qr'.\.(ade|adp|bas|bat|chm|cmd|com|cpl|crt|exe|hlp|hta|inf|ins|isp|js| jse|lnk|mdb|mde|msc|msi|msp|mst|pcd|pif|reg|scr|sct|shs|shb|vb| vbe|vbs|wsc|wsf|wsh)$'ix, # banned extension - long
Dans la section de spamassassin changer les lignes suivantes:
$sa_tag_level_deflt = 4.0; # add spam info headers if at, or above that level $sa_tag2_level_deflt = 6.3; # add 'spam detected' headers at that level $sa_kill_level_deflt = 100; # triggers spam evasive actions # at or above that level: bounce/reject/drop, # quarantine, and adding mail address extension $sa_dsn_cutoff_level = 100; # spam level beyond which a DSN is not sent, # effectively turning D_BOUNCE into D_DISCARD; # undef disables this feature and is a default; ($sa_kill_level_deflt = 100 et $sa_dsn_cutoff_level = 100 devrait être assez haut si vous n'avez pas changer $final_spam_destiny à D_PASS sinon vous risquer d'effacer des faux positifs.)
changer le message qui sera ajouté au sujet des Spam
$sa_spam_subject_tag = 'SPAM '; # (defaults to undef, disabled)
Ajouter user clamav au group amavis
Dans le fichier /etc/clamav/clamd.conf mettre la valeur true pour cette ligne
AllowSupplementaryGroups true
pour éviter une erreur de type
amavis[7507]: (07507-04) (!)ClamAV-clamd av-scanner FAILED: CODE(0x316b108) unexpected , output="/var/lib/amavis/tmp/amavis-20150727T181939-07507/parts: lstat() failed: Permission denied. ERROR\n" at (eval 103) line 594.
Optionnel: Pour les avertissement en français demandez à Sébastien pour les fichiers et changer:
read_l10n_templates('en_US', '/etc/amavis'); pour read_l10n_templates('fr_CA', '/etc/amavis');
Configuration de Postfix pour marcher avec amavisd-new
Installation de Postfix
aptitude install postfix
Modifier le fichier /etc/postfix/main.cf
postconf -e 'content_filter = amavis:[127.0.0.1]:10024'
En suite ajouter ces lignes à /etc/postfix/master.cf:
amavis unix - - - - 2 smtp -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes 127.0.0.1:10025 inet n - - - - 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 -o smtpd_error_sleep_time=0 -o smtpd_soft_error_limit=1001 -o smtpd_hard_error_limit=1000
Redémarrer postfix
/etc/init.d/postfix restart
et vous devriez voir Postfix (maître) à l'écoute sur le port 25 (SMTP) et 10025, et amavisd-new sur le port 10024:
netstat -tap Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 *:smtp *:* LISTEN 8242/master tcp 0 0 *:imaps *:* LISTEN 9963/imap-login tcp 0 0 localhost:10024 *:* LISTEN 293/amavisd (master tcp 0 0 localhost:10025 *:* LISTEN 8242/master tcp 0 0 *:imap2 *:* LISTEN 9963/imap-login tcp 0 0 localhost:spamd *:* LISTEN 605/spamd.pid tcp 0 0 *:sunrpc *:* LISTEN 165/portmap
Tests
Anti_virus
Le tests d'antivirus fait parti de la documentation de mise en production. Voir : /usr/share/doc/amavisd-new/README.postfix.gz
Ensuite voir le log pour être sur que tout va bien:
# tail -f -n 45 /var/log/amavis.log May 26 12:11:43 server amavisd-new[31118]: (31118-06) INFECTED (Worm.SomeFool?.P), <?@[202.136.241.65]> -> <diffusion-important@vu.auf-francophonie.org>, quarantine virus-20050526-121143-31118-06, Message-ID: <20050526010818.01A83273@hoadao.vn.refer.org>, Hits: - May 26 12:37:23 server amavisd-new[31119]: (31119-06) Passed, <ntxjsp@onlineworldwealthnowcenter.com> -> <martiano.mahe@refer.org.vu>, Message-ID: <20050526013719.01664183@server.vu.auf>, Hits: 10.164
Mise en production avec le MTA Postfix Voir : /usr/share/doc/amavisd-new/README.postfix.gz
Anti-SPAM
Il faut envoyer un mail avec ce text dans le contenu
XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X
Ensuite voir le log pour être sur que tout va bien:
# tail -f -n 45 /var/log/mail.log Apr 12 14:40:52 mail amavis[17414]: (17414-10) Passed SPAM, [10.230.33.121] [10.230.33.121] <ttlam@ifi.edu.vn> -> <ttlam@ifi.edu.vn>, quarantine: spam-jYvuIC2al3A5.gz, Message-ID: <4F8685FC.4030705@ifi.edu.vn>, mail_id: jYvuIC2al3A5, Hits: 999, size: 910, queued_as: EEA498024D, 9286 ms
Détail totalement inutile
Le terme SPAM qui fait référence aux abus est utilisé depuis les débuts d'Internet. Sur Bitnet relay (L'ancêtre de l'IRC je pense). Il était commun d'inonder les fenêtres de clavardage(chat) avec le texte complet de la chanson SPAM de Monty Python pour irriter les autres. Cette chanson fait référence à la nourriture du même nom. Le SPAM est un type de viande en boite produit par la compagnie Hormel Food. So nom veux dire SPiced hAM.