« Amavis » : différence entre les versions
(→ClamAV) |
|||
Ligne 130 : | Ligne 130 : | ||
@bypass_spam_checks_maps = ( | @bypass_spam_checks_maps = ( | ||
\%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re); | \%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re); | ||
<div style="width:100%;background-color:#dddddd;margin-top:15px; margin-bottom:15px"> | |||
<div style="width:100%;background-color:#CCCCCC;font-family:cursive;font-size:16px;height:25px;text-align:center">Amavis sur un serveur séparé de Postfix</div> | |||
<div style="width:99%;padding:5px;"> | |||
* Il faut autoriser Postfix à communiquer avec le serveur Amavis via les règles inet_acl. Il faut aussi spécifié à Amavis avec quel serveur il doit communiquer pour le traitement des spams / virus. | |||
$inet_socket_bind = undef; | |||
@inet_acl = qw( 127.0.0.1 [::1] 10.0.0.0/8 ); | |||
$notify_method = 'smtp:10.0.0.49:10025'; | |||
$forward_method = 'smtp:10.0.0.49:10025'; | |||
</div> | |||
</div> | |||
</div> | |||
==== Scénarios de filtrage ==== | ==== Scénarios de filtrage ==== |
Version du 3 mars 2014 à 13:59
.:[ Serveur de Messagerie ]:.
Filtrage anti-spam : Anti-Spam SpamAssassin | Anti-Virus Clamav
Filtrage anti-virus : Plateforme de filtrage Amavis >> Amavis avec MySQL
Plus de fonctions : Ajouter un Disclaimer | Signature DKIM | Mailman | Maildrop
Clients de messagerie : Configurer Thundirbird | Configurer Roundcube
Pour aller plus loin : Commandes messagerie | DNSBL | MX Backup
Architecture
- Le serveur SMTP Amavis est exploité par Postfix pour lui soumettre les courriels à analyser. Une fois analysés par Amavis, les courriers sont ré-injecté dans Postfix avec le résultat de l'analyse.
Prérequis
Il est nécessaire de disposer d'un serveur de mails basé sur Postfix fonctionnel. Il est également nécessaire d'avoir installé le service Amavis ainsi que ClamAV et SpamAssassin.
Le serveur de mail Postfix gère la messagerie pour le domaine mail.glx et a comme adresse IP 10.0.0.44. Sur ce serveur est configuré le compte mail cacheln@mail.glx. Le serveur Amavis sera installé sur la même machine où est hébergé Postfix.
Installation
- Nous installation l'anti-virus ClamAV :
|
|
- Nous installation l'anti-spam SpamAssassin :
|
|
- Nous installation le service Amavis :
|
|
Configuration
SpamAssassin
Activation du programme
- Par défaut, le module est désactivé. Pour être lancé il faut remplacer dans le fichier /etc/default/spamassassin :
ENABLED=0
- Par :
ENABLED=1
Séparation des logs
- Pour éviter de trop encombrer les logs de Postfix dans le fichier /var/log/mail.log, nous allons séparer les logs de SpamAssassin. Pour cela, on insère les éléments suivant juste avant la ligne OPTIONS :
SAHOME="/var/log/spamd/"
- Puis on remplace :
OPTIONS="--create-prefs --max-children 5 --helper-home-dir"
- Par :
OPTIONS="--create-prefs --max-children 5 --helper-home-dir --username spamd -H ${SAHOME} -s ${SAHOME}spamd.log"
Création de l'utilisateur spamd
- SpamAssassin s'exécute avec les droits et permissions de l'utilisateur spamd. Cependant, cette utilisateur n'est pas crée à l'installation du programme. Il va donc falloir le créer :
|
|
Configuration de SpamAssassin
- Le configuration de SpamAssassin se trouve dans le fichier /etc/spamassassin/local.cf. On va y dé-commenter les lignes suivantes :
rewrite_header Subject *****SPAM***** report_safe 1 required_score 5.0 use_bayes 1 bayes_auto_learn 1 bayes_ignore_header X-Spam-Status
- Une fois le fichier de configuration renseigné, on peut démarrer SpamAssassin :
|
|
ClamAV
- On procède à la mise à jour des signatures de ClamAV :
|
|
- Lancement de ClamAV :
|
|
Altermime
- Le module optionnel Altermime peut fonctionner avec Amavis. Pour utiliser Amavis avec Altermime, suivre l'installation ICI.
Amavis
Les lignes de configuration personnalisées seront définis dans le fichier /etc/amavis/conf.d/50-user sauf cas contraire précisé. les lignes de configuration décrites dans ce fichier outrepassent celles éventuellement présentes dans les autres fichiers de configuration.
De cette manière, il se plus facile de réviser la configuration de Amavis ou de la restaurer en cas de mise à jour ou de récupération. |
Permissions d'Amavis sur ClamAV
- Pour que Amavis puisse avoir accès aux dossiers et fichiers de ClamAV, on ajoute l'utilisateur amavis au groupe clamav :
|
|
Détection de l'anti-Virus
- On vérifie que l'anti-virus /etc/amavis/conf.d/15-av_scanners a bien été détecté par Amavis. Si c'est bien le cas, les lignes suivantes sont décommentées :
['ClamAV-clamd', \&ask_daemon, ["CONTSCAN {}\n", "/var/run/clamav/clamd.ctl"], qr/\bOK$/m, qr/\bFOUND$/m, qr/^.*?: (?!Infected Archive)(.*) FOUND$/m ],
Activation de l'analyse
- Pour que Amavis consulte ClamAV et SpamAssassin on ajoute les lignes suivantes dans le fichier /etc/amavis/conf.d/50-user :
# Activation de l'analyse anti-virus ######################################### @bypass_virus_checks_maps = ( \%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re); # Activation de l'analyse anti-spam ######################################### @bypass_spam_checks_maps = ( \%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);
- Il faut autoriser Postfix à communiquer avec le serveur Amavis via les règles inet_acl. Il faut aussi spécifié à Amavis avec quel serveur il doit communiquer pour le traitement des spams / virus.
$inet_socket_bind = undef; @inet_acl = qw( 127.0.0.1 [::1] 10.0.0.0/8 ); $notify_method = 'smtp:10.0.0.49:10025'; $forward_method = 'smtp:10.0.0.49:10025';
Scénarios de filtrage
- Toujours dans le même fichier et à la suite, on définit le scénario en cas de détection de messages inappropriés :
# Scénario de distribution des messages : # BOUNCE = Suppression mais envoi de l'échec de remise à l'émetteur # sauf pour les virus ou si le spam score > $sa_dsn_cutoff_level # REJECT = Suppression mais envoi d'une notification de rejet à l'émetteur # DISCARD = Suppression sans échec de remise à l'émetteur # PASS = Accepté ######################################### # Mail contenant un virus $final_virus_destiny = D_BOUNCE; $virus_quarantine_to = $QUARANTINEDIR; # Mise en quarantaine dans /var/lib/amavis/virusmails # sinon, pour désactiver undef. # Mail contenant une PJ interdite $final_banned_destiny = D_DISCARD; $banned_quarantine_to = undef; # Mail détecté comme SPAM $final_spam_destiny = D_PASS; $spam_quarantine_to = undef; # Mail avec en-têtes mals formées $final_bad_header_destiny = D_PASS; # $bad_header_quarantine_to = undef;
Définition du hostname
- Si le hostname détecté par Amavis n'est pas un nom de domaine pleinement qualifié (FQDN), le service ne démarrera pas. On va donc définir le hostname du serveur :
$myhostname = "mail.glx";
Analyse du spam
- Le service SpamAssassin attribue des scores aux messages qu'il scanne avant de les retourner à Amavis. En fonction des scores attribués Amavis influe sur l'acheminement du mail. Il est possible de régler les seuils de déclenchement de ses actions :
# Réglage du seuil de détection du Spam $sa_tag_level_deflt = 3.0; # Score à partir duquel les en-têtes X-Spam-Status, # X-Spam-Score et X-Spam-Level sont ajoutées $sa_tag2_level_deflt = 5.0; # Seuil à partir duquel le contenu de $sa_spam_subject_tag # est ajouté dans l'objet du mail $sa_kill_level_deflt = 5.0; # Déclenche la mise en quarantaine ainsi que l'action définit dans # la variable $final_spam_destiny $sa_spam_subject_tag = '*** SPAM *** ';
Application de la configuration
- Pour appliquer la configuration, on redémarre Amavis :
|
|
Conclusion
- Finalement, le fichier /etc/amavis/conf.d/50-user ressemble à ceci :
# Activation de l'analyse anti-virus ######################################### @bypass_virus_checks_maps = ( \%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re); # Activation de l'analyse anti-spam ######################################### @bypass_spam_checks_maps = ( \%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re); # Scénario de distribution des messages : # BOUNCE = Suppression mais envoi de l'échec de remise à l'émetteur # sauf pour les virus ou si le spam score > $sa_dsn_cutoff_level # REJECT = Suppression mais envoi d'une notification de rejet à l'émetteur # DISCARD = Suppression sans échec de remise à l'émetteur # PASS = Accepté ######################################### # Mail contenant un virus $final_virus_destiny = D_BOUNCE; $virus_quarantine_to = $QUARANTINEDIR; # Mise en quarantaine dans /var/lib/amavis/virusmails # sinon, pour désactiver undef. # Mail contenant une PJ interdite $final_banned_destiny = D_DISCARD; $banned_quarantine_to = undef; # Mail détecté comme SPAM $final_spam_destiny = D_PASS; $spam_quarantine_to = undef; # Mail avec en-têtes mals formées $final_bad_header_destiny = D_PASS; # $bad_header_quarantine_to = undef; # Réglage du seuil de détection du Spam $sa_tag_level_deflt = 3.0; # Score à partir duquel les en-têtes X-Spam-Status, # X-Spam-Score et X-Spam-Level sont ajoutées $sa_tag2_level_deflt = 5.0; # Seuil à partir duquel le contenu de $sa_spam_subject_tag # est ajouté dans l'objet du mail $sa_kill_level_deflt = 5.0; # Déclenche la mise en quarantaine ainsi que l'action définit dans # la variable $final_spam_destiny $sa_spam_subject_tag = '*** SPAM *** '; # Nom d'hôte de la machine $myhostname = "mail.glx";
Postfix
- Dans le fichier /etc/postfix/main.cf on insérera la ligne suivante qui permettra de transférer les mails reçus par Postfix à Amavis pour traitement :
content_filter = scan:127.0.0.1:10024
- A la fin du fichier /etc/postfix/master.cf, on insère les éléments suivants :
scan unix - - n - 16 smtp -o smtp_data_done_timeout=1200 -o disable_dns_lookups=yes
- Ainsi que ce bloc qui permettra de récupérer les mails traités par 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
- On redémarre Postfix pour appliquer les modifications :
|
|
Validation
Réception d'un message sain
- Pour effectue ce test, nous envoyons un message de la boîte mail nicolas.cachelou@ncad.me vers la boîte locale cacheln@mail.glx. Observons les logs dans /var/log/mail.log. Le courriel va transité par Postfix jusqu'à être placé en file d'attente (qmgr) tandis qu'un duplicata sera soumit pour analyse à Amavis.
1 Feb 10 17:19:19 alice postfix/smtpd[16906]: connect from geocoucou.net.ncad.fr[10.0.0.49] 1 Feb 10 17:19:19 alice postfix/smtpd[16906]: 8F856461BF9: client=geocoucou.net.ncad.fr[10.0.0.49] 2 Feb 10 17:19:19 alice postfix/cleanup[16911]: 8F856461BF9: message-id= <938e217153bc4d3d17b51efba0b6c485@ncad.me> 3 Feb 10 17:19:19 alice postfix/qmgr[15289]: 8F856461BF9: from=<nicolas.cachelou@ncad.me>, size=1608, nrcpt=1 (queue active) Feb 10 17:19:19 alice postfix/smtpd[16906]: disconnect from geocoucou.net.ncad.fr[10.0.0.49]
- Une fois le courriel analysé, il va être de nouveau envoyé à Postfix avec la mention Passed CLEAN. Le message va aussi contenir le numéro du premier message dans la file. Ce dernier va pouvoir être supprimé tandis que le message analysé va être délivré dans la boîte mail du destinataire.
2 Feb 10 17:19:52 alice postfix/smtpd[16935]: connect from localhost[127.0.0.1] 2 Feb 10 17:19:52 alice postfix/smtpd[16935]: 5B8EF461C21: client=localhost[127.0.0.1] 3 Feb 10 17:19:52 alice postfix/cleanup[16911]: 5B8EF461C21: message-id=<938e217153bc4d3d17b51efba0b6c485@ncad.me> 4 Feb 10 17:19:52 alice postfix/qmgr[15289]: 5B8EF461C21: from=<nicolas.cachelou@ncad.me>, size=2022, nrcpt=1 (queue active) 1 Feb 10 17:19:52 alice amavis[16881]: (16881-01) Passed CLEAN, [10.0.0.49] [109.190.9.125] <nicolas.cachelou@ncad.me> -> <cacheln@mail.glx>, Message-ID: <938e217153bc4d3d17b51efba0b6c485@ncad.me>, mail_id: hON7zClIHyZE, Hits: -0.998, size: 1608, queued_as: 5B8EF461C21, 32796 ms 6 Feb 10 17:19:52 alice postfix/smtp[16912]: 8F856461BF9: to=<cacheln@mail.glx>, relay=127.0.0.1[127.0.0.1]:10024, delay=33, delays=0.05/0.01/0.02/33, dsn=2.0.0, status=sent (250 2.0.0 from MTA([127.0.0.1]:10025): 250 2.0.0 Ok: queued as 5B8EF461C21) 6 Feb 10 17:19:52 alice postfix/qmgr[15289]: 8F856461BF9: removed 5 Feb 10 17:19:52 alice postfix/virtual[16937]: 5B8EF461C21: to=<cacheln@mail.glx>, relay=virtual, delay=0.11, delays=0.04/0.02/0/0.05, dsn=2.0.0, status=sent (delivered to maildir) 5 Feb 10 17:19:52 alice postfix/qmgr[15289]: 5B8EF461C21: removed
Réception d'un Spam
- Pour tester le comportement de SpamAssassin, on va s'envoyer un faux positif; c'est à dire un courriel censé être détecté comme spammeur. Pour cela, on s’envoie un courriel contenant la chaîne de caractères suivante :
XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X
- Le courriel va transité par Postfix jusqu'à être placé en file d'attente (qmgr) tandis qu'un duplicata sera soumit pour analyse à Amavis.
1 Feb 10 21:15:42 alice postfix/smtpd[17186]: connect from geocoucou.net.ncad.fr[10.0.0.49] 1 Feb 10 21:15:42 alice postfix/smtpd[17186]: 124A5461C16: client=geocoucou.net.ncad.fr[10.0.0.49] 2 Feb 10 21:15:42 alice postfix/cleanup[17191]: 124A5461C16: message-id= <07979d34eb1c3b64d76c303f6e82b714@ncad.me> 3 Feb 10 21:15:42 alice postfix/qmgr[15289]: 124A5461C16: from=<nicolas.cachelou@ncad.me>, size=1854, nrcpt=1 (queue active) Feb 10 21:15:42 alice postfix/smtpd[17186]: disconnect from geocoucou.net.ncad.fr[10.0.0.49]
- Une fois le courriel analysé, il va être de nouveau envoyé à Postfix avec la mention Passed SPAM. Le message va aussi contenir le numéro du premier message dans la file. Ce dernier va pouvoir être supprimé tandis que le message analysé va être délivré dans la boîte mail du destinataire.
2 Feb 10 21:15:45 alice postfix/smtpd[17198]: connect from localhost[127.0.0.1] 2 Feb 10 21:15:45 alice postfix/smtpd[17198]: A2561461C48: client=localhost[127.0.0.1] 3 Feb 10 21:15:45 alice postfix/cleanup[17191]: A2561461C48: message-id=<07979d34eb1c3b64d76c303f6e82b714@ncad.me> 4 Feb 10 21:15:45 alice postfix/qmgr[15289]: A2561461C48: from=<nicolas.cachelou@ncad.me>, size=2587, nrcpt=1 (queue active) 1 Feb 10 21:15:45 alice amavis[17121]: (17121-01) Passed SPAM, [10.0.0.49] [109.190.9.125] <nicolas.cachelou@ncad.me> -> <cacheln@mail.glx>, quarantine: 8/spam-8JozlTsx79Lv.gz, Message-ID: <07979d34eb1c3b64d76c303f6e82b714@ncad.me>, mail_id: 8JozlTsx79Lv, Hits: 999.002, size: 1854, queued_as: A2561461C48, 3587 ms 6 Feb 10 21:15:45 alice postfix/smtp[17192]: 124A5461C16: to=<cacheln@mail.glx>, relay=127.0.0.1[127.0.0.1]:10024, delay=3.7, delays=0.05/0.01/0.01/3.6, dsn=2.0.0, status=sent (250 2.0.0 from MTA([127.0.0.1]:10025): 250 2.0.0 Ok: queued as A2561461C48) 6 Feb 10 21:15:45 alice postfix/qmgr[15289]: 124A5461C16: removed 5 Feb 10 21:15:45 alice postfix/virtual[17200]: A2561461C48: to=<cacheln@mail.glx>, relay=virtual, delay=0.13, delays=0.04/0.03/0/0.06, dsn=2.0.0, status=sent (delivered to maildir) 5 Feb 10 21:15:45 alice postfix/qmgr[15289]: A2561461C48: removed
Une copie du mail a été placée en quarantaine dans le répertoire /var/lib/amavis/virusmail/8/. |
Réception d'un virus
- Pour vérifier le comportement de Amavis on va envoyer un courriel contenant la signature d'un virus qui déclenche un faux-positif. Pour cela, avec notre courriel on y attachera un fichier texte en pièce jointe. Dans ce fichier texte nous renseigneront la ligne suivante :
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
- Nous effectuons le test de réception toujours sur la boîte cacheln@mail.glx. Observons maintenant les logs relevés dans /var/log/mail.log. Le message transite jusqu'au gestionnaire de file qmgr où il y stationnera. Une copie du message est transmise au serveur amavis pour être analysée.
1 Feb 10 20:18:31 alice postfix/smtpd[17029]: connect from geocoucou.net.ncad.fr[10.0.0.49] 1 Feb 10 20:18:31 alice postfix/smtpd[17029]: C0970461C16: client=geocoucou.net.ncad.fr[10.0.0.49] 2 Feb 10 20:18:31 alice postfix/cleanup[17034]: C0970461C16: message-id= <9093941fa27ce9148dda2acebf0f21bd@ncad.me> 3 Feb 10 20:18:31 alice postfix/qmgr[15289]: C0970461C16: from=<nicolas.cachelou@ncad.me>, size=1990, nrcpt=1 (queue active) Feb 10 20:18:31 alice postfix/smtpd[17029]: disconnect from geocoucou.net.ncad.fr[10.0.0.49] 4 Feb 10 20:18:32 alice amavis[16882]: (16882-01) Blocked INFECTED (Eicar-Test-Signature), [10.0.0.49] [109.190.9.125] <nicolas.cachelou@ncad.me> -> <cacheln@mail.glx>, quarantine: I/virus-Ibga6nwCOMoV, Message-ID: <9093941fa27ce9148dda2acebf0f21bd@ncad.me>, mail_id: Ibga6nwCOMoV, Hits: -, size: 1990, 186 ms
- Amavis identifie un virus dans le courriel qu'il va taguer comme tel (INFECTED: Eicar-Test-Signature) et le placer en quarantaine dans le fichier /var/lib/amavis/I/virus-Ibga6nwCOMoV. De ce fait, Postfix va supprimer le message en file d'attente avec le code dns=2.7.0 (pas de remise d'échec pour l'émetteur) ainsi que le message scanné qui lui a été remis en début de file.
Feb 10 20:18:32 alice amavis[16882]: (16882-01) Blocked INFECTED (Eicar-Test-Signature), [10.0.0.49] [109.190.9.125] <nicolas.cachelou@ncad.me> -> <cacheln@mail.glx>, quarantine: I/virus-Ibga6nwCOMoV, Message-ID: <9093941fa27ce9148dda2acebf0f21bd@ncad.me>, mail_id: Ibga6nwCOMoV, Hits: -, size: 1990, 186 ms Feb 10 20:18:32 alice postfix/smtp[17035]: C0970461C16: to=<cacheln@mail.glx>, relay=127.0.0.1[127.0.0.1]:10024, delay=0.26, delays=0.06/0.01/0.01/0.18, dsn=2.7.0, status=sent (250 2.7.0 Ok, discarded, id=16882-01 - INFECTED: Eicar-Test-Signature) Feb 10 20:18:32 alice postfix/qmgr[15289]: C0970461C16: removed
Fonctions & Comportements
Listage
- Amavis intègre un système de listage des adresses émetteur sous forme de tableau. Ce système fonctionne par l'affectation de points si la condition est remplie. Si la condition est remplis et qu'elle est associée à un crédit de points on place en liste noire cette condition. Si au contraire, la condition est remplis mais qu'elle est associée à un débit de points on place en liste blanche cette condition.
- La condition définie plus haut peut être soit une adresse mail, un nom de domaine voir une regexp. Voici la configuration par défaut de Amavis :
@score_sender_maps = ({ '.' => [ new_RE( [qr'^(bulkmail|offers|cheapbenefits|earnmoney|foryou)@'i => 6.0], [qr'^(greatcasino|investments|lose_weight_today|market\.alert)@'i=> 6.0], [qr'^(money2you|MyGreenCard|new\.tld\.registry|opt-out|opt-in)@'i=> 6.0], [qr'^(optin|saveonlsmoking2002k|specialoffer|specialoffers)@'i => 6.0], [qr'^(stockalert|stopsnoring|wantsome|workathome|yesitsfree)@'i => 6.0], [qr'^(your_friend|greatoffers)@'i => 6.0], [qr'^(inkjetplanet|marketopt|MakeMoney)\d*@'i => 6.0], ), ], });
- C'est dans le tableau @score_sender_maps que sont définis les listes. Nous allons copier cette configuration dans le fichier /etc/amavis/conf.d/50-user afin de pouvoir la personnaliser.
Listes noires
- Pour mettre en liste noire un émetteur, il va falloir augmenter le score attribué à tous ses mails pour le considérer comme indésirable. En fonction du score globale, l'acheminement pourra en être altéré en fonction du Scénario de filtrage et de l'Analyse du spam. Dans notre cas, un score supérieure à 5 considère le message comme indésirable.
- Nous allons définir en liste noire l'émetteur nicolas.cachelou@ncad.me. Cette règle s'appliquera aux messages à destination de la boîte cacheln@mail.glx uniquement. Pour cela, nous allons adapter le tableau @score_sender_maps comme ceci :
@score_sender_maps = ({ 'cacheln@mail.glx' => [{'nicolas.cachelou@ncad.me' => 6}], '.' => [ new_RE( [qr'^(bulkmail|offers|cheapbenefits|earnmoney|foryou)@'i => 6.0], [qr'^(greatcasino|investments|lose_weight_today|market\.alert)@'i=> 6.0], [qr'^(money2you|MyGreenCard|new\.tld\.registry|opt-out|opt-in)@'i=> 6.0], [qr'^(optin|saveonlsmoking2002k|specialoffer|specialoffers)@'i => 6.0], [qr'^(stockalert|stopsnoring|wantsome|workathome|yesitsfree)@'i => 6.0], [qr'^(your_friend|greatoffers)@'i => 6.0], [qr'^(inkjetplanet|marketopt|MakeMoney)\d*@'i => 6.0], ), ], });
- On redémarre Amavis pour appliquer les paramètres.
|
|
Listes blanches
- Pour mettre en liste blanche un émetteur, il va falloir diminuer le score attribué à tous ses mails pour le considérer comme propre même si il est considéré comme indésirable par SpamAssassin. Le score maximum pouvant être atteint par un message considéré comme du spam est d'environ 999.
- Nous allons définir en liste blanche l'émetteur nicolas.cachelou@ncad.me. Cette règle s'appliquera aux messages à destination de la boîte cacheln@mail.glx uniquement. Pour cela, nous allons adapter le tableau @score_sender_maps comme ceci :
@score_sender_maps = ({ 'cacheln@mail.glx' => [{'nicolas.cachelou@ncad.me' => -999}], '.' => [ new_RE( [qr'^(bulkmail|offers|cheapbenefits|earnmoney|foryou)@'i => 6.0], [qr'^(greatcasino|investments|lose_weight_today|market\.alert)@'i=> 6.0], [qr'^(money2you|MyGreenCard|new\.tld\.registry|opt-out|opt-in)@'i=> 6.0], [qr'^(optin|saveonlsmoking2002k|specialoffer|specialoffers)@'i => 6.0], [qr'^(stockalert|stopsnoring|wantsome|workathome|yesitsfree)@'i => 6.0], [qr'^(your_friend|greatoffers)@'i => 6.0], [qr'^(inkjetplanet|marketopt|MakeMoney)\d*@'i => 6.0], ), ], });
- On redémarre Amavis pour appliquer les paramètres.
Notification rejet virus
- On peut informer le destinataire qu'un courriel lui étant destiné a été supprimé car il contenait un virus. Pour cela, on va activer le paramètre $warnvirusrecip. On édite le fichier /etc/amavis/conf.d/50-user et on y insère la ligne suivante :
$warnvirusrecip = 1;
- On redémarre Amavis pour appliquer les paramètres.
|
|
- Voici un exemple type de message remis au destinataire lorsqu'un mail contient un virus :
VIRUS ALERT Our content checker found virus: Eicar-Test-Signature in an email to you from: nicolas.cachelou@ncad.me Content type: Virus Our internal reference code for your message is 02732-01/0azzGAoaMogj First upstream SMTP client IP address: [10.0.0.49] According to a 'Received:' trace, the message originated at: [109.190.9.125], webmail.ncad.me ro-010.net.ncad.fr [109.190.9.125] Return-Path: <nicolas.cachelou@ncad.me> From: nicolas.cachelou@ncad.me Message-ID: <d76a8884ccca63795164198923bd602d@ncad.me> User-Agent: Roundcube Webmail/RCMAIL_VERSION Subject: Fwd: test virus The message has been quarantined as: 0azzGAoaMogj Please contact your system administrator for details.
Notification rejet pièce jointe
- On peut informer le destinataire qu'un courriel lui étant destiné a été supprimé car il contenait une pièce jointe bannie. Pour cela, on va activer le paramètre $warnbannedrecip. On édite le fichier /etc/amavis/conf.d/50-user et on y insère la ligne suivante :
$warnbannedrecip = 1;
- On redémarre Amavis pour appliquer les paramètres.
|
|
- Voici un exemple type de message remis au destinataire lorsqu'un mail contient une pièce jointe interdite :
BANNED CONTENTS ALERT Our content checker found banned name: text/plain,.txt,test.exe in an email to you from: nicolas.cachelou@ncad.me Content type: Banned Our internal reference code for your message is 03572-01/vTYqW8A49XZN First upstream SMTP client IP address: [10.0.0.49] According to a 'Received:' trace, the message originated at: [109.190.9.125], webmail.ncad.me ro-010.net.ncad.fr [109.190.9.125] Return-Path: <nicolas.cachelou@ncad.me> From: nicolas.cachelou@ncad.me Message-ID: <094c4f0a8ef29924ed05abd60d9aa73c@ncad.me> User-Agent: Roundcube Webmail/RCMAIL_VERSION Subject: Application The message has been quarantined as: vTYqW8A49XZN Please contact your system administrator for details.
Notification en-têtes invalides
- On peut informer le destinataire qu'un courriel lui étant destiné a été supprimé car les en-têtes n'étaient pas valides. Pour cela, on va activer le paramètre $warnbadhrecip. On édite le fichier /etc/amavis/conf.d/50-user et on y insère la ligne suivante :
$warnbadhrecip = 1;
- On redémarre Amavis pour appliquer les paramètres.
|
|
Annexes
Fichier /etc/amavis/conf.d/50-user
# Activation de l'analyse anti-virus ######################################### @bypass_virus_checks_maps = ( \%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re); # Activation de l'analyse anti-spam ######################################### @bypass_spam_checks_maps = ( \%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re); # Scénario de distribution des messages : # BOUNCE = Suppression mais envoi de l'échec de remise à l'émetteur # sauf pour les virus ou si le spam score > $sa_dsn_cutoff_level # REJECT = Suppression mais envoi d'une notification de rejet à l'émetteur # DISCARD = Suppression sans échec de remise à l'émetteur # PASS = Accepté ######################################### # Mail contenant un virus $final_virus_destiny = D_BOUNCE; $virus_quarantine_to = $QUARANTINEDIR; # Mise en quarantaine dans /var/lib/amavis/virusmails # sinon, pour désactiver undef. $warnvirusrecip = 1; # Notification de rejet virus # Mail contenant une PJ interdite $final_banned_destiny = D_DISCARD; $banned_quarantine_to = undef; # Pas de quarantaine $warnbannedrecip = 1; # Notification rejet PJ # Mail détecté comme SPAM $final_spam_destiny = D_PASS; $spam_quarantine_to = undef; # Pas de quarantaine # Mail avec en-têtes mals formées $final_bad_header_destiny = D_PASS; $bad_header_quarantine_to = undef; # Pas de quarantaine $warnbadhrecip = 0; # Notification rejet en-têtes # Réglage du seuil de détection du Spam $sa_tag_level_deflt = 3.0; # Score à partir duquel les en-têtes X-Spam-Status, # X-Spam-Score et X-Spam-Level sont ajoutées $sa_tag2_level_deflt = 5.0; # Seuil à partir duquel le contenu de $sa_spam_subject_tag # est ajouté dans l'objet du mail $sa_kill_level_deflt = 5.0; # Déclenche la mise en quarantaine ainsi que l'action définit dans # la variable $final_spam_destiny $sa_spam_subject_tag = '*** SPAM *** '; # Nom d'hôte de la machine $myhostname = "mail.glx"; # Listes blanches / noires ######################################### @score_sender_maps = ({ #'user@domain.tld' => [{'adresse@blacklister.tld' => 6}], #'user@domain.tld' => [{'adresse@whitelister.tld' => -999}], '.' => [ new_RE( [qr'^(bulkmail|offers|cheapbenefits|earnmoney|foryou)@'i => 6.0], [qr'^(greatcasino|investments|lose_weight_today|market\.alert)@'i=> 6.0], [qr'^(money2you|MyGreenCard|new\.tld\.registry|opt-out|opt-in)@'i=> 6.0], [qr'^(optin|saveonlsmoking2002k|specialoffer|specialoffers)@'i => 6.0], [qr'^(stockalert|stopsnoring|wantsome|workathome|yesitsfree)@'i => 6.0], [qr'^(your_friend|greatoffers)@'i => 6.0], [qr'^(inkjetplanet|marketopt|MakeMoney)\d*@'i => 6.0], ), ], });