Postfix Configuration · 5 min read · Jan 16, 2026

Intégration d'amavisd-new dans Postfix pour le filtrage de spam et de virus - Page 2

3 Debian Sarge

Pour les paquets volatils tels que ClamAV (il y a de nouvelles versions de ClamAV très souvent), il existe le dépôt Debian-volatile (pour Sarge et Woody uniquement au moment de la rédaction de cet article). Pour s’assurer que nous installons le dernier paquet ClamAV, nous éditons d’abord /etc/apt/sources.list et ajoutons la ligne suivante :

vi /etc/apt/sources.list

| [...] deb http://volatile.debian.net/debian-volatile sarge/volatile main contrib non-free |

Ensuite, nous mettons à jour notre base de données de paquets en exécutant :

apt-get update

Puis nous installons amavisd-new, SpamAssassin et ClamAV avec quelques autres programmes (principalement des programmes dont amavisd-new a besoin pour décompresser des archives, car les e-mails peuvent contenir des archives en tant que pièces jointes) :

apt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip unarj bzip2 unzoo libnet-ph-perl libnet-snpp-perl libnet-telnet-perl nomarch lzop

On vous posera quelques questions :

Méthode de mise à jour de la base de données des virus : <– daemon
Site miroir de la base de données locale : <– db.de.clamav.net (Allemagne ; sélectionnez le miroir le plus proche de vous)
Informations sur le proxy HTTP (laisser vide si aucun) : <– (vide)
Clamd doit-il être notifié après les mises à jour ? <– Oui

Ensuite, nous devons configurer amavisd-new en éditant /etc/amavis/amavisd.conf. C’est un fichier très long avec beaucoup de commentaires. La plupart des paramètres par défaut sont corrects, cependant veuillez vous assurer que les @bypass_virus_checks_acl et @bypass_spam_checks_acl sont commentés car sinon amavisd-new ne chargera pas le code anti-spam/-virus (dans ma copie, la ligne @bypass_spam_checks_acl était active donc j’ai dû la commenter) :

vi /etc/amavis/amavisd.conf

| [...] # @bypass_virus_checks_acl = qw( . ); # décommenter pour DÉSACTIVER le code anti-virus [...] # @bypass_spam_checks_acl = qw( . ); # Pas de dépendance par défaut sur spamassassin [...] |

Et ensuite, vous devriez jeter un œil aux paramètres de spam et aux actions pour les e-mails de spam/virus dans le même fichier. Il n’est pas nécessaire de changer quoi que ce soit si les paramètres par défaut vous conviennent. Le fichier contient de nombreuses explications donc il n’est pas nécessaire d’expliquer les paramètres ici :

| [...] $final_virus_destiny = D_DISCARD; # (par défaut D_BOUNCE) $final_banned_destiny = D_BOUNCE; # (par défaut D_BOUNCE) $final_spam_destiny = D_REJECT; # (par défaut D_REJECT) $final_bad_header_destiny = D_PASS; # (par défaut D_PASS), D_BOUNCE suggéré [...] $virus_admin = "postmaster\@$mydomain"; # en raison du défaut D_DISCARD [...] $QUARANTINEDIR = '/var/lib/amavis/virusmails'; #$virus_quarantine_method = "local:virus-%i-%n"; # par défaut #$spam_quarantine_method = "local:spam-%b-%i-%n"; # par défaut $virus_quarantine_to = 'virus-quarantine'; # quarantaine locale traditionnelle $spam_quarantine_to = 'spam-quarantine'; [...] $sa_local_tests_only = 1; # (par défaut : faux) #$sa_auto_whitelist = 1; # activer AWL (par défaut : faux) # Timeout pour SpamAssassin. Ceci est uniquement utilisé si spamassassin NE # le remplace PAS (ce qu'il fait souvent si sa_local_tests_only n'est pas vrai) $sa_timeout = 30; # timeout en secondes pour un appel à SpamAssassin # (le défaut est de 30 secondes, undef désactive) # AWL (liste blanche automatique), nécessite spamassassin 2.44 ou mieux # $sa_auto_whitelist = 1; # par défaut undef $sa_mail_body_size_limit = 150*1024; # ne perdez pas de temps sur SA si le mail est plus grand # (moins de 1% des spams sont > 64k) # par défaut : undef, pas de limitations # valeurs par défaut, peuvent être remplacées par des recherches plus spécifiques, par exemple SQL $sa_tag_level_deflt = 4.0; # ajouter des en-têtes d'information sur le spam si à, ou au-dessus de ce niveau $sa_tag2_level_deflt = 6.31; # ajouter des en-têtes 'spam détecté' à ce niveau $sa_kill_level_deflt = $sa_tag2_level_deflt; # déclenche des actions d'évasion de spam # à ou au-dessus de ce niveau : bounce/reject/drop, # quarantaine, et ajout d'extension d'adresse mail $sa_dsn_cutoff_level = 10; # niveau de spam au-delà duquel un DSN n'est pas envoyé, # transformant effectivement D_BOUNCE en D_DISCARD ; # undef désactive cette fonctionnalité et est un défaut ; $sa_spam_subject_tag = '*SPAM* '; # (par défaut : undef, désactivé) [...] |

Ensuite, exécutez ces commandes pour ajouter l’utilisateur clamav au groupe amavis et redémarrer amavisd-new et ClamAV :

adduser clamav amavis  
 /etc/init.d/amavis restart  
 /etc/init.d/clamav-daemon restart

Ensuite, nous devons éditer le fichier de configuration du démon Freshclam (c’est le démon qui récupère régulièrement et automatiquement les dernières signatures de virus depuis un miroir ClamAV) car il contient un petit bug. Ouvrez /etc/clamav/freshclam.conf et modifiez la ligne NotifyClamd comme indiqué ci-dessous :

vi /etc/clamav/freshclam.conf

| [...] NotifyClamd /etc/clamav/clamd.conf [...] |

Puis redémarrez Freshclam (assurez-vous qu’aucun autre processus Freshclam (peut-être d’une autre installation de ClamAV) ne fonctionne car sinon notre Freshclam échouera à démarrer) :

/etc/init.d/clamav-freshclam restart

Maintenant, nous devons configurer Postfix pour diriger les e-mails entrants à travers amavisd-new :

postconf -e 'content_filter = amavis:[127.0.0.1]:10024'  
 postconf -e 'receive_override_options = no_address_mappings'

Ensuite, ajoutez les lignes suivantes à /etc/postfix/master.cf :

vi /etc/postfix/master.cf

| [...] amavis unix - - - - 2 smtp -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes 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 receive_override_options=no_unknown_recipient_checks,no_header_body_checks -o smtpd_bind_address=127.0.0.1 |

Puis redémarrez Postfix :

/etc/init.d/postfix restart

Maintenant exécutez

netstat -tap

et vous devriez voir Postfix (master) à l’écoute sur le port 25 (smtp) et 10025, et amavisd-new sur le port 10024 :

server1:~# netstat -tap  
 Connexions Internet actives (serveurs et établies)  
 Proto Recv-Q Send-Q Adresse locale           Adresse étrangère         État       PID/Nom du programme  
 tcp        0      0 localhost.localdo:10024 *:*                     LISTEN     4369/amavisd (maste  
 tcp        0      0 localhost.localdo:10025 *:*                     LISTEN     4895/master  
 tcp        0      0 *:874                   *:*                     LISTEN     1964/rpc.statd  
 tcp        0      0 *:sunrpc                *:*                     LISTEN     1553/portmap  
 tcp        0      0 *:auth                  *:*                     LISTEN     1932/inetd  
 tcp        0      0 *:smtp                  *:*                     LISTEN     4895/master  
 tcp6       0      0 *:imaps                 *:*                     LISTEN     3177/couriertcpd  
 tcp6       0      0 *:pop3s                 *:*                     LISTEN     3094/couriertcpd  
 tcp6       0      0 *:pop3                  *:*                     LISTEN     3038/couriertcpd  
 tcp6       0      0 *:imap2                 *:*                     LISTEN     3129/couriertcpd  
 tcp6       0      0 *:ssh                   *:*                     LISTEN     1943/sshd  
 tcp6       0      0 *:smtp                  *:*                     LISTEN     4895/master  
 tcp6       0    148 localhost:ssh           localhost:4631          ESTABLISHED2052/0

Si vous le souhaitez, vous pouvez maintenant ajouter Razor, Pyzor et DCC à SpamAssassin pour améliorer ses performances de filtrage. Razor, Pyzor et DCC sont des filtres anti-spam qui utilisent un réseau de filtrage collaboratif. Pour les installer, exécutez

apt-get install razor pyzor dcc-client

Maintenant, nous devons dire à SpamAssassin d’utiliser ces trois programmes. Éditez /etc/spamassassin/local.cf et ajoutez les lignes suivantes :

vi /etc/spamassassin/local.cf

| [...] # dcc use_dcc 1 dcc_path /usr/bin/dccproc dcc_add_header 1 dcc_dccifd_path /usr/sbin/dccifd #pyzor use_pyzor 1 pyzor_path /usr/bin/pyzor pyzor_add_header 1 #razor use_razor2 1 razor_config /etc/razor/razor-agent.conf #bayes use_bayes 1 use_bayes_rules 1 bayes_auto_learn 1 |

Redémarrez amavisd-new ensuite :

/etc/init.d/amavis restart

C’est déjà tout. Maintenant, surveillez votre journal de mail (/var/log/mail.log) pour voir si amavisd-new fonctionne correctement. amavisd-new enregistrera chaque fois qu’il trouve un e-mail de spam ou de virus. Lorsque vous (re)démarrez amavisd-new, il devrait également enregistrer qu’il charge son code de filtrage de spam et de virus (sinon, vous avez probablement fait quelque chose de mal).

Pour voir en direct votre journal de mail, vous pouvez utiliser cette commande :

tail -f /var/log/mail.log

(Appuyez sur CTRL + c pour quitter le journal.)

4 Liens

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.