====== Exemple de fichier de configuration : 50-user ======
use strict;
#
# Place your configuration directives here. They will override those in
# earlier files.
#
# See /usr/share/doc/amavisd-new/ for documentation and examples of
# the directives you can use in this file
#
# GENERAL
$MYHOME = '/var/lib/amavis';
$mydomain = 'exemple.com';
$myhostname = 'exemple.com';
$max_servers = 4;
$max_requests = 20;
$child_timeout = 5*60;
read_hash(\%local_domains, '/etc/amavis/local_domains');
@mynetworks = qw( 127.0.0.0/8 );
@mynetworks_maps = (\@mynetworks);
# LOGGING AND DEBUGGING
$DO_SYSLOG = 1;
# MTA INTERFACE - INPUT
$inet_socket_port = 10024;
$inet_socket_bind = '127.0.0.1';
@inet_acl = qw(127.0.0.1 [::1]);
$insert_received_line = 0;
$unix_socketname = undef;
# MTA INTERFACE - OUTPUT
# MAIL FORWARDING
$forward_method = 'smtp:[127.0.0.1]:10025';
# QUARANTINE
$QUARANTINEDIR = "$MYHOME/virusmails";
$virus_quarantine_method = 'local:virus-%m';
$spam_quarantine_method = 'local:spam-%m';
$banned_files_quarantine_method = 'local:banned-%m';
$bad_header_quarantine_method = 'local:badh-%m';
$virus_quarantine_to = "virus\@$mydomain;
$banned_quarantine_to = undef;
$bad_header_quarantine_to = undef;
$spam_quarantine_to = "spam\@$mydomain";
# NOTIFICATIONS
$notify_method = $forward_method;
$mailfrom_notify_admin = "postmaster\@$mydomain";
$mailfrom_notify_recip = "postmaster\@$mydomain";
$mailfrom_notify_spamadmin = "postmaster\@$mydomain";
$warnvirussender = undef;
$warnvirusrecip = undef;
$virus_admin = undef;
$warnbannedsender = undef;
$warnbadhsender = undef;
$warnbannedrecip = undef;
$warnspamsender = undef;
$warn_offsite = 1;
# ADDING ADDRESS EXTENSIONS TO RECIPIENTS - 'plus addressing'
# MAIL DECODING
# BAD HEADER
$final_bad_header_destiny = D_PASS;
# ANTI-VIRUS AND INVALID/FORBIDDEN CONTENTS CONTROLS
@bypass_virus_checks_maps = (
\%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);
@bypass_virus_checks_acl = map ( {'!'.$_} keys(%local_domains));
push(@bypass_virus_checks_acl,'.');
$final_virus_destiny = D_DISCARD;
$first_infected_stops_scan = 1;
# BANNING
$final_banned_destiny = D_PASS;
# ANTI-SPAM CONTROLS
@bypass_spam_checks_maps = (
\%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);
@bypass_spam_checks_acl = map ( {'!'.$_} keys(%local_domains));
push(@bypass_spam_checks_acl,'.');
$final_spam_destiny = D_DISCARD;
$sa_local_tests_only = undef;
$sa_auto_whitelist = undef;
$sa_tag_level_deflt = -1000; # Ajout d'en-tetes decrivant l'etat "spam" du mail
$sa_tag2_level_deflt = 5; # Modification du sujet pour cette note
$sa_kill_level_deflt = 7; # Mise en quarantaine si > a cette note
$sa_dsn_cutoff_level = undef;
$sa_spam_subject_tag = '***SPAM*** ';
$sa_spam_modifies_subj = undef;
# Whitelist
@whitelist_sender_acl = qw( .blabla.fr );
# MAPPING A CONTENTS CATEGORY TO A SETTING CHOSEN
# POLICY BANKS
$policy_bank{'MYNETS'} = {
bypass_spam_checks_maps => [1],
bypass_banned_checks_maps => [1]
};
#------------ Do not modify anything below this line -------------
1; # insure a defined return
# vim: filetype=perl
Contenu du fichier ///etc/amavis/local_domains// :
exemple.com
exmeple.org
...
===== Signification D_PASS, D_REJECT, D_BOUNCE, D_DISCARD =====
* **D_PASS** :
* Le message sera distribué aux destinataires.
* A utiliser en général pour le marquage de spam.
* **D_BOUNCE** :
* Le message sera stoppé et une notification généré par AMAVIS sera envoyé.
* **D_DISCARD** :
* Le message sera stoppé de façon discrète et aucune notification ne sera envoyé.
* **D_REJECT** :
* Le message sera stoppé et une notification SMTP (non-delivery) sera envoyé.
====== Configurer l'utilisation de amavis par postfix ======
Editez le fichier ///etc/postfix/master.cf// :
* Modifier : smtp inet n - - - - smtpd
en :smtp inet n - - - - smtpd
-o content_filter=smtp-amavis:[127.0.0.1]:10024
* Ajouter : 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
smtp-amavis unix - - - - 4 smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes
====== Pyzor ======
pyzor discover
pyzor ping
//Remarques ://
* Firewalling : le port 24441 UDP doit être ouvert vers l'extérieur.
* Si le //discover// pause problème. Ouvrir le fichier //~/.pyzor/servers// et mettre dans le fichier :
public.pyzor.org:24441
====== Razor ======
su - amavis
razor-admin -discover
razor-admin -create
razor-admin -register -user postmaster@test.com
razor-admin -discover
//Remarque ://
* Firewalling : le port 2703 TCP doit être ouvert vers l'extérieur.
====== Installation des decoders ======
apt-get install arc arj bzip2 cabextract gzip lzop p7zip pax ripole rpm2cpio unrar-free zip zoo
====== Réinitialiser le filtrage bayésien ======
Il peut arriver après un certain temps que le filtrage bayésien d'Amavis (utilisant Spamassasin) devienne efficace qu'auparavant. Il peut alors être nécessaire de réinitialiser la base de filtrage. Pour cela :
su - amavis
sa-learn --clear
exit
service amavis restart
====== Mettre en place DKIM ======
Amavis peut s'occuper de la signature DKIM de vos mails sortant. Pour cela :
- Commencer par générer la clé qui sera utilisée : $ su - amavis
$ mkdir /var/lib/amavis/db/dkim
$ /usr/sbin/amavisd-new genrsa /var/lib/amavis/db/dkim/example.com.key.pem
Private RSA key successfully written to file "/var/lib/amavis/db/dkim/example.com.key.pem" (1024 bits, PEM format)
- Récupérer ensuite la clé publique à mettre en place au niveau de la zone DNS : $ su - amavis
$ /usr/sbin/amavisd-new show showkeys
; key#1, domain example.com, /var/lib/amavis/db/dkim/example.com.key.pem
main._domainkey.example.com. 3600 TXT (
"v=DKIM1; p="
"MIGfMA0GCSqGSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
"XXXXXXXXXXXXXXXXXXQAB")
- Ajouter cet enregistrement dans votre zone DNS, sans faire de reload pour le moment
- Il faut ensuite activer la signature des messages dans la configuration d'avamis. Pour cela dans le fichier ///etc/amavis/conf.d/50-user//, ajouter :
- En global : $enable_dkim_verification = 1;
dkim_key("example.com", "main", "/var/lib/amavis/db/dkim/example.com.key.pem");
@dkim_signature_options_bysender_maps = ( { "." => { ttl => 21*24*3600, c => "relaxed/simple" } } );
- Dans la //policy_bank// gérant les mails sortant : enable_dkim_signing => 1,
- Redémarrer Amavis pour prendre en compte la modification et faite le reload de votre zone DNS
- Vous pouvez vérifier que votre zone à bien été configuré : $ su - amavis
$ /usr/sbin/amavisd-new testkeys
TESTING#1: main._domainkey.example.com => pass
====== Références ======
* http://support.radicalspam.org/public/wiki/doc/amavis
* http://irp.nain-t.net/doku.php/200messagerie:020postfix2:060_amavis
* [[http://pyzor.sourceforge.net/|Site officiel du projet Pyzor]]
* [[http://razor.sourceforge.net/|Site officiel du projet Razor]]