RWL-SpamAssassin plugin

17.03.2010 11:37 DukeSS
E-mail Печать PDF

RWL - подключаемый модуль (плагин) для антиспам-пакета SpamAssassin, производящий создание и поддержание в актуальном состоянии белого списка почтовых адресов из доменов, не обслуживаемых почтовым сервером ("чужих" доменов).

Установка

Для установки плагина необходимо:

  1. Скачать его.
  2. Распаковать.
  3. Скопировать файл RWL.pm в каталог размещения плагинов SpamAssassin (обычно /usr/lib/perl5/site_perl/x.x.x/Mail/SpamAssassin/Plugin).
  4. Создать базу данных.

Настройка

Для того, чтобы фильтр смог работать, нужно "объяснить" спаморезке, что у неё появился новый модуль, для чего в файле init.pre вставить следующие строки:

loadplugin Mail::SpamAssassin::Plugin::RWL
header         KNOWN_ADDRESS eval:check_rwl_plugin()
describe KNOWN_ADDRESS I know about this sender

Затем надо настроить модуль: указать путь, имя пользователя и пароль к базе данных со списком пользователей и доменов, которые обслуживает сервер, а также названия таблиц и полей, в которых хранятся нужные сведения. Настройка производится в файле local.cf путём добавления следующих строк:

rwl_sql_dsn DBI:Pg:dbname=database;host=localhost;port=5432
rwl_sql_username
username
rwl_sql_password password

где rwl_sql_dsn - строка со сведениями для подключения к БД, rwl_sql_username - имя пользователя, имеющего права владельца на данную БД, rwl_sql_password - пароль пользователя.

После этого надо задать количество очков, которое будет добавляться к оценки "спамовости" в случае, если письмо отправлено с известно адреса. Настройка значения производится в файле local.cf, для этого в него надо добавить строку вида

score KNOWN_ADDRESS     -1.01

В случае, если значение не указано, тест проводиться не будет.

Первый запуск

После настройки перезапустить SpamAssassin. Необходимые таблицы и процедуры будут созданы автоматически. После этого необходимо заполнить таблицу domains названиями доменов, которые обслуживаются данным почтовым сервером.

Принцип работы

Фильтр автоматически загружается SpamAssassin, после чего начинает проверять адреса отправителей и получателей в проходящих письмах. Если адрес отправителя находится в домене, не указанном в таблице domains, то он проверяется на присутствие в белом списке; при наличии адреса в белом списке производится установка флага KNOWN_ADDRESS, иначе ничего не происходит.

В противном случае (адрес принадлежит доменам, перечисленным в таблице domains) проверяются адреса получателей. Если адрес принадлежит "чужому" домену, то он добавляется в белый список; если же локальному домену - адрес игнорируется.

Другое

Плагин ориентирован на работу с СУБД PostgreSQL, так как присутствует процедура обновления записей в БД, однако в исходниках есть вариант без использования процедур, так что переделка под СУБД MySQL не займёт много времени.

Обновлено 17.03.2010 12:38