Table des matières
Introduction
Amavis est utilisé comme relais pour le filtrage viral et anti-spam par un serveur de courrier.
Il simplifie et optimise le traitement des messages à analyser.
Cette documentation est basé sur Amavisd-new-20030616-p7 que vous trouverez à l'adresse suivante : http://www.ijs.si/software/amavisd
Je n'ai utilisé Amavis qu'avec Postfix 2.x, SpamAssassin 2.5 et > , Clamav, Sophie. Certains commentaires et syntaxe sont donc propres à mon expérience dans ce contexte.
Configuration
Introduction :
Le fichier amavisd.conf ne doit pas être accessible en écriture pour d'autres utilisateurs que root
Paramètres dans les modèles :
%f : Adresse email de l'administrateur telle que définie dans les paramètres du fichier amavisd.conf
%T : Liste des destinataires du champs 'To:' (sur plusieurs lignes)
%C : Liste des destinataires du champs 'Cc:' (sur plusieurs lignes)
%B : Liste des destinataires du champs 'Bcc:' (sur plusieurs lignes)
%h : Nom complet du serveur tel que renvoyé dans la commande "hostname"
%n : ID du message tel qu'il est visible dans les logs d'amavis
%b : ??? message digest of mail body (MD5, hex)
%d : Date au format de la RFC 2822
%m : Champs 'Message-ID' du message d'origine
%j : Champs 'Subject' du message d'origine
%t : Première ligne de champs 'Received'
%H : Liste de toutes les entêtes (sauf 'Return-Path:' ou 'Delivered-To:')
%s : Adresse originale de l'expéditeur prise dans le champs 'From' de l'enveloppe
%l : ??? (letter ell) true if sender belongs to local_domains, undef otherwise
%o : ??? Même chose que %s pour les virus
%S : ??? address that will get sender notification;
%R : Liste des destinataires originaux pris dans les champs 'To' de l'enveloppe
%D : Liste des destinataires à qui le message à bien été envoyé
%N : Liste des destinataires qui n'ont pas reçus le message
%i : ID du fichier en quarantaine
%q : Liste des boites aux lettres de quarantaine
%v : ??? output of the (last) virus checking program
%V : Liste des noms de virus trouvés dans le message
%F : Liste des noms de fichiers interdits trouvés dans le message
%W : Liste des moteurs de détection virales qui ont détectés un virus
%A : Rapport de SpamAssassin
%c : Nombre de points que SpamAssassin a attribué au message
%x : ??? Evalue la valeur d'un hash
%#x : Evalue un nombre
Modèle de notification de Spam pour les administrateurs :
[root@linux /]$ vi /var/amavis/notify_spam_admin.txt
Date: %d
From: %f
Subject: SPAM FROM <%o> - \[%c\]
To: [? %#T |undisclosed-recipients: ;|[<%T>|, ]]
[? %#C |#|Cc: [<%C>|, ]]
[? %#B |#|Bcc: [<%B>|, ]]
Message-ID: <SA%n@%h>
---------------------------------------------------------------------
Hit : %c
From : %o
Subject : %j
------------------------- Destinataires -----------------------------
%N
---------------------------------------------------------------------
# Chemin vers le fichier en quarantaine
%q
[%A
]\
------------------------- BEGIN HEADERS -----------------------------
Return-Path: %s
[%H
]\
-------------------------- END HEADERS ------------------------------
Quelques informations sur la configuration :
Ajout systématique d'entêtes X-Spam-xxx dans les messages légitimes et les spam :
Vous devez remplir les conditions suivantes :
Variables d'environnement influant sur le fonctionnement d'Amavis :
Si les variables d'environnement de la session dans laquelle tourne amavis, ne peuvent être forcé, quelqu'en soit la raison, vous avez la possibilité de définir ces variables dans le fichier de configuration amavisd.conf
Exemple avec la variable de LANG qui devrait être à "en_US" pour le bon fonctionnement de SpamAssassin :
# Dans le fichier amavisd.conf :
$ENV(LANG} = "en_US";
Scripts
Introduction :
Ces scripts peuvent toujours êtres améliorés mais en l'état il devrait, je l'espère, pouvoir vous rendre quelques services.
Purge des fichiers temporaires :
# Suppression des fichiers temporaires générés par Amavis :
find /var/amavis/tmp -type d -name 'amavis-20??????T*' -prune -mtime +1 -exec rm {} \;
# Remarque :
# -mtime +1 = fichier de plus de 24 heures
# /var/amavis/tmp = correspond à la valeur que vous aurez utilisé dans $TEMPBASE
Extraction de la liste des expéditeurs de virus :
Attention : La durée de l'exécution du script dépendra du nombre de virus en quarantaine. C'est la raison pour laquelle j'exporte le résultat afin d'effectuer les opérations de classement à partir d'un fichier de résultat.
#!/bin/sh
find /var/virusmail/ -name "virus*" -exec grep '^From' {} \; > /tmp/virus-sender
echo -e `cat /tmp/virus-sender | sort | uniq -c | sort -k1,1 -n -r |`
Remarque : Vous pouvez utiliser -mtime -1 pour les virus des dernières 24 heures
Le script renverra une liste trié des plus gros expéditeurs de virus. Voir l'exemple suivant :
13 From: "Microsoft"
2 From: mswsgulf@gmx.at
2 From: arlandabilcenter@swipnet.se
.....
Vous pouvez utilisez un " | head -20" pour obtenir un TOP 20 des expéditeurs
Remarque : N'oubliez pas que les adresses d'expéditeurs sont en général fausses ou utilisés dans le consentement de leur propriétaire. Alors soyez cool avec les mesures de représsions.
Paramètres de configuration
Les paramètres et leurs valeurs sont conformes aux règles syntaxiques Perl 5
- Une valeur "Vrai/True" doit être représenté par la valeur : 1
- Une valeur "Fausse/False" peut être représenté par les valeurs suivantes : 0, undef, ''
- Les valeurs numériques ne doivent pas êtres encadrées par des simples ou double quote
- Le contenu d'une valeur textuelle encadré par des simple quote, n'est pas évalué contrairement au double quote
- Les types de données se reconnaissent par le premier caractère : $, %, @
Classement par catégories :
Classement alphabétique :
$MYHOME
| Défaut |
/var/amavis |
| Syntaxe |
Chemin complet vers un répertoire unix |
| Description |
|
Répertoire de base d'Amavis. En général le même répertoire que celui du "HOME DIRECTORY" rattaché au compte de l'utilisateur exécutant le serveur Amavis.
|
$mydomain
| Défaut |
example.com |
| Syntaxe |
Nom de domaine internet |
| Description |
|
Ce paramètre n'est pas utilisé par le serveur Amavisd. Il sert à remplir d'autres variables facultatives du fichier de configuration.
|
$daemon_user
| Défaut |
vscan |
| Syntaxe | |
| Description |
|
Compte utilisateur Unix, sous lequel sera exécuté le daemon Amavis.
|
$daemon_group
| Défaut |
sweep |
| Syntaxe | |
| Description |
|
Compte groupe Unix, sous lequel sera exécuté Amavis.
|
$TEMPBASE
| Défaut |
$MYHOME |
| Syntaxe | |
| Description |
|
Répertoire temporaire utilisé pour décompresser les fichiers avant l'analyse par les produits tiers.
|
$helpers_home
| Défaut |
$MYHOME |
| Syntaxe | |
| Description |
|
Répertoire de base pour les produits tiers comme SpamAssassin, Razor, DCC.
|
$daemon_chroot_dir
| Défaut |
Aucune
|
| Syntaxe | |
| Description |
|
Répertoire de base dans le cas ou Amavis serait "chrooté".
|
| Remarques |
|
$pid_file
| Défaut |
$MYHOME/amavisd.pid
|
| Syntaxe | |
| Description |
|
Chemin du fichier contenant le numéro de processus.
|
| Remarques |
|
$lock_file
| Défaut |
$MYHOME/amavisd.lock
|
| Syntaxe | |
| Description |
|
Fichier de vérrouillage du processus.
|
| Remarques |
|
$ENV{TMPDIR}
| Défaut |
$TEMPBASE
|
| Syntaxe | |
| Description |
|
Re-définition d'une variable d'environnement existante ou non.
|
| Remarques |
|
$forward_method
| Défaut |
smtp:127.0.0.1:10025
|
| Syntaxe |
bsmtp:$MYHOME/out-%i-%n.bsmtp
|
| Description |
|
Méthode pour transmettre en sortie les messages après traitement par amavis.
|
| Remarques |
|
$notify_method
| Défaut |
$forward_method
|
| Syntaxe |
bsmtp:$MYHOME/out-%i-%n.bsmtp
|
| Description |
|
Méthode pour transmettre en sortie les notifications après traitement par amavis quand un virus ou un spam est détecté.
|
| Remarques |
|
$max_servers
| Défaut |
2
|
| Syntaxe | |
| Description |
|
Nombre maximum de tâches serveur. Doit correspondre au nombre de processus inscrit dans le fichier master.cf de Postfix.
|
| Remarques |
|
$max_requests
| Défaut |
10
|
| Syntaxe | |
| Description |
|
Nombre maximum de requettes par processus serveur. Voir $max_servers.
|
| Remarques |
|
$child_timeout
| Défaut |
5*60
|
| Syntaxe | |
| Description |
|
Time out sur les connections SMTP rattachées aux processus enfants de "max_server". A VOIR!!!
|
| Remarques |
|
@bypass_virus_checks_acl
| Défaut |
qw( . )
|
| Syntaxe |
Expression régulière pour alimenter un tableau Perl 5.
|
| Description |
|
Avec comme paramètre "qw( . )", le controle anti-viral sera totalement désactivé dans Amavis.
|
| Remarques |
|
Il doit être possible de ne désactiver le controle que pour certaines conditions (domaine, expéditeur, destinataires, etc..) mais il est préférable dans ce
cas d'utiliser les paramètres réservés à cet effet.
|
@bypass_spam_checks_acl
| Défaut |
qw( . )
|
| Syntaxe |
Expression régulière pour alimenter un tableau Perl 5.
|
| Description |
|
Avec comme paramètre "qw( . )", le controle anti-spam sera totalement désactivé dans Amavis.
|
| Remarques |
|
Il doit être possible de ne désactiver le controle que pour certaines conditions (domaine, expéditeur, destinataires, etc..) mais il est préférable dans ce
cas d'utiliser les paramètres réservés à cet effet.
|
@local_domains_acl
| Défaut |
( ".$mydomain" )
|
| Syntaxe |
qw()
qw( .example.com )
qw( .example.com !host.sub.example.net .sub.example.net )
( ".$mydomain", '.example.com', 'sub.example.net' )
read_hash(\%local_domains, '/var/amavis/local_domains')
$local_domains_re = new_RE( qr'[@.]example\.com$'i )
|
| Description |
|
Liste de controle d'accès pour les domaines "local". A VOIR!!!
|
| Remarques |
|
$relayhost_is_client
| Défaut |
false
|
| Syntaxe | |
| Description |
|
A VOIR!!!
|
| Remarques |
|
$insert_received_line
| Défaut |
true
|
| Syntaxe | |
| Description |
|
Si ce paramètre est activé, Amavis insèrera une entête "Received" à chaque message traité.
|
| Remarques |
|
$unix_socketname
| Défaut |
undef
|
| Syntaxe |
$MYHOME/amavisd.sock
|
| Description |
|
Chemin d'un socket ouvert par Amavis pour permettre à des applications clientes d'accéder à Amavis.
|
| Remarques |
|
Pour Amavis-milter (SendMail) seulement.
|
$gets_addr_in_quoted_form
| Défaut |
1
|
| Syntaxe | |
| Description |
|
Si activé : "Bob \"Funny\" Dude"@example.com
Si désactivé : Bob "Funny" Dude@example.com
|
| Remarques |
|
$inet_socket_port
| Défaut |
undef
|
| Syntaxe |
10024
[10024, 10026, 10028]
|
| Description |
|
Ports sur lesquel Amavis restera à l'écoute pour recevoir des messages à traiter.
|
| Remarques |
|
Il est possible d'ouvrir plusieurs ports, mais je n'en voit pas l'utilité pour le moment.
|
$inet_socket_bind
| Défaut |
127.0.0.1
|
| Syntaxe |
undef
|
| Description |
|
Rattachement du socket d'écoute SMTP à une interface réseau (adresse IP).
|
| Remarques |
|
Par défaut, l'adresse IP est la "127.0.0.1", ce qui veut dire qu'il n'est pas possible à Postfix
ou un autre MTA, d'utiliser Amavis sur une machine différente. Dans ce cas, les deux produits
doivent se trouver sur la même machine.
|
@inet_acl
| Défaut |
qw( 127.0.0.1 )
|
| Syntaxe |
qw(127/8 10.1.0.1 10.1.0.2)
qw( 127/8 10/8 172.16/12 192.168/16 )
qw( !192.168.1.12 172.16.3.3 !172.16.3/255.255.255.0 127.0.0.1 10/8 172.16/12 192.168/16 )
qw( 127/8 !172.16.3.0 !172.16.3.127 172.16.3.0/25 !172.16.3.128 !172.16.3.255 172.16.3.128/25 )
|
| Description |
|
Si l'interface réseau de la tâche d'écoute SMTP est différente de "127.0.0.1", ce paramètre permet
de controler les machines autorisés à se connecter.
|
| Remarques |
|
$DO_SYSLOG
| Défaut |
0
|
| Syntaxe | |
| Description |
|
Active ou désactive l'utilisation de Syslog pour les logs d'amavis.
|
| Remarques |
|
$SYSLOG_LEVEL
| Défaut |
mail.info
|
| Syntaxe |
N'importe quel canal Syslog valide.
|
| Description |
|
Canal syslog utilisé si Syslog est activé.
|
| Remarques |
|
$LOGFILE
| Défaut |
Aucune
|
| Syntaxe |
$MYHOME/amavis.log
|
| Description |
|
Fichier de log au cas ou Syslog ne serait pas utilisé.
|
| Remarques |
|
Il faut que l'utilisateur exécutant le processus ait accès en écriture dans le répertoire de stockage
de ce fichier.
|
$log_level
| Défaut |
0
|
| Syntaxe |
# 0: startup/exit/failure messages, viruses detected
# 1: args passed from client, some more interesting messages
# 2: virus scanner output, timing
# 3: server, client
# 4: decompose parts
# 5: more debug details
|
| Description |
|
Niveau de détail des logs.
|
| Remarques |
|
$log_templ
| Défaut |
'[? %#V |[? %#F |[?%#D|Not-Delivered|Passed]|BANNED name/type (%F)]|INFECTED (%V)], <%o> -> [<%R>|,][? %i ||, quarantine %i], Message-ID: %m, Hits: %c';
|
| Syntaxe | |
| Description |
|
Modèle de logs.
|
| Remarques |
|
Voir si utilisé avec Syslog ou seulement en log direct.
|
$hdr_encoding
| Défaut |
iso-8859-1
|
| Syntaxe | |
| Description |
|
Code ISO pour l'encodage des "Header".
|
| Remarques |
|
Voir si il s'agit de la lecture des messages ou l'écriture des notifications.
|
$bdy_encoding
| Défaut |
iso-8859-1
|
| Syntaxe |
Code ISO pour l'encodage des "Body".
|
| Description |
|
| Remarques |
|
Voir si il s'agit de la lecture des messages ou l'écriture des notifications.
|
$notify_sender_templ
| Défaut |
read_text('/var/amavis/notify_sender.txt');
|
| Syntaxe | |
| Description |
|
Modèle de notification pour les ???.
|
| Remarques |
|
A VOIR!!!
|
$notify_virus_sender_templ
| Défaut |
read_text('/var/amavis/notify_virus_sender.txt');
|
| Syntaxe | |
| Description |
|
Modèle de notification pour les expéditeurs de Virus.
|
| Remarques |
|
$notify_virus_admin_templ
| Défaut |
read_text('/var/amavis/notify_virus_admin.txt');
|
| Syntaxe | |
| Description |
|
Modèle de notification de Virus pour les administrateurs.
|
| Remarques |
|
$notify_virus_recips_templ
| Défaut |
read_text('/var/amavis/notify_virus_recips.txt');
|
| Syntaxe | |
| Description |
|
Modèle de notification pour les destinataires de virus.
|
| Remarques |
|
$notify_spam_sender_templ
| Défaut |
read_text('/var/amavis/notify_spam_sender.txt');
|
| Syntaxe | |
| Description |
|
Modèle de notification pour les expéditeurs de SPAM.
|
| Remarques |
|
$notify_spam_admin_templ
| Défaut |
read_text('/var/amavis/notify_spam_admin.txt');
|
| Syntaxe |
|
| Description |
|
Modèle de notification de SPAM pour les Administrateurs.
|
| Remarques |
|
$final_virus_destiny
| Défaut |
D_BOUNCE
|
| Syntaxe |
D_PASS : Le message sera distribué aux destinataires
D_BOUNCE : Le message sera stoppé et une notification AMAVIS sera envoyé à l'expéditeur et au destinataire
D_DISCARD : Le message contenant le virus sera stoppé et aucune notification ne sera envoyé
D_REJECT : Le message contenant le virus sera stoppé et une notification SMTP (non-delivery) sera envoyé à l'expéditeur
|
| Description |
|
Politique de traitement d'un message infecté par un virus.
|
| Remarques |
|
L'envoi réèl d'une notification dépend également des paramètres $warnvirussender et $warnvirusrecip
|
$final_banned_destiny
| Défaut |
D_BOUNCE |
| Syntaxe |
D_PASS : Le message sera distribué aux destinataires
D_BOUNCE : Le message sera stoppé et une notification AMAVIS sera envoyé à l'expéditeur et au destinataire
D_DISCARD : Le message sera stoppé et aucune notification ne sera envoyé
D_REJECT : Le message sera stoppé et une notification SMTP (non-delivery) sera envoyé à l'expéditeur
|
| Description |
|
Politique de traitement d'un message contenant une des extensions ou types mime interdit par le paramètre $banned_filename_re
|
| Remarques |
|
L'envoi réèl d'une notification dépend également des paramètres $warnbannedsender et $warnbannedrecip
|
$final_spam_destiny
| Défaut |
D_REJECT
|
| Syntaxe |
D_PASS : Le message sera distribué aux destinataires
D_BOUNCE : Le message sera stoppé et une notification AMAVIS sera envoyé à l'expéditeur
D_DISCARD : Le message sera stoppé et aucune notification ne sera envoyé
D_REJECT : Le message sera stoppé et une notification SMTP (non-delivery) sera envoyé à l'expéditeur
|
| Description |
|
Politique de traitement d'un message considéré comme un Spam
|
| Remarques |
|
L'envoi réèl d'une notification dépend également du paramètre $warnspamsender
Pour laisser systématiquement les Spam en marquant les messages pour que votre client de messagerie puisse effectuer un filtrage, utilisez D_PASS et renseignez les paramètres $sa_spam_subject_tag et $sa_spam_modifies_subj
Remarque : Dans tous les cas, aucune notification n'est envoyé au destinataire.
|
$final_bad_header_destiny
| Défaut |
D_PASS
|
| Syntaxe |
D_PASS : Le message sera distribué aux destinataires
D_BOUNCE : Le message sera stoppé et une notification AMAVIS sera envoyé à l'expéditeur
D_DISCARD : Le message sera stoppé et aucune notification ne sera envoyé
D_REJECT : Le message sera stoppé et une notification SMTP (non-delivery) sera envoyé à l'expéditeur
|
| Description |
|
Politique de traitement des entêtes invalides (selon la RFC 2822).
|
| Remarques |
|
L'envoi réèl d'une notification dépend également du paramètre $warnbadhsender
|
$warnvirussender
| Défaut |
undef
|
| Syntaxe |
0, 1, undef
|
| Description |
|
Active ou désactive l'envoi d'une notification à l'expéditeur d'un virus.
|
$warnspamsender
| Défaut |
undef
|
| Syntaxe |
0, 1, undef
|
| Description |
|
Active ou désactive l'envoi d'une notification à l'expéditeur d'un Spam.
|
$warnbannedsender
| Défaut |
undef
|
| Syntaxe |
0, 1, undef
|
| Description |
|
Active ou désactive l'envoi d'une notification à l'expéditeur d'un fichier ou type mime interdit.
|
$warnbadhsender
| Défaut |
undef
|
| Syntaxe |
0, 1, undef
|
| Description |
|
Active ou désactive l'envoi d'une notification à l'expéditeur d'un message contenant des entêtes invalides.
|
$warnvirusrecip
| Défaut |
undef
|
| Syntaxe | |
| Description |
|
Active ou désactive l'envoi d'une notification au destinataire d'un virus.
|
$warnbannedrecip
| Défaut |
undef
|
| Syntaxe | |
| Description |
|
Active ou désactive l'envoi d'une notification au destinataire d'un fichier ou type mime interdit.
|
$warn_offsite
| Défaut |
undef
|
| Syntaxe |
0, 1, undef |
| Description |
|
A VOIR!!!
|
$viruses_that_fake_sender_re
| Défaut |
new_RE(
qr'nimda|hybris|klez|bugbear|yaha|braid|sobig|fizzer|palyh|peido|holar'i,
qr'tanatos|lentin|bridex|mimail|trojan\.dropper|dumaru|parite|gibe|swen'i,
[qr'^(EICAR\.COM|Joke\.|Junk\.)'i => 0],
[qr'^(WM97|OF97|W95/CIH-|JS/Fortnight)'i => 0],
);
|
| Syntaxe |
|
| Description |
|
N'enverra aucune notification à l'expéditeur ou au destinataire quand le nom du virus détecté correspond à une des valeurs de ce paramètre.
|
| Remarques |
|
Le nom du virus dépend de la valeur renvoyé par les anti-virus qui malheureusement ont leur propre politique de nommage. Il faudra peut être ajusté ces valeurs en fonctions de votre anti-virus.
|
$virus_admin
| Défaut |
"virusalert\@$mydomain"
|
| Syntaxe |
Adresse email valide ou undef
|
| Description |
|
Adresse email pour notifier les administrateurs de la détection d'un virus.
|
| Remarques |
|
Il est possible de faire varier l'adresse email du destinataire des notifications en fonction de l'email expéditeur du message original
Cette possibilité permet surtout de notifier une adresse d'administration du domaine incriminé.
$virus_admin = {
'.example.com' => 'abuse@example.com',
'.' => 'virusalert@domain.com',
};
# Description :
# Envoi d'une notification à abuse@example.com pour les virus provenant du domaine example.com
'.example.com' => 'abuse@example.com'
# Envoi d'une notification à virusalert@domain.com pour tous les autres.
'.' => 'virusalert@domain.com'
|
$spam_admin
| Défaut |
undef |
| Syntaxe |
Adresse email valide ou undef |
| Description |
|
Adresse email pour notifier les administrateurs de la détection d'un Spam.
|
| Remarques |
|
Il est possible de faire varier l'adresse email du destinataire des notifications en fonction de l'email expéditeur du message original
Cette possibilité permet surtout de notifier une adresse d'administration du domaine incriminé.
$spam_admin = {
'.example.com' => 'abuse@example.com',
'.' => 'spamalert@domain.com',
};
# Description :
# Envoi d'une notification à abuse@example.com pour les spam provenant du domaine example.com
'.example.com' => 'abuse@example.com'
# Envoi d'une notification à spamalert@domain.com pour tous les autres.
'.' => 'spamalert@domain.com'
|
$mailfrom_notify_admin
| Défaut |
"virusalert\@$mydomain" |
| Syntaxe |
Adresse email valide ou undef |
| Description |
|
Adresse email de l'expéditeur des notifications administrateurs.
|
| Remarques |
|
$mailfrom_notify_admin correspond à l'adresse expéditeur de l'enveloppe du message.
|
$mailfrom_notify_recip
| Défaut |
"virusalert\@$mydomain"
|
| Syntaxe |
Adresse email valide ou undef |
| Description |
|
Adresse email de l'expéditeur des notifications de destinataire.
|
| Remarques |
|
$mailfrom_notify_recip correspond à l'adresse expéditeur de l'enveloppe du message.
|
$mailfrom_notify_spamadmin
| Défaut |
"spam.police\@$mydomain"
|
| Syntaxe |
Adresse email valide ou undef |
| Description |
|
Adresse email de l'expéditeur des notifications administrateurs pour les Spam.
|
| Remarques |
|
$mailfrom_notify_spamadmin correspond à l'adresse expéditeur de l'enveloppe du message.
|
$hdrfrom_notify_sender
| Défaut |
"amavisd-new <postmaster\@$myhostname>" |
| Syntaxe |
Adresse email valide utilisable dans un "reply" comme le précise la rfc1894 |
| Description |
|
Adresse email de l'expéditeur des notifications.
|
| Remarques |
|
$hdrfrom_notify_sender renseignera le champs From du message de notification
|
$hdrfrom_notify_admin
| Défaut |
$mailfrom_notify_admin |
| Syntaxe |
Adresse email valide utilisable dans un "reply" comme le précise la rfc1894 |
| Description |
|
Adresse email de l'expéditeur des notifications d'administrateurs.
|
| Remarques |
|
$hdrfrom_notify_admin renseignera le champs From du message de notification
|
$hdrfrom_notify_spamadmin
| Défaut |
$mailfrom_notify_spamadmin |
| Syntaxe |
Adresse email valide utilisable dans un "reply" comme le précise la rfc1894 |
| Description |
|
Adresse email de l'expéditeur des notifications d'administrateurs pour les Spam.
|
| Remarques |
|
$hdrfrom_notify_spamadmin renseignera le champs From du message de notification
|
$mailfrom_to_quarantine
| Défaut |
undef
|
| Syntaxe |
Adresse email valide ou undef (undef, laissera l'expéditeur orginal du message) |
| Description |
|
Quand des messages sont envoyés en quarantaine, ce paramètre permet de modifier le champs "From" de l'enveloppe afin d'éviter, je pense, que lors d'une manipulation après mise en quarantaine, une notification soit à nouveau envoyé à l'expéditeur d'origine.
|
$QUARANTINEDIR
| Défaut |
/var/virusmails
|
| Syntaxe |
Chemin unix valide avec les droits appropriés pour l'utilisateur executant amavis
undef pour désactiver la mise en quarantaine
Remarque : Il est possible de définir un chemin vers un fichier unique mais je n'ai pas testé cette possibilité.
|
| Description |
|
Répertoire de stockage des messages en quarantaine : Virus et Spam.
|
| Remarques |
|
Ce paramètre n'est utilisé que si xxx_quarantine method à une valeur 'local:xxx'
|
$virus_quarantine_method
| Défaut |
"local:virus-%i-%n";
|
| Syntaxe |
"local:virus-%i-%n";
"bsmtp:$QUARANTINEDIR/virus-%i-%n.bsmtp";
|
| Description |
|
Méthode de stockage et macro de définition du nom de fichier lors de la mise en quarantaine d'un virus
|
| Remarques |
|
La méthode de mise en quarantaine dépend également du paramètre $virus_quarantine_to
|
$spam_quarantine_method
| Défaut |
"local:spam-%b-%i-%n";
|
| Syntaxe |
"local:spam-%b-%i-%n";
"bsmtp:$QUARANTINEDIR/spam-%b-%i-%n.bsmtp";
|
| Description |
|
Méthode de stockage et macro de définition du nom de fichier lors de la mise en quarantaine d'un spam.
|
| Remarques |
|
La méthode de mise en quarantaine dépend également du paramètre $spam_quarantine_to
|
$virus_quarantine_to
| Défaut |
'virus-quarantine'; |
| Syntaxe |
undef pour désactiver la mise en quarantaine des virus
Adresse email local se terminant par "@" pour utiliser le MTA qui se chargera de la livraison
Adresse email complète pour router le message vers une BAL centralisé sur un autre serveur ou Imap
Multiple destination en fonction du destinataire original du message
|
| Description |
|
Destination des messages infectés par un virus et mis en quarantaine.
Exemple de nom de fichier avec la valeur par défaut : /var/virusmail/virus-20040228-111022-30239-02
|
| Remarques |
# Exemple de destination multiple en fonction du destinataire original du message :
$virus_quarantine_to = new_RE(
[qr'^user@example\.com$'i => 'infected@'],
[qr'^(.*)@example\.com$'i => 'virus-${1}@example.com'],
[qr'^(.*)(@[^@])?$'i => 'virus-${1}${2}'],
[qr/.*/ => 'virus-quarantine']
);
# Description :
# Pour le destinataire user@example.com, envera le message à l'adresse locale infected@
[qr'^user@example\.com$'i => 'infected@']
# Pour tous les destinataires de @example.com, envera le message à l'adresse virus-XXX@example.com
[qr'^(.*)@example\.com$'i => 'virus-${1}@example.com'],
# Pour tous les domaines dont l'adresse est valide, générera une adresse en utilisant
# l'expéditeur et le domaine d'origine
[qr'^(.*)(@[^@])?$'i => 'virus-${1}${2}'],
# Pour tous les autres, utilisera le stockage local direct sans passer par le MTA
[qr/.*/ => 'virus-quarantine']
# Remarque : La première occurence trouvé interrompt le traitement
|
$spam_quarantine_to
| Défaut |
'spam-quarantine'; |
| Syntaxe |
undef pour désactiver la mise en quarantaine des spam
Adresse email local se terminant par "@" pour utiliser le MTA qui se chargera de la livraison
Adresse email complète pour router le message vers une BAL centralisé sur un autre serveur ou Imap
Multiple destination en fonction du destinataire original du message
|
| Description |
|
Destination des messages considérés comme Spam et mis en quarantaine.
Exemple de nom de fichier avec la valeur par défaut : spam-02512982a0be565e6399870cbefd5fc0-20040215-002535-25512-08.gz
|
| Remarques |
# Exemple de destination multiple en fonction du destinataire original du message :
$spam_quarantine_to = new_RE(
[qr'^(.*)@example\.com$'i => 'spam-${1}@example.com'],
[qr/.*/ => 'spam-quarantine']
);
# Description :
# Pour tous les destinataires de @example.com, envera le message à l'adresse spam-XXX@example.com
[qr'^(.*)@example\.com$'i => 'spam-${1}@example.com']
# Pour tous les autres, utilisera le stockage local direct sans passer par le MTA
[qr/.*/ => 'spam-quarantine']
# Remarque : La première occurence trouvé interrompt le traitement
|
$spam_quarantine_bysender_to
| Défaut |
undef |
| Syntaxe |
|
| Description |
|
Variante de $spam_quarantine_to, basé sur l'adresse de l'expéditeur.
|
| Remarques |
|
$X_HEADER_TAG
| Défaut |
X-Virus-Scanned
|
| Syntaxe |
undef
|
| Description |
|
Ajout d'une entête au message traité.
|
| Remarques |
|
$X_HEADER_LINE
| Défaut |
by amavisd-new at $mydomain
|
| Syntaxe |
undef
|
| Description |
|
Texte qui sera affiché comme valeur de l'entête paramétré dans $X_HEADER_TAG.
|
| Remarques |
|
$remove_existing_x_scanned_headers
| Défaut |
0
|
| Syntaxe | |
| Description |
|
Active ou désactive, la suppression d'entêtes Amavis/Virus existantes.
|
| Remarques |
|
$remove_existing_spam_headers
| Défaut |
1
|
| Syntaxe | |
| Description |
|
Active ou désactive, la suppression d'entêtes Amavis/SPAM existantes.
|
| Remarques |
|
$bypass_decode_parts
| Défaut |
0
|
| Syntaxe | |
| Description |
|
Active ou désactive le décodage Mime des messages multi-corps.
|
| Remarques |
|
Si ce paramètre est à 1, le décodage est confié à l'anti-virus dont ses capacités traitement
peuvent être limité. Il vaut donc mieux laissé faire Amavis.
|
$keep_decoded_original_re
| Défaut |
undef
|
| Syntaxe |
$keep_decoded_original_re = new_RE(
qr'^(ASCII(?! cpio)|text|uuencoded|xxencoded|binhex)'i,
);
|
| Description |
|
A VOIR!!!
|
| Remarques |
|
$banned_filename_re
| Défaut |
undef
|
| Syntaxe |
qr'\.[a-zA-Z][a-zA-Z0-9]{0,3}\.(vbs|pif|scr|bat|com|exe|dll)$'i,);
|
| Description |
|
Extension de fichiers qui seront interdites dans les messages reçus.
|
| Remarques |
|
$virus_lovers
| Défaut |
undef
|
| Syntaxe | |
| Description |
|
Liste d'exclusion de l'analyse anti-virus pour certains destinataires.
|
| Remarques |
|
Pratique pour garder une adresse à laquelle des utilisateurs pourraient poster des virus
que vous voulez analyser ou transmettre à un éditeur d'anti-virus.
|
@virus_lovers_acl
| Défaut |
undef
|
| Syntaxe | |
| Description |
|
| Remarques |
|
$bypass_virus_checks
| Défaut |
undef
|
| Syntaxe | |
| Description |
|
| Remarques |
|
@bypass_virus_checks_acl
| Défaut |
undef
|
| Syntaxe | |
| Description |
|
| Remarques |
|
$virus_lovers_re
| Défaut |
undef
|
| Syntaxe | |
| Description |
|
| Remarques |
|
$spam_lovers
| Défaut |
undef
|
| Syntaxe | |
| Description |
|
| Remarques |
|
@spam_lovers_acl
| Défaut |
undef
|
| Syntaxe | |
| Description |
|
| Remarques |
|
$spam_lovers_re
| Défaut |
undef
|
| Syntaxe | |
| Description |
|
| Remarques |
|
@lookup_sql_dsn
| Défaut |
undef
|
| Syntaxe | |
| Description |
|
| Remarques |
|
$sql_select_policy
| Défaut |
undef
|
| Syntaxe | |
| Description |
|
| Remarques |
|
$sql_select_white_black_list
| Défaut |
'SELECT wb FROM wblist,mailaddr'
|
| Syntaxe | |
| Description |
|
| Remarques |
|
$addr_extension_virus
| Défaut |
undef
|
| Syntaxe | |
| Description |
|
| Remarques |
|
$addr_extension_spam
| Défaut |
undef
|
| Syntaxe | |
| Description |
|
| Remarques |
|
$addr_extension_banned
| Défaut |
undef
|
| Syntaxe | |
| Description |
|
| Remarques |
|
$recipient_delimiter
| Défaut |
+
|
| Syntaxe | |
| Description |
|
| Remarques |
|
$replace_existing_extension
| Défaut |
0
|
| Syntaxe | |
| Description |
|
| Remarques |
|
$localpart_is_case_sensitive
| Défaut |
0
|
| Syntaxe | |
| Description |
|
| Remarques |
|
%whitelist_sender
| Défaut |
undef
|
| Syntaxe |
read_hash(\%whitelist_sender, '/var/amavis/whitelist_sender')
|
| Description |
|
| Remarques |
|
@whitelist_sender_acl
| Défaut |
undef
|
| Syntaxe | |
| Description |
|
| Remarques |
|
$whitelist_sender_re
| Défaut |
undef
|
| Syntaxe | |
| Description |
|
| Remarques |
|
%blacklist_sender
| Défaut |
undef
|
| Syntaxe | |
| Description |
|
| Remarques |
|
@blacklist_sender_acl
| Défaut |
undef
|
| Syntaxe | |
| Description |
|
| Remarques |
|
$blacklist_sender_re
| Défaut |
undef
|
| Syntaxe | |
| Description |
|
| Remarques |
|
map
| Défaut |
undef
|
| Syntaxe |
map { $whitelist_sender{lc($_)}=1 } (qw(
cert-advisory-owner@cert.org
owner-alert@iss.net
slashdot@slashdot.org
bugtraq@securityfocus.com
NTBUGTRAQ@LISTSERV.NTBUGTRAQ.COM
security-alerts@linuxsecurity.com
amavis-user-admin@lists.sourceforge.net
notification-return@lists.sophos.com
mailman-announce-admin@python.org
owner-postfix-users@postfix.org
owner-postfix-announce@postfix.org
owner-sendmail-announce@Lists.Sendmail.ORG
owner-technews@postel.ACM.ORG
lvs-users-admin@LinuxVirtualServer.org
ietf-123-owner@loki.ietf.org
cvs-commits-list-admin@gnome.org
rt-users-admin@lists.fsck.com
clp-request@comp.nus.edu.sg
surveys-errors@lists.nua.ie
emailNews@genomeweb.com
owner-textbreakingnews@CNNIMAIL12.CNN.COM
spamassassin-talk-admin@lists.sourceforge.net
yahoo-dev-null@yahoo-inc.com
returns.groups.yahoo.com
));
|
| Description |
|
| Remarques |
|
$per_recip_blacklist_sender_lookup_tables
| Défaut |
undef
|
| Syntaxe | |
| Description |
|
| Remarques |
|
$per_recip_whitelist_sender_lookup_tables
| Défaut |
undef
|
| Syntaxe | |
| Description |
|
| Remarques |
|
$smtpd_recipient_limit
| Défaut |
1000
|
| Syntaxe | |
| Description |
|
| Remarques |
|
$MAXLEVELS
| Défaut |
14
|
| Syntaxe |
Valeur numérique => zéro ou undef.
Mettre 0 (zéro) ou undef pour supprimer la limitation (dangereux)
|
| Description |
|
Nombre maximum d'archives imbriqués.
Exemple : un fichier zip, contenant un autre fichier zip qui contient à son tour un fichier zip...
|
| Remarques |
|
Imbriquer de multiples fichiers archives est une forme d'attaque possible en déni de service.
L'objectif est de laisser amavis boucler sur les multiples tâches de décompression pour chaque niveau.
|
$MAXFILES
| Défaut |
1500
|
| Syntaxe |
Valeur numérique => zéro ou undef.
Mettre 0 (zéro) ou undef pour supprimer la limitation (dangereux)
|
| Description |
| Nombre maximum de fichiers qui seront extrait d'une archive pour analyse |
| Remarques |
|
$MIN_EXPANSION_QUOTA
| Défaut |
undef
|
| Syntaxe |
100*1024
|
| Description |
|
| Remarques |
|
$MAX_EXPANSION_QUOTA
| Défaut |
undef
|
| Syntaxe |
300*1024*1024
|
| Description |
|
| Remarques |
|
$MIN_EXPANSION_FACTOR
| Défaut |
undef
|
| Syntaxe |
5
|
| Description |
|
| Remarques |
|
$MAX_EXPANSION_FACTOR
| Défaut |
undef
|
| Syntaxe |
500
|
| Description |
|
| Remarques |
|
$path
| Défaut |
/usr/local/sbin:/usr/local/bin:/usr/sbin:/sbin:/usr/bin:/bin
|
| Syntaxe | |
| Description |
|
| Remarques |
|
$file
| Défaut |
file
|
| Syntaxe | |
| Description |
|
| Remarques |
|
$gzip
| Défaut |
gzip
|
| Syntaxe | |
| Description |
|
| Remarques |
|
$bzip2
| Défaut |
bzip2
|
| Syntaxe | |
| Description |
|
| Remarques |
|
$lzop
| Défaut |
lzop
|
| Syntaxe | |
| Description |
|
| Remarques |
|
$uncompress
| Défaut |
['uncompress', 'gzip -d', 'zcat']
|
| Syntaxe | |
| Description |
|
| Remarques |
|
$unfreeze
| Défaut |
['unfreeze', 'freeze -d', 'melt', 'fcat']
|
| Syntaxe | |
| Description |
|
| Remarques |
|
$arc
| Défaut |
['nomarch', 'arc']
|
| Syntaxe | |
| Description |
|
| Remarques |
|
$unarj
| Défaut |
['arj', 'unarj']
|
| Syntaxe | |
| Description |
|
| Remarques |
|
$unrar
| Défaut |
['rar', 'unrar']
|
| Syntaxe | |
| Description |
|
| Remarques |
|
$zoo
| Défaut |
zoo
|
| Syntaxe | |
| Description |
|
| Remarques |
|
$lha
| Défaut |
lha
|
| Syntaxe | |
| Description |
|
| Remarques |
|
$cpio
| Défaut |
cpio
|
| Syntaxe | |
| Description |
|
| Remarques |
|
$sa_local_tests_only
| Défaut |
1
|
| Syntaxe |
0 (zéro) pour activer les tests utilisant le réseau et 1 pour les désactiver
|
| Description |
|
Outrepasse les paramètres de SpamAssassin pour activer/désactiver les phases d'analyses faisant appel au réseau comme Razor, DCC, DNS, etc..
|
$sa_auto_whitelist
| Défaut |
0
|
| Syntaxe |
0 (zéro) pour désactiver et 1 pour activer
|
| Description |
| Active / désactive la fonction de liste blanche automatique (AWL) de SpamAssassin |
$sa_mail_body_size_limit
| Défaut |
150*1024;
|
| Syntaxe |
Valeur numérique supérieur à zéro ou undef pour désactiver la limitation.
|
| Description |
|
Limitation de la taille du message que SpamAssassin acceptera d'analyser. Par défaut dans Amavis : 150Ko
|
| Remarques |
|
La documentation semble dire que moins de 1% des spam ont une taille supérieur à 64ko
Attention : Attention à bien surveiller les logs pour détecter un éventuel refus d'analyse de SpamAssasin qui voudra surement dire qu'un message dont la taille est supérieur à cette limite vient d'être soumis et refuser pour analyse.
|
$sa_tag_level_deflt
| Défaut |
3.0 |
| Syntaxe |
Valeur numérique positive ou négative
|
| Description |
| Nombre de point à partir duquel les entêtes "X-Spam-Status" et "X-Spam-Level" seront ajoutés au message par SpamAssassin |
| Remarques |
|
Ce paramètres est très important pour résoudre les problèmes de faux-négatifs.
Les entêtes seront ajoutés que le message soit un spam ou non à partir du moment que le nombre de point est atteind
Conseil : Mettez la valeur "-999" pour que les entêtes soit ajouté à tous les messages.
|
$sa_tag2_level_deflt
| Défaut |
6.3 |
| Syntaxe |
Valeur numérique en général supérieur à 0 (zéro) et surtout supérieur ou égale à $sa_tag_level_deflt
|
| Description |
|
Nombre de point à partir duquel l'entête "X-Spam-Flag: YES" sera ajouté par SpamAssassin et que le sujet du message sera modifié
Outrepasse le paramètre "required_hits" de SpamAssassin
|
$sa_kill_level_deflt
| Défaut |
$sa_tag2_level_deflt |
| Syntaxe |
Valeur numérique en général supérieur à 0 (zéro) et surtout supérieur ou égale à $sa_tag_level_deflt et $sa_tag2_level_deflt
|
| Description |
|
Nombre de point à partir duquel le traitement réservé au Spam sera appliqué (mise en quarantaine, etc...)
Outrepasse le paramètre "required_hits" de SpamAssassin
|
$sa_spam_subject_tag
| Défaut |
***SPAM***
|
| Syntaxe |
N'importe quel chaine de caractère valide dans une entête "Subject"
|
| Description |
|
Chaine de caractère qui sera ajouté avant le sujet original du message
Outrepasse le paramètre "subject_tag" de SpamAssassin
|
$sa_spam_modifies_subj
| Défaut |
1 |
| Syntaxe |
0 (zéro) pour ne pas modifier le sujet ou 1 pour le modifier |
| Description |
|
Active / Désactive la réécriture du sujet original du message
Outrepasse le paramètre "rewrite_subject" de SpamAssassin
|
| Remarques |
|
L'objectif de ce paramètre est de laisser passer les Spam en les marquants pour que le client de messagerie puisse définir un filtre automatique individuel (poubelle ou classement pour analyse manuel)
Ce paramètre ne fonctionnera que dans les conditions suivantes :
Info : Pour utiliser une réécriture conditionné par le destinataire utilisez la syntaxe suivante :
$sa_spam_modifies_subj = [qw( !user@example.com . )];
|
@av_scanners
| Défaut |
Liste trop longue pour l'inscrire ici |
| Syntaxe |
L'ajout d'un anti-virus suit la syntaxe suivante :
1. Nom de l'anti-virus. Ce nom sera utilisé dans les rapports et dans les logs
2. Nom du programme qui sera appellé par la fonction find_external_programs()
3. Paramètres à passer à la ligne de commande
4. Réponse fournie pas l'anti-virus quand aucun virus n'a été trouvé
5. Réponse fournie pas l'anti-virus quand un virus a été trouvé
6. Récupération du nom du ou des virus trouvés
7. Routine à exécuter avant le scan (optionnel)
8. Routine à exécuter après le scan (optionnel)
Exemple avec clamav en mode daemon :
['Clam Antivirus-clamd',
\&ask_daemon,
["CONTSCAN {}\n", '/var/amavis/clamd'],
qr/\bOK$/,
qr/\bFOUND$/,
qr/^.*?: (?!Infected Archive)(.*) FOUND$/
],
En général, il vous suffit de décommenter les lignes des anti-virus que vous utilisez
|
| Description |
|
Liste des anti-virus par défaut qui seront utilisés pour l'analyse virale
|
| Remarques |
|
Les anti-virus sont appellés dans l'ordre ou ils apparaissent. Si un virus est trouvé par l'un d'entre eux, les anti-virus suivant sont tous de même interrogés.
Au chargement, Amavis vérifie la disponibilité de chaque anti-virus (décommenté) mais n'utilise ensuite que ceux qu'il a véritablement trouvé sur la machine
|
@av_scanners_backup
| Défaut |
Liste trop longue pour l'inscrire ici |
| Syntaxe |
|
| Description |
| Liste d'anti-virus de secours |
| Remarques |
| Ces anti-virus sont appellés quand la liste @av_scanners est vide et dans d'autres conditions que je n'ai pas compris |
@debug_sender_acl
| Défaut |
undef |
| Syntaxe |
@debug_sender_acl = ( "test-sender\@$mydomain" );
@debug_sender_acl = qw( debug@example.com );
|
| Description |
|
Debuggage selectif sur des adresses d'expéditeurs spécifiques.
|
| Remarques |
| A priori, ce paramètre ne fonctionne que lorsqu'amavis est lancé en ligne de commande : amavisd debug |
$keep_decoded_original_re
| Défaut |
undef |
| Syntaxe |
$keep_decoded_original_re = new_RE( qr/.*/ );
|
| Description |
| A priori, empêche le remplacement du message original par sa version décodé (mime, extraction ...) |
| Remarques |
|
$sa_debug
| Défaut |
0
|
| Syntaxe | |
| Description |
| Active le debuggage de SpamAssassin lorsque amavis est lancé avec "amavisd debug" |
$enable_ldap
| Défaut |
|
| Syntaxe | |
| Description |
|
| Remarques |
|
$default_ldap
| Défaut | |
| Syntaxe |
$default_ldap = {
hostname => 'localhost', tls => 0,
base => 'ou=hosting,dc=example,dc=com', scope => 'sub',
query_filter => '(&(objectClass=amavisAccount)(mail=%m))'
};
hostname : The hostname of the LDAP server we connect to.
(Default = 'localhost')
port : The port where LDAP sends queries. (Default = 389)
timeout : Timeout (in sec) passed when connecting the remote
server. (Default = 120)
tls : Enable TLS/SSL if true. (Default = 0)
base : The DN that is the base object entry relative to
which the search is to be performed. (Default = undef)
scope : Scope can be 'base', 'one' or 'sub'. (Default = 'sub')
query_filter : The filter used to find the amavis account. The string
must contain a '%m' token that will be replaced by the
actual e-mail address.
(Default = '(&(objectClass=amavisAccount)(mail=%m))')
res_attr : (Default = undef)
res_filter : (Default = %r)
bind_dn : If binding is needed, this is where you specify the
DN to bind as. (Default = undef)
bind_password : Binding password. (Default = undef)
|
| Description |
|
| Remarques |
|
Remerciements
Liens