====== 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]]