Перейти к содержимому

Настройка спам-фильтра DSpam (dspam, dspam-web, dovecot-antispam) в CentOS/RHEL

Установка DSpam

Сначала установим необходимые пакеты:

В CentOS 6 пользователь dspam создавался с UID, который меньше 500 и возникала проблема с запуском веб-части DSpam в Apache, поэтому приходилось менять UID. Сейчас эта часть уже не актуальна:

Создадим для DSpam базу и специального пользователя в MySQL:

DEFAULT CHARACTER SET utf8; Query OK, 1 row affected (0.01 sec) MariaDB [(none)]> CREATE USER ‘%DSpamUser%’@’localhost’ IDENTIFIED BY ‘%DSpamPassWord%’; Query OK, 0 rows affected (0.10 sec) MariaDB [(none)]> GRANT ALL PRIVILEGES ON

.* TO ‘%DSpamUser%’@’localhost’; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> q Bye[/crayon]

Теперь создадим в базе MySQL необходимые для работы таблицы:

Условимся, что здесь и далее вместо %DSpamDB%, %DSpamUser% и %DSpamPassWord% нужно вписывать название базы данных, имя пользователя и пароль. Никаких процентов!

Настройка DSpam

Теперь можно запустить DSpam:

Настройка postfix

Настройка SELinux для DSpam и Postfix

После того как SELinux настроен соответствующим образом для взаимосвязи postfix и DSpam – можно перезапустить postfix:

Настройка fetchmail

Настроим fetchmail, для того, чтобы он принятую почту принимал с использованием DSpam: 1-й вариант (попроще)

2-й вариант (правильнее): В PostfixAdmin, в настройках fetchmail нужно прописать следующий mda:

прямо так, с кавычками.

Настройка Apache и DSpam-web

Настройка SELinux для DSpam-web и Apache

Перезапустим Apache:

Теперь можно открыть в браузере ссылку  «https://mail.example.com:8443/» для доступа к DSpam-web.

Настройка Dovecot

Для того, чтобы Dovecot письма со спамом помещал в папку Spam, нужно проделать следующее:

Таким образом все письма в теме которых (или в поле автор) есть слово VIAGRA – будут автоматически удаляться. А те письма, которые DSpam пометил как Spam – будут помечаться прочитанными и попадать в папку Spam. Имейте в виду, Dovecot должен быть настроен так как описано в этой статье.

Но, как известно, в некоторых случаях письма со спамом не определяются как Spam, а некоторые письма, наоборот, отмечаются как спам по ошибке. В таких случаях необходимо сказать DSpam, что вот это письмо, к примеру, не спам, а вот это, наоборот спам. Это нужно для самообучения DSpam. Отмечать ошибочные письма как спам/не спам можно в вебинтерфейсе DSpam, но это сложный вариант, мы настроим проще.

Установка плагина dovecot-antispam

Обновление от 08.12.2018 (данный раздел уже не актуален и оставлен только для истории, см. …).

Для Dovecot есть специальный плагин, который будет следить за перемещением писем в почтовом ящике и в случае необходимости передавать эти письма на обучение DSpam. К примеру, если письмо вытаскивают из папки Spam (кроме случаев когда эти письма кладут в корзину), такое письмо передаётся DSpam со словами – это не спам. А если письмо наоборот, кладут в папку Spam, такое письмо передаётся DSpam со словами – это спам!

Плагина, который, обеспечивает нужный нам функционал, в репозиториях CentOS нет, поэтому соберём его и установим из исходников. Для этого сделаем следующее:

В CentOS 6 присутствовал пакет dovecot-devel в репозитории EPEL, поэтому не было нужды его скачивать с сайта atrpms.net. В CentOS 7 на момент написания статьи этого пакета в репозитории EPEL ещё не было, так что, если команда  «yum -y install dovecot-devel» выдаст ошибку – скачайте пакет вручную и установите. А если пакет установится из репозитория – скачивать и устанавливать его вручную не нужно будет.

Если в момент выполнения команды  «make install» мы увидим следующие ошибки:

нужно будет сделать следующее:

Если ошибок не будет – значит всё ок.

Теперь пропишем скомпилированный и установленный плагин в настройки dovecot:

Настройка SELinux для плагина dovecot-antispam

После настройки плагина – перезапустим dovecot:

Сейчас можете попробовать поместить письмо в папку Spam и посмотреть в веб-интерфейсе DSpam, поменялся ли статус у данного письма во вкладке «История». Так же можно посмотреть, нет ли ошибок в SELinux:

Если ошибок нет, а статус письма в веб-интерфейсе DSpam меняется – значит мы настроили всё правильно.

Обновление от 18.01.2016

Во время очередного обновления  «CentOS», отказались обновляться пакеты  «dovecot»:

«yum» нам предлагаем выполнить  «yum check», что ж, выполним:

Ожидаемо не помогло. Окей, удалим пакет который нам мешает, обновим оригинальные пакеты, а потом опять установим  «dovecot-devel».

Обновились. 

Обновление от 08.12.2018

После очередного обновления  CentOS, плагин dovecot-antispam перестал работать, т.к. плагины должны быть скомпилированы с актуальной версией пакета  dovecot. Т.е. нужно было либо опять перекомпилировать пакет  dovecot и устанавливать его, либо искать какое-нибудь более актуальное решение. Решение нашлось достаточно быстро, и плагин был удалён:

Опубликовано вLinux

Ваш комментарий будет первым

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *