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