Настройка почты · 6 min read · Oct 12, 2025

Виртуальные пользователи и домены с Postfix, Courier и MySQL (CentOS 5.1) - Страница 4

12 Установка Razor, Pyzor и DCC и настройка SpamAssassin

Razor, Pyzor и DCC — это спам-фильтры, которые используют сеть совместной фильтрации. Чтобы установить Razor, выполните

yum install perl-Razor-Agent razor-agents

Pyzor недоступен в репозиториях CentOS 5.1, но мы можем установить пакет Pyzor для RHEL 5:

rpm -ivh ftp://ftp.pbone.net/mirror/download.fedora.redhat.com/pub/fedora/epel/5/i386/pyzor-0.4.0-11.el5.noarch.rpm

(Вы можете использовать поиск RPM на http://rpm.pbone.net/, чтобы найти текущую версию, если вышеуказанная ссылка больше не работает.)

Затем инициализируйте оба сервиса:

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'

Затем мы устанавливаем DCC следующим образом:

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/dccifd

Теперь мы должны сказать SpamAssassin использовать эти три программы. Отредактируйте /etc/mail/spamassassin/local.cf так, чтобы он выглядел следующим образом:

vi /etc/mail/spamassassin/local.cf

| # Эти значения могут быть переопределены редактированием ~/.spamassassin/user_prefs.cf # (см. spamassassin(1) для подробностей) # Это должны быть безопасные предположения и позволять простую визуальную фильтрацию # без риска потери писем. #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 |

Затем мы должны включить плагин DCC в SpamAssassin. Откройте /etc/mail/spamassassin/v310.pre и раскомментируйте строку loadplugin Mail::SpamAssassin::Plugin::DCC:

vi /etc/mail/spamassassin/v310.pre

| # Это правильное место для настройки вашей установки SpamAssassin. # # См. 'perldoc Mail::SpamAssassin::Conf' для подробностей о том, что можно # настроить. # # Этот файл был установлен во время установки SpamAssassin 3.1.0, # и содержит команды загрузки плагинов для новых плагинов, добавленных в этом # выпуске. Он не будет перезаписан во время будущих установок SpamAssassin, # так что вы можете изменить его, чтобы включить некоторые плагины, отключенные по умолчанию, # если вы этого хотите. # # Теперь читаются несколько файлов для включения плагинов в # каталоге /etc/mail/spamassassin; ранее читался только один, "init.pre". # Теперь будут прочитаны как "init.pre", "v310.pre", так и любые другие файлы, заканчивающиеся # на ".pre". По мере выхода новых версий будут добавлены новые плагины # в новые файлы, названные в соответствии с выпуском, в который они добавлены. ########################################################################### # DCC - выполнять проверки сообщений DCC. # # DCC отключен здесь, потому что он не является открытым исходным кодом. См. лицензию DCC # для получения дополнительной информации. # loadplugin Mail::SpamAssassin::Plugin::DCC # Pyzor - выполнять проверки сообщений Pyzor. # loadplugin Mail::SpamAssassin::Plugin::Pyzor # Razor2 - выполнять проверки сообщений Razor2. # loadplugin Mail::SpamAssassin::Plugin::Razor2 # SpamCop - выполнять отчетность о сообщениях SpamCop # loadplugin Mail::SpamAssassin::Plugin::SpamCop # AntiVirus - некоторые простые проверки на вирусы, это не замена # для фильтра антивируса, такого как Clam AntiVirus # #loadplugin Mail::SpamAssassin::Plugin::AntiVirus # AWL - выполнять проверки авто-белого списка # loadplugin Mail::SpamAssassin::Plugin::AWL # AutoLearnThreshold - дискриминатор на основе порога для авто-обучения Bayes # loadplugin Mail::SpamAssassin::Plugin::AutoLearnThreshold # TextCat - определитель языка # #loadplugin Mail::SpamAssassin::Plugin::TextCat # AccessDB - поиск адресов отправителей в базе данных доступа # #loadplugin Mail::SpamAssassin::Plugin::AccessDB # WhitelistSubject - белый/черный список определенных регулярных выражений тем # loadplugin Mail::SpamAssassin::Plugin::WhiteListSubject ########################################################################### # экспериментальные плагины # DomainKeys - выполнять проверку DomainKeys # # Для использования требуются внешние модули, см. INSTALL для получения дополнительной информации. # Обратите внимание, что это может быть избыточным, если вы также планируете использовать плагин DKIM. # #loadplugin Mail::SpamAssassin::Plugin::DomainKeys # MIMEHeader - применять правила regexp к заголовкам MIME в сообщении # loadplugin Mail::SpamAssassin::Plugin::MIMEHeader # ReplaceTags # loadplugin Mail::SpamAssassin::Plugin::ReplaceTags |

Вы можете проверить вашу конфигурацию SpamAssassin, выполнив:

spamassassin --lint

Не должно быть никаких ошибок.

Запустите

/etc/init.d/amavisd restart

после этого.

Теперь я хочу вставить некоторые пользовательские наборы правил, которые можно найти в интернете, в SpamAssassin. Я протестировал эти наборы правил, и они делают фильтрацию спама гораздо более эффективной. Создайте файл /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 |

Сделайте скрипт исполняемым:

chmod 755 /usr/local/sbin/sa_rules_update.sh

Затем запустите этот скрипт один раз, он загрузит эти наборы правил и вставит их в SpamAssassin:

/usr/local/sbin/sa_rules_update.sh

Мы создаем задание cron, чтобы эти наборы правил обновлялись регулярно. Запустите

crontab -e

чтобы открыть редактор заданий cron. Создайте следующее задание cron:

| 23 4 */2 * * /usr/local/sbin/sa_rules_update.sh &> /dev/null |

Это будет обновлять наборы правил каждые два дня в 4:23.

13 Уведомления о превышении квоты

Если вы хотите получать уведомления обо всех учетных записях электронной почты, которые превышают квоту, выполните следующее:

cd /usr/local/sbin/  
wget http://puuhis.net/vhcs/quota.txt  
mv quota.txt quota_notify  
chmod 755 quota_notify

Откройте /usr/local/sbin/quota_notify и отредактируйте переменные вверху. Дальше в файле (ближе к концу) есть две строки, в которые вы должны добавить знак %:

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 = 'Моя компания'; my $COADDR = '[email protected]'; my $SUADDR = '[email protected]'; my $MAIL_REPORT = 1; my $MAIL_WARNING = 1; [...] print "Subject: WARNING: Ваша почтовая ящик заполнен на $lusers{ $luser}%. "; [...] print "Ваш почтовый ящик: $luser заполнен на $lusers{ $luser}%. "; [...] |

Запустите

crontab -e

чтобы создать задание cron для этого скрипта:

| 0 0 * * * /usr/local/sbin/quota_notify &> /dev/null |

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.