Configuration Serveur · 8 min read · Jan 17, 2026
Utilisateurs et domaines virtuels avec Postfix, Courier, MySQL et SquirrelMail (Ubuntu 12.04 LTS) - 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, ajoutée à tous les messages $syslog_facility = 'mail'; $syslog_priority = 'debug'; # passer à 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 à, 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 = 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 des # 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-freshclam restart
/etc/init.d/clamav-daemon 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 |
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 établies)
Proto Recv-Q Send-Q Adresse locale Adresse étrangère État PID/nom du programme
tcp 0 0 localhost.localdo:10025 : LISTEN 25911/master
tcp 0 0 localhost.localdo:mysql : LISTEN 3895/mysqld
tcp 0 0 :http : LISTEN 4845/apache2
tcp 0 0 :ssh : LISTEN 649/sshd
tcp 0 0 :smtp : LISTEN 25911/master
tcp 0 0 localhost.localdo:10024 : LISTEN 24534/amavisd (mast
tcp 0 52 server1.example.com:ssh 192.168.0.199:4745 ÉTABLI 847/0
tcp6 0 0 [::]:pop3 [::]: LISTEN 20989/couriertcpd
tcp6 0 0 [::]:imap2 [::]: LISTEN 20921/couriertcpd
tcp6 0 0 [::]:ssh [::]: LISTEN 649/sshd
tcp6 0 0 [::]:smtp [::]: LISTEN 25911/master
tcp6 0 0 [::]:imaps [::]: LISTEN 20958/couriertcpd
tcp6 0 0 [::]:pop3s [::]:* LISTEN 21026/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 pyzor
DCC n'est pas disponible dans les dépôts Ubuntu 12.04, 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.142
./configure --with-uid=amavis
make
make install
chown -R amavis:amavis /var/dcc
ln -s /var/dcc/libexec/dccifd /usr/local/bin/dccifd
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/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 1Ensuite, 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 licence DCC # 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.
Maintenant, il y a un petit bug dans le script d’initialisation d’amavisd-new. Ouvrez /etc/init.d/amavis…
vi /etc/init.d/amavis… et commentez la ligne STOP=”–stop –quiet –pidfile $PIDFILE –name ${DAEMONNAME}” et ajoutez STOP=”–stop –quiet –pidfile $PIDFILE” à la place :
| [...] set -e START="--start --quiet --pidfile $PIDFILE --name ${DAEMONNAME} --startas ${DAEMON}" #STOP="--stop --quiet --pidfile $PIDFILE --name ${DAEMONNAME}" STOP="--stop --quiet --pidfile $PIDFILE" PARAMS= check_noncompatible_upgrade() [...] |
Redémarrez amavisd-new ensuite :
/etc/init.d/amavis restartMaintenant, nous mettons à jour nos règles SpamAssassin comme suit :
sa-update --no-gpgNous créons un cron job afin que les règles soient mises à jour régulièrement. Exécutez
crontab -epour ouvrir l’éditeur de cron job. Créez le cron job suivant :
| 23 4 */2 * * /usr/bin/sa-update --no-gpg &> /dev/null |
Cela mettra à jour les règles tous les deux jours à 4h23.
11 Notifications de dépassement de quota
Si vous souhaitez recevoir des notifications concernant tous les comptes e-mail 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 (surtout l’adresse e-mail [email protected]).
Nous devons rendre le fichier exécutable :
chmod 755 quota_notify Exécutez
crontab -epour créer un cron job 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.