Настройка службы антиспама spamassassin на почтовом сервер Ubuntu\Debian для службы Postfix и перемещение писем в папку Спам. Данная конфигурация позволяет сделать работу с почтой комфортной за счет обучения фильтра и автоматического перемещение писем.
В данном руководстве предполагается, что сам почтовый сервер у Вас уже настроен и необходимо произвести настройку спам фильтра. Подробнее про настройку почтового сервера можно посмотреть тут:
Вы также можете заказать VPS с уже преднастроенной операционной системой и получить готовый корпоративный почтовый сервер по цене VPS сервера.
1. Установим службу spamassassin
apt-get install spamassassin spamc
adduser spamd --disabled-login
2. Настроим службу
vi /etc/default/spamassassin
Найдите строку:
OPTIONS="--create-prefs --max-children 5 --helper-home-dir"
и замените на:
OPTIONS="--create-prefs --max-children 5 --username spamd --helper-home-dir /home/spamd/ -s /home/spamd/spamd.log"
В самом конце файла включим крон:
CRON=1
Сохраним файл. (:wq)
3. Настройка фильтра:
mv /etc/spamassassin/local.cf /etc/spamassassin/local.cf.bk
vi /etc/spamassassin/local.cf
rewrite_header Subject ***** SPAM SCORE *****
report_safe 0
required_score 5.0
use_bayes 1
use_bayes_rules 1
bayes_auto_learn 1
skip_rbl_checks 0
use_razor2 0
use_pyzor 0
ifplugin Mail::SpamAssassin::Plugin::Shortcircuit
endif
Сохраним файл.
4. Настройка службы Postfix
Найдите строку smtp и добавьте конфигурацию ниже:
vi /etc/postfix/master.cf
smtp inet n - y - - smtpd -o content_filter=spamassassin
spamassassin unix - n n - - pipe
user=spamd argv=/usr/bin/spamc -f -e
/usr/sbin/sendmail -oi -f ${sender} ${recipient}
Сохраним файл и перезапустим службы
systemctl restart postfix.service
systemctl enable spamassassin.service
systemctl start spamassassin.service
Проверим работу службы отправив на почтовый ящик письмо содержащее данный текст:
XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X
5. Настроим перемещение спам писем в папку Спам.
Установим и настроим службу Sieve
apt-get install dovecot-sieve dovecot-managesieved
vi /etc/dovecot/conf.d/90-sieve.conf
sieve = /etc/dovecot/dovecot.sieve
Сохраним файл.
Создадим файл:
vi /etc/dovecot/dovecot.sieve
require "fileinto";
if header :contains "SPAM" "YES" {
fileinto "Junk";
}
if header :contains "X-Spam-Flag" "YES" {
fileinto "Junk";
}
Сохраним файл.
Добавим в конец файла конфигурацию:
vi /etc/dovecot/dovecot.conf
service stats {
unix_listener stats-reader {
user = vmail
group = vmail
mode = 0660
}
unix_listener stats-writer {
user = vmail
group = vmail
mode = 0660
}
}
Сохраним файл.
Добавим конфигурацию в файл, чтобы строка выглядела так:
vi /etc/dovecot/conf.d/15-lda.conf
protocol lda {
mail_plugins = $mail_plugins sieve
}
Добавим конфигурацию в файл, чтобы строка выглядела так:
vi /etc/dovecot/conf.d/10-director.conf
protocol lmtp {
mail_plugins = $mail_plugins sieve
}
Перезапустим службы:
systemctl start spamassassin.service
systemctl restart postfix.service
Теперь все письма помеченные как спам будут появляться в папке Спам.
Требуется что то вроде этого
require ["body","fileinto"];
# rule:[Spam]
if header :contains "subject" "SPAM"
{
fileinto "Junk";
}