Configuration Serveur · 6 min read · Oct 12, 2025
Utilisateurs et domaines virtuels avec Postfix, Courier et MySQL (CentOS 5.1) - Page 4
12 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, exécutez
yum install perl-Razor-Agent razor-agentsPyzor n’est pas disponible dans les dépôts CentOS 5.1, mais nous pouvons installer le paquet Pyzor pour RHEL 5 à la place :
rpm -ivh ftp://ftp.pbone.net/mirror/download.fedora.redhat.com/pub/fedora/epel/5/i386/pyzor-0.4.0-11.el5.noarch.rpm(Vous pouvez utiliser la recherche RPM à http://rpm.pbone.net/ pour trouver la version actuelle si le lien ci-dessus ne fonctionne plus.)
Ensuite, initialisez les deux services :
chmod -R a+rX /usr/share/doc/pyzor-0.4.0 /usr/bin/pyzor /usr/bin/pyzord
chmod -R a+rX /usr/lib/python2.4/site-packages/pyzor
mkdir /var/spool/amavisd
chown amavis:amavis /var/spool/amavisd
su -m amavis -c 'pyzor --homedir /var/spool/amavisd discover'
su -m amavis -c 'razor-admin -home=/var/spool/amavisd -create'
su -m amavis -c 'razor-admin -home=/var/spool/amavisd -register'Ensuite, nous installons DCC 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.76
./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. Modifiez /etc/mail/spamassassin/local.cf pour qu’il ressemble à ceci :
vi /etc/mail/spamassassin/local.cf| # Ces valeurs peuvent être remplacées en modifiant ~/.spamassassin/user_prefs.cf # (voir spamassassin(1) pour plus de détails) # Ces suppositions devraient être sûres et permettre un filtrage visuel simple # sans risquer de perdre des e-mails. #required_hits 5 #report_safe 0 #rewrite_header Subject [SPAM] # 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 /var/spool/amavisd/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/mail/spamassassin/v310.pre et décommentez la ligne loadplugin Mail::SpamAssassin::Plugin::DCC :
vi /etc/mail/spamassassin/v310.pre| # C'est le bon endroit pour personnaliser votre installation de SpamAssassin. # # Voir 'perldoc Mail::SpamAssassin::Conf' pour les détails de ce qui peut être # ajusté. # # Ce fichier a été installé lors de l'installation de SpamAssassin 3.1.0, # et contient des commandes de chargement de plugins pour les nouveaux plugins ajoutés dans cette # version. Il ne sera pas écrasé lors des futures installations de SpamAssassin, # donc vous pouvez le modifier pour activer certains plugins désactivés par défaut ci-dessous, # si vous le souhaitez. # # Il y a maintenant plusieurs fichiers lus pour activer les plugins dans le # répertoire /etc/mail/spamassassin ; auparavant, seul un, "init.pre" était # lu. Maintenant, "init.pre", "v310.pre", et tous les autres fichiers se terminant par # ".pre" seront lus. À mesure que de futures versions seront publiées, de nouveaux plugins seront # ajoutés à de nouveaux fichiers, nommés selon la version dans laquelle ils sont ajoutés. ########################################################################### # 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 # Pyzor - effectuer des vérifications de messages Pyzor. # loadplugin Mail::SpamAssassin::Plugin::Pyzor # Razor2 - effectuer des vérifications de messages Razor2. # loadplugin Mail::SpamAssassin::Plugin::Razor2 # SpamCop - effectuer des rapports de messages SpamCop # loadplugin Mail::SpamAssassin::Plugin::SpamCop # AntiVirus - quelques vérifications antivirus simples, ce n'est pas un remplacement # pour un filtre antivirus comme Clam AntiVirus # #loadplugin Mail::SpamAssassin::Plugin::AntiVirus # AWL - effectuer des vérifications de liste blanche automatique # loadplugin Mail::SpamAssassin::Plugin::AWL # AutoLearnThreshold - discriminateur basé sur le seuil pour l'auto-apprentissage de Bayes # loadplugin Mail::SpamAssassin::Plugin::AutoLearnThreshold # TextCat - devine la langue # #loadplugin Mail::SpamAssassin::Plugin::TextCat # AccessDB - recherche d'adresses d'expédition dans la base de données d'accès # #loadplugin Mail::SpamAssassin::Plugin::AccessDB # WhitelistSubject - Liste blanche/noire de certaines expressions régulières de sujet # loadplugin Mail::SpamAssassin::Plugin::WhiteListSubject ########################################################################### # plugins expérimentaux # DomainKeys - effectuer une vérification des DomainKeys # # Modules externes requis pour l'utilisation, voir INSTALL pour plus d'informations. # Notez que cela peut être redondant si vous prévoyez également d'utiliser le plugin DKIM. # #loadplugin Mail::SpamAssassin::Plugin::DomainKeys # MIMEHeader - appliquer des règles regexp contre les en-têtes MIME dans le message # loadplugin Mail::SpamAssassin::Plugin::MIMEHeader # ReplaceTags # loadplugin Mail::SpamAssassin::Plugin::ReplaceTags |
Vous pouvez vérifier votre configuration SpamAssassin en exécutant :
spamassassin --lintIl ne devrait pas afficher d’erreurs.
Exécutez
/etc/init.d/amavisd restartensuite.
Maintenant, je veux insérer quelques ensembles de règles personnalisées que l’on peut trouver sur Internet dans SpamAssassin. J’ai testé ces ensembles de règles, et ils rendent le filtrage des spams beaucoup plus efficace. Créez le fichier /usr/local/sbin/sa_rules_update.sh :
vi /usr/local/sbin/sa_rules_update.sh| #!/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/71_sare_redirect_pre3.0.0.cf -O 71_sare_redirect_pre3.0.0.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_bayes_poison_nxm.cf -O 70_sare_bayes_poison_nxm.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_html.cf -O 70_sare_html.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_html4.cf -O 70_sare_html4.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_html_x30.cf -O 70_sare_html_x30.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_header0.cf -O 70_sare_header0.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_header3.cf -O 70_sare_header3.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_header_x30.cf -O 70_sare_header_x30.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_specific.cf -O 70_sare_specific.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_adult.cf -O 70_sare_adult.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/72_sare_bml_post25x.cf -O 72_sare_bml_post25x.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/99_sare_fraud_post25x.cf -O 99_sare_fraud_post25x.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_spoof.cf -O 70_sare_spoof.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_random.cf -O 70_sare_random.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_oem.cf -O 70_sare_oem.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_genlsubj0.cf -O 70_sare_genlsubj0.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_genlsubj3.cf -O 70_sare_genlsubj3.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_genlsubj_x30.cf -O 70_sare_genlsubj_x30.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_unsub.cf -O 70_sare_unsub.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/70_sare_uri.cf -O 70_sare_uri.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.timj.co.uk/linux/bogus-virus-warnings.cf -O bogus-virus-warnings.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.yackley.org/sa-rules/evilnumbers.cf -O evilnumbers.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.stearns.org/sa-blacklist/random.current.cf -O random.current.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/88_FVGT_body.cf -O 88_FVGT_body.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/88_FVGT_rawbody.cf -O 88_FVGT_rawbody.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/88_FVGT_subject.cf -O 88_FVGT_subject.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/88_FVGT_headers.cf -O 88_FVGT_headers.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/88_FVGT_uri.cf -O 88_FVGT_uri.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/99_FVGT_DomainDigits.cf -O 99_FVGT_DomainDigits.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/99_FVGT_Tripwire.cf -O 99_FVGT_Tripwire.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.rulesemporium.com/rules/99_FVGT_meta.cf -O 99_FVGT_meta.cf &> /dev/null cd /etc/mail/spamassassin/ &> /dev/null && /usr/bin/wget http://www.nospamtoday.com/download/mime_validate.cf -O mime_validate.cf &> /dev/null /etc/init.d/amavisd restart &> /dev/null exit 0 |
Rendez le script exécutable :
chmod 755 /usr/local/sbin/sa_rules_update.shPuis exécutez ce script une fois, il récupérera ces ensembles de règles et les insérera dans SpamAssassin :
/usr/local/sbin/sa_rules_update.shNous créons un job cron afin que ces ensembles de règles soient mis à jour régulièrement. Exécutez
crontab -epour ouvrir l’éditeur de jobs cron. Créez le job cron suivant :
| 23 4 */2 * * /usr/local/sbin/sa_rules_update.sh &> /dev/null |
Cela mettra à jour les ensembles de règles tous les deux jours à 4h23.
13 Notifications de dépassement de quota
Si vous souhaitez recevoir des notifications concernant tous les comptes e-mail qui dépassent le quota, faites ceci :
cd /usr/local/sbin/
wget http://puuhis.net/vhcs/quota.txt
mv quota.txt quota_notify
chmod 755 quota_notifyOuvrez /usr/local/sbin/quota_notify et modifiez les variables en haut. Plus bas dans le fichier (vers la fin), il y a deux lignes où vous devez ajouter un signe % :
vi /usr/local/sbin/quota_notify| [...] 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; [...] print "Subject: WARNING: Votre boîte aux lettres est $lusers{ $luser}% pleine.\n"; [...] print "Votre boîte aux lettres : $luser est $lusers{ $luser}% pleine.\n\n"; [...] |
Exécutez
crontab -epour créer un job 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.