Configuration Serveur · 9 min read · Jan 12, 2026
Utilisateurs et domaines virtuels avec Postfix, Courier, MySQL et SquirrelMail (Debian Squeeze) - Page 3
9 Installer amavisd-new, SpamAssassin et ClamAV
Pour installer amavisd-new, spamassassin et clamav, exécutez la commande suivante :
apt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 libnet-ph-perl libnet-snpp-perl libnet-telnet-perl nomarch lzop paxEnsuite, nous devons configurer amavisd-new. La configuration est divisée en plusieurs fichiers qui se trouvent dans le répertoire /etc/amavis/conf.d. Jetez un œil à chacun d’eux pour vous familiariser avec la configuration. La plupart des paramètres sont corrects, cependant, nous devons modifier trois fichiers :
Tout d’abord, nous devons activer ClamAV et SpamAssassin dans /etc/amavis/conf.d/15-content_filter_mode en décommentant les lignes @bypass_virus_checks_maps et @bypass_spam_checks_maps :
vi /etc/amavis/conf.d/15-content_filter_modeLe fichier devrait ressembler à ceci :
| use strict; # Vous pouvez modifier ce fichier pour réactiver la vérification des SPAM via spamassassin # et pour réactiver la vérification antivirus. # # Mode de vérification antivirus par défaut # Veuillez noter que la vérification antivirus est DÉSACTIVÉE par # défaut. # Si vous souhaitez l'activer, veuillez décommenter les lignes suivantes : @bypass_virus_checks_maps = ( \%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re); # # Mode de vérification SPAM par défaut # Veuillez noter que la vérification anti-spam est DÉSACTIVÉE par # défaut. # Si vous souhaitez l'activer, veuillez décommenter les lignes suivantes : @bypass_spam_checks_maps = ( \%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re); 1; # assurez un retour défini |
Ensuite, vous devriez jeter un œil aux paramètres de spam et aux actions pour les e-mails de spam/virus dans /etc/amavis/conf.d/20-debian_defaults. 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 :
vi /etc/amavis/conf.d/20-debian_defaults| [...] $QUARANTINEDIR = "$MYHOME/virusmails"; $quarantine_subdir_levels = 1; # activer le hachage du répertoire de quarantaine $log_recip_templ = undef; # désactiver les entrées de journal de niveau-0 par destinataire $DO_SYSLOG = 1; # journaliser via syslogd (préféré) $syslog_ident = 'amavis'; # balise d'identification syslog, préfixée à tous les messages $syslog_facility = 'mail'; $syslog_priority = 'debug'; # passez à info pour supprimer la sortie de débogage, etc $enable_db = 1; # activer l'utilisation de BerkeleyDB/libdb (SNMP et nanny) $enable_global_cache = 1; # activer l'utilisation du cache basé sur libdb si $enable_db=1 $inet_socket_port = 10024; # socket d'écoute par défaut $sa_spam_subject_tag = '*SPAM* '; $sa_tag_level_deflt = 2.0; # ajouter des en-têtes d'information sur le spam si à ce niveau ou au-dessus $sa_tag2_level_deflt = 6.31; # ajouter des en-têtes 'spam détecté' à ce niveau $sa_kill_level_deflt = 6.31; # déclenche des actions d'évasion de spam $sa_dsn_cutoff_level = 10; # niveau de spam au-delà duquel un DSN n'est pas envoyé [...] $final_virus_destiny = D_DISCARD; # (données non perdues, voir quarantaine de virus) $final_banned_destiny = D_BOUNCE; # D_REJECT lorsque MTA frontal $final_spam_destiny = D_BOUNCE; $final_bad_header_destiny = D_PASS; # Prone aux faux positifs (pour le spam) [...] |
Enfin, éditez /etc/amavis/conf.d/50-user et ajoutez la ligne $pax=’pax’; au milieu :
vi /etc/amavis/conf.d/50-user| use strict; # # Placez vos directives de configuration ici. Elles remplaceront celles dans # les fichiers précédents. # # Voir /usr/share/doc/amavisd-new/ pour la documentation et des exemples des # directives que vous pouvez utiliser dans ce fichier # $pax='pax'; #------------ Ne modifiez rien en dessous de cette ligne ------------- 1; # assurez un retour défini |
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
/etc/init.d/clamav-freshclam restartMaintenant, 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 restartMaintenant, exécutez
netstat -tapet vous devriez voir Postfix (master) à l’écoute sur le port 25 (smtp) et 10025, et amavisd-new sur le port 10024 :
root@server1:/etc/courier# netstat -tap
Connexions Internet actives (serveurs et établis)
Proto Recv-Q Send-Q Adresse locale Adresse étrangère État PID/nom du programme
tcp 0 0 *:sunrpc *:* LISTEN 605/portmap
tcp 0 0 *:ssh *:* LISTEN 1110/sshd
tcp 0 0 *:55384 *:* LISTEN 617/rpc.statd
tcp 0 0 *:smtp *:* LISTEN 23615/master
tcp 0 0 localhost.localdo:10024 *:* LISTEN 22454/amavisd (mast
tcp 0 0 localhost.localdo:10025 *:* LISTEN 23615/master
tcp 0 0 localhost.localdo:mysql *:* LISTEN 3838/mysqld
tcp 0 52 server1.example.com:ssh 192.168.0.199:3809 ÉTABLI 1136/0
tcp6 0 0 [::]:pop3 [::]:* LISTEN 19519/couriertcpd
tcp6 0 0 [::]:imap2 [::]:* LISTEN 19476/couriertcpd
tcp6 0 0 [::]:www [::]:* LISTEN 4429/apache2
tcp6 0 0 [::]:ssh [::]:* LISTEN 1110/sshd
tcp6 0 0 [::]:imaps [::]:* LISTEN 19503/couriertcpd
tcp6 0 0 [::]:pop3s [::]:* LISTEN 19536/couriertcpd
root@server1:/etc/courier# 10 Installer Razor, Pyzor et DCC et configurer SpamAssassin
Razor, Pyzor et DCC sont des filtres anti-spam qui utilisent un réseau de filtrage collaboratif. Pour installer Razor et Pyzor, exécutez
apt-get install razor pyzorDCC n’est pas disponible dans les dépôts Debian Squeeze, donc nous l’installons comme suit :
cd /tmp
wget http://www.dcc-servers.net/dcc/source/dcc-dccproc.tar.Z
tar xzvf dcc-dccproc.tar.Z
cd dcc-dccproc-1.3.138
./configure --with-uid=amavis
make
make install
chown -R amavis:amavis /var/dcc
ln -s /var/dcc/libexec/dccifd /usr/local/bin/dccifdMaintenant, 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/local/bin/dccproc #pyzor use_pyzor 1 pyzor_path /usr/bin/pyzor #razor use_razor2 1 razor_config /etc/razor/razor-agent.conf #bayes use_bayes 1 use_bayes_rules 1 bayes_auto_learn 1 |
Ensuite, nous devons activer le plugin DCC dans SpamAssassin. Ouvrez /etc/spamassassin/v310.pre et décommentez la ligne loadplugin Mail::SpamAssassin::Plugin::DCC :
vi /etc/spamassassin/v310.pre| [...] # DCC - effectuer des vérifications de messages DCC. # # DCC est désactivé ici car il n'est pas open source. Voir la DCC # licence pour plus de détails. # loadplugin Mail::SpamAssassin::Plugin::DCC [...] |
Vous pouvez vérifier votre configuration SpamAssassin en exécutant :
spamassassin --lintCela ne devrait pas afficher d’erreurs.
Redémarrez amavisd-new ensuite :
/etc/init.d/amavis restartMaintenant, nous mettons à jour nos ensembles de règles SpamAssassin comme suit :
sa-update --no-gpg(Ensuite, nous allons créer un travail cron. Par défaut, la commande crontab -e lance l’éditeur nano sur Debian Squeeze. Si vous êtes habitué à vi, vous voudrez peut-être changer cela :
update-alternatives --config editorSélectionnez votre éditeur préféré :
root@server1:/tmp/dcc-dccproc-1.3.138# update-alternatives –config editor
Il y a 3 choix pour l’éditeur alternatif (fournissant /usr/bin/editor).
Sélection Chemin Priorité Statut
- 0 /bin/nano 40 mode auto
1 /bin/nano 40 mode manuel
2 /usr/bin/vim.nox 40 mode manuel
3 /usr/bin/vim.tiny 10 mode manuel
Appuyez sur entrée pour conserver le choix actuel[*], ou tapez le numéro de sélection : <– 2
update-alternatives: utilisant /usr/bin/vim.nox pour fournir /usr/bin/editor (éditeur) en mode manuel.
root@server1:/tmp/dcc-dccproc-1.3.138#
)
Nous créons un travail cron afin que les ensembles de règles soient mis à jour régulièrement. Exécutez
crontab -epour ouvrir l’éditeur de travail cron. Créez le travail cron suivant :
| 23 4 */2 * * /usr/bin/sa-update --no-gpg &> /dev/null |
11 Notifications de dépassement de quota
Si vous souhaitez recevoir des notifications concernant tous les comptes de messagerie qui dépassent le quota, créez le fichier /usr/local/sbin/quota_notify :
cd /usr/local/sbin/
vi quota_notify| #!/usr/bin/perl -w # Auteur <[email protected]> # # Ce script suppose que virtual_mailbox_base est défini # dans le fichier main.cf de postfix. Ce répertoire est supposé contenir # des répertoires qui contiennent eux-mêmes les maildirs de vos utilisateurs virtuels. # Par exemple : # # -----------/ # | # | # home/vmail/domains/ # | | # | | # example.com/ foo.com/ # | # | # ----------------- # | | | # | | | # user1/ user2/ user3/ # | # | # maildirsize # use strict; my $POSTFIX_CF = "/etc/postfix/main.cf"; my $MAILPROG = "/usr/sbin/sendmail -t"; my $WARNPERCENT = 80; my @POSTMASTERS = ('[email protected]'); my $CONAME = 'Ma Société'; my $COADDR = '[email protected]'; my $SUADDR = '[email protected]'; my $MAIL_REPORT = 1; my $MAIL_WARNING = 1; #get virtual mailbox base from postfix config open(PCF, "< $POSTFIX_CF") or die $!; my $mboxBase; while ( |
Assurez-vous d’ajuster les variables en haut (en particulier l’adresse e-mail [email protected]).
Nous devons rendre le fichier exécutable :
chmod 755 quota_notifyExécutez
crontab -epour créer un travail cron pour ce script :
| 0 0 * * * /usr/local/sbin/quota_notify &> /dev/null |
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.