Фильтр спама · 7 min read · Nov 14, 2025
Фильтр спама Postfix с использованием Ubuntu Dapper, MailScanner, SpamAssassin, Razor, Pyzor, DCC и ClamAV - Страница 4
3 Конфигурация Pyzor, Razor, DCC, SpamAssassin и MailScanner
3.1 Конфигурация Pyzor
Сначала нам нужно изменить некоторые разрешения на pyzor:
chmod -R a+rX /usr/share/doc/pyzor /usr/bin/pyzor /usr/bin/pyzordЭта следующая команда должна быть изменена, если у вас другая версия python. Попробуйте найти pyzor.
chmod -R a+rX /usr/lib/site-python/pyzorЗдесь мы указываем IP-адрес сервера Pyzor для Pyzor. Это создаст директорию .pyzor в обоих домашних каталогах пользователей и поместит IP-адрес сервера в файл servers. Затем он протестирует соединение. Если вы находитесь за брандмауэром, откройте порт 24441/udp на вход и выход к вашему серверу. Также откройте 6277/udp для DCC, 2703/tcp для Razor и 783/tcp для SpamAssassin:
pyzor pingОбычно вы получите тайм-аут от ping pyzor, так что не беспокойтесь об этом. Мы протестируем снова позже.
Если в будущем IP-адрес сервера изменится, вам нужно будет снова пройти через этот раздел. Вы можете найти адрес текущего сервера Pyzor здесь http://pyzor.sourceforge.net/cgi-bin/inform-servers-0-3-x.
Если Pyzor работает, вы увидите “Pyzor: got response:” Pyzor запрашивает сервер Pyzor так же, как ваш компьютер запрашивает DNS-сервер. Единственное практическое отличие - это номер порта, который используется. Если Pyzor не работает, возможно, вам нужно открыть порт на вашем брандмауэре или сервер Pyzor занят.
3.2 Конфигурация Razor
Создайте конфигурацию default.razor в домашнем каталоге root:
cd
rm /etc/razor/razor-agent.conf
razor-admin -create
razor-admin -createRazor v2 требует, чтобы репортеры были зарегистрированы, чтобы их репутации могли вычисляться со временем и они могли участвовать в механизме отзыва. Регистрация осуществляется с помощью razor-admin -register. Когда razor-admin -register вызывается от имени root, он ведет переговоры о регистрации с сервером номинаций и записывает информацию о личности в /root/.razor/identity-username. Вызовите его вручную одним из следующих способов:
- Чтобы зарегистрировать пользователя: foo и пароль: s1kret (foo и s1kret - примеры):
razor-admin -register -user=foo -pass=s1kr3t- Чтобы зарегистрироваться с адресом электронной почты и получить назначенный пароль:
razor-admin -register [email protected]- Чтобы получить назначенные (случайные) имя пользователя и пароль:
razor-admin -registerЯ обычно просто делаю номер 3. Внесите следующие изменения в /root/.razor/razor-agent.conf:
vi /root/.razor/razor-agent.confИзмените debuglevel = 3 на debuglevel = 0 (да, ноль, а не “o”). Это предотвратит заполнение вашего диска информацией отладки. Также мы переместим эти конфигурации в место, где пользователь Postfix сможет их читать, поэтому добавьте строку razorhome в конец файла. Эти две строки должны выглядеть так, когда вы закончите:
debuglevel = 0
razorhome = /var/lib/MailScanner/.razor/Мы протестируем Razor позже. man razor-agent.conf или перейдите на http://razor.sourceforge.net/docs/razor-agent.conf.php для получения дополнительной информации о Razor.
3.3 Установка и конфигурация DCC
Установите DCC:
apt-get install dcc-clientМы не запускаем сервер DCC, поэтому нам не нужно тратить время на проверку себя: Если вы крупная организация (100,000 сообщений в день), вам следует рассмотреть возможность запуска собственного сервера.
После завершения установки выполните:
cdcc "delete 127.0.0.1"
cdcc "delete 127.0.0.1 Greylist"Проверьте нашу установку с помощью:
cdcc infoВы должны получить ‘requests ok’ от серверов.
4 Конфигурация MailScanner, ClamAV и SpamAssassin
4.1 MailScanner и ClamAV
Остановите Postfix:
postfix stopУстановите пакеты:
apt-get install mailscanner clamavОбновите определения вирусов ClamAV:
freshclamНачнем с MailScanner. MailScanner, который только что был установлен из репозиториев, является очень старой версией, поэтому мы сейчас удалим его и установим пакет MailScanner из исходников.
Скачайте архив с http://www.mailscanner.info/downloads.html … На момент написания это версия 4.56.8-1, и ссылка на архив http://www.mailscanner.info/files/4/tar/MailScanner-install-4.56.8-1.tar.gz. Затем установите MailScanner, используя скрипт install.sh.
cd
apt-get remove mailscanner
wget http://www.mailscanner.info/files/4/tar/MailScanner-install-4.56.8-1.tar.gz
tar zxvf MailScanner-install-4.56.8-1.tar.gz
cd MailScanner-install-4.56.8
./install.shИгнорируйте сообщение о строках cron, которые нам нужно добавить в cron на данный момент.
После этого нам нужно создать директорию для SpamAssassin в спуле и дать разрешения postfix на нее, если вы запустите sa-learn –force от имени root, база данных bayes, которая хранится в этих директориях, изменится на root:root, и spamassassin выдаст ошибку при обращении к БД. Просто следите за mail.log, и вы вспомните, чтобы изменить разрешения обратно. Также отключите конфигурации по умолчанию MailScanner:
mkdir /var/spool/MailScanner/spamassassin
mv /etc/MailScanner /etc/MailScanner.distСоздайте резервную копию вашего файла MailScanner.conf:
cp /opt/MailScanner/etc/MailScanner.conf /opt/MailScanner/etc/MailScanner.conf.backОтредактируйте MailScanner.conf:
vi /opt/MailScanner/etc/MailScanner.confИзмените следующие параметры в MailScanner.conf:
%org-name% = YOURDOMAIN-COM
%org-long-name% = Your Company Long Name INC
%web-site% = www.yourdomain.com
Run As User = postfix
Run As Group = postfix
Incoming Queue Dir = /var/spool/postfix/hold
Outgoing Queue Dir = /var/spool/postfix/incoming
MTA = postfix
Virus Scanners = clamav
Spam Subject Text = [SPAM]
Send Notices = no
Spam List = ORDB-RBL SBL+XBL
Required SpamAssassin Score = 6
High SpamAssassin Score = 10
Spam Actions = deliver striphtml
High Scoring Spam Actions = delete
Rebuild Bayes Every = 86400
Wait During Bayes Rebuild = yes
SpamAssassin User State Dir = /var/spool/MailScanner/spamassassinПервые 9 строк в основном обязательны для того, чтобы все работало, остальные рекомендуются. MailScanner.conf хорошо документирован, поэтому, пожалуйста, прочитайте примечания там, если у вас есть какие-либо вопросы по остальным параметрам, которые мы изменили. Пройдитесь по этому файлу сверху вниз.
Также обратите внимание на раздел “Удаление/Логирование опасного или потенциально оскорбительного контента” в файле MailScanner.conf. Мне пришлось отключить большинство из них, потому что клиенты жаловались на сообщения ‘{Disarmed}’.
4.2 SpamAssassin
Сначала нам нужно отключить файл конфигурации SpamAssassin по умолчанию:
mv /etc/spamassassin/local.cf /etc/spamassassin/local.cf.disabledТеперь давайте создадим резервную копию файла конфигурации SpamAssassin в MailScanner, а затем отредактируем:
cp /opt/MailScanner/etc/spam.assassin.prefs.conf /opt/MailScanner/etc/spam.assassin.prefs.conf.backvi /opt/MailScanner/etc/spam.assassin.prefs.confДобавьте эти две строки в начало spam.assassin.prefs.conf:
pyzor_options --homedir /var/lib/MailScanner/
razor_config /var/lib/MailScanner/.razor/razor-agent.confИзмените, где SpamAssassin ищет базу данных Bayes, закомментируйте путь bayes_path по умолчанию или измените его соответственно:
#bayes_path /var/lib/MailScanner/bayes
bayes_path /var/spool/MailScanner/spamassassin/bayesИщите эти строки и измените их соответственно:
bayes_ignore_header X-YOURDOMAIN-COM-MailScanner
bayes_ignore_header X-YOURDOMAIN-COM-MailScanner-SpamCheck
bayes_ignore_header X-YOURDOMAIN-COM-MailScanner-SpamScore
bayes_ignore_header X-YOURDOMAIN-COM-MailScanner-Information“YOURDOMAIN-COM” следует заменить на то, что вы использовали для “%org-name%” в файле MailScanner.conf. Оставьте “X-“ на месте.
Убедитесь, что “bayes_auto_expire 0” не закомментирован:
bayes_auto_expire 0Отредактируйте файл SpamAssassin v310.pre, чтобы включить Razor и DCC
vi /etc/spamassassin/v310.preРаскомментируйте следующие строки:
loadplugin Mail::SpamAssassin::Plugin::DCC
loadplugin Mail::SpamAssassin::Plugin::Razor25 Соберем все вместе
Скопируйте конфигурации Pyzor и Razor в место, где пользователь Postfix сможет их читать:
cp -R /root/.pyzor /var/lib/MailScanner
cp -R /root/.razor /var/lib/MailScannerТеперь, когда у нас все это есть, установите правильные разрешения:
chown -R postfix.postfix /var/spool/MailScanner/
chown -R postfix.postfix /var/lib/MailScanner/Давайте посмотрим, доволен ли SpamAssassin:
su postfix -p -c 'spamassassin -x -D -C /opt/MailScanner/etc/spam.assassin.prefs.conf --lint'Вы должны увидеть строки с DCC, Pyzor и Razor, которые говорят о загрузке плагина и, надеюсь, без ошибок.
ПРИМЕЧАНИЕ: Если вы когда-либо запустите sa-learn, помните, что нужно запускать его так: su postfix -p -c ‘sa-learn –sync –force-expire -C /opt/MailScanner/etc/spam.assassin.prefs.conf’, иначе, когда SpamAssassin перестраивает базу данных bayes, он не сможет ее прочитать.
Если все выглядит хорошо, продолжайте, если нет, устраните неполадки, а затем продолжайте.
Завершая эту часть, нам нужно добавить задания cron, которые будут очищать/обновлять/запускать MailScanner, вы, вероятно, видели сообщение об этом после завершения скрипта установки MailScanner. Причина, по которой мы делаем это сейчас, заключается в том, что мы не хотим, чтобы MailScanner запускался, пока мы завершаем конфигурацию SpamAssassin.
crontab -eДобавьте эти строки:
37 5 * * * /opt/MailScanner/bin/update_phishing_sites
58 23 * * * /opt/MailScanner/bin/clean.quarantine
42 * * * * /opt/MailScanner/bin/update_virus_scanners
3,23,43 * * * * /opt/MailScanner/bin/check_mailscannerНам нужно добавить строку в rc.local, чтобы MailScanner запускался при перезагрузке:
vi /etc/rc.localПеред строкой “Exit 0” добавьте:
/opt/MailScanner/bin/check_mailscannerМожно также создать ссылку на файл “check_mailscanner” в директории bin. Таким образом, вы сможете запускать его, когда вам нужно перезапустить MailScanner:
cd /usr/bin
ln -s /opt/MailScanner/bin/check_mailscanner check_mailscannerПросто чтобы получить чистый лог для просмотра и перезагрузите:
rm /var/log/mail.log
rebootЕсли вы видите некоторые ошибки при перезагрузке при запуске MailScanner о Perl Sys/Hostname/Long.pm, вам нужно установить его следующим образом:
perl -MCPAN -e shellЕсли он спросит вас, нужно ли вам настроить его сейчас, скажите нет, если вы не знаете, что делаете. Теперь выполните следующее, чтобы установить модуль:
install Sys::Hostname::LongКогда это будет сделано, введите “quit”, чтобы вернуться в консоль. Перезагрузите или запустите MailScanner с помощью скрипта “check_mailscanner”.
На этом этапе у вас должен быть полностью функциональный фильтр спама. Посмотрите на tail -f /var/log/mail.log, он должен быть практически свободен от ошибок.
Этот README должен быть полезен для будущего использования. Скопируйте его в ваш фильтр спама для быстрого справочного материала.
POSTFIX, UBUNTU, MAILSCANNER README
************************************************
ADD DOMAIN
**********************************************
- Отредактируйте '/etc/postfix/relay_recipients', 'relay_domains' и 'transport'.
- Запустите 'postmap /etc/postfix/relay_recipients'. То же самое для 'relay_domains' и 'transport' после редактирования, чтобы добавить домены в файл db.
- 'postfix reload' для того, чтобы postfix прочитал новые файлы db.
- Чтобы добавить пользователей в домены, отредактируйте 'relay_recipients' и выполните postmap.
**********************************************
CONTROLLING BLIST WLIST
**********************************************
- Отредактируйте /etc/postfix/sender_access
- Запустите 'postmap /etc/postfix/sender_access'
- Запустите 'postfix reload'
**********************************************
OTHER CONFIG FILES
**********************************************
- Чтобы отредактировать настройки MailScanner "/opt/MailScanner/etc/MailScanner.conf"
- Чтобы отредактировать настройки spamassassin "/opt/MailScanner/etc/spam.assassin.prefs.conf"
- Чтобы отредактировать настройки clamav "/etc/clamav/clamd.conf"
**********************************************
MISC
************************************************
- Запустите 'LINUX2', если появляются ошибки postfix о файлах, которые не совпадают в jailroot.
- Запустите 'postfix check', чтобы увидеть, синхронизирован ли postfix с jailroot.
- Запустите newaliases, чтобы обновить базу данных /etc/postfix/aliases, если в этом файле были внесены изменения..
- 'mailq' и 'qshape', чтобы проверить очередь.
- 'check_mailscanner', чтобы перезапустить MailScanner.Get new posts in your inbox
No spam. Unsubscribe anytime.