RWL SpamAssassin plugin
- Информация о материале
- Категория: RWL-SpamAssassin
- Опубликовано: 17.03.2010, 08:37
- Автор: DukeSS
- Просмотров: 3906
RWL - подключаемый модуль (плагин) для антиспам-пакета SpamAssassin, производящий создание и поддержание в актуальном состоянии списка доверенных почтовых адресов из доменов, не обслуживаемых почтовым сервером ("чужих" доменов). Помогает улучшить прохождение писем с адресов, на которые осуществлялась отправка писем со своих адресов.
Установка
Для установки плагина необходимо:
- Скачать его.
- Распаковать.
- Скопировать файл RWL.pm в каталог размещения плагинов SpamAssassin (обычно /usr/lib/perl5/site_perl/x.x.x/Mail/SpamAssassin/Plugin).
- Создать базу данных.
Настройка
Для того, чтобы фильтр смог работать, нужно "объяснить" спаморезке, что у неё появился новый модуль, для чего в файле 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) проверяются адреса получателей. Если адрес принадлежит "чужому" домену, то он добавляется в белый список; если же локальному домену - адрес игнорируется.
Очистка от устаревших доверий к адресам происходит раз в час. По умолчанию срок жизни доверия составляет 3 месяца * (1 + log(counter)) с момента последнего отправленного на доверяемый адрес письма, где counter - количество писем отправленных из локальных доменов на доверенный адрес.
Другое
Плагин ориентирован на работу с СУБД PostgreSQL, так как присутствует процедура обновления записей в БД, однако в исходниках есть вариант без использования процедур, так что переделка под СУБД MySQL не займёт много времени.
Обновление
16.10.2014: Для сокрытия ошибок создания таблиц добавлены модификаторы IF NOT EXIST в запросы CREATE TABLE.