Шукати в цьому блозі

субота, 21 грудня 2013 р.

SpamAssassin + MySQL + Roundcube

Цель это статьи пошагово описать процесс настройки SpamAssassin на работу с базой MySQL и установить плагин для Roundcube.
Преамбула такова, уже имеется настроенная связка Exim4 + SpamAssassin + MySQL + Roundcube, всё это великолепно работает. Хочется чтобы SpamAssassin научился работать с MySQL.
Приступим.
SpamAssassin установлен из репозитория, поэтому не мудрствуя лукаво переходим в /usr/share/doc/spamassassin/sql и смотрим, что тут у нас есть. А оказывается тут есть и инструкция в README и заготовки для создания таблиц.

Создадим в MySQL БД и пользователя:
mysql> create database spamassassin;
mysql> grant usage on *.* to 'spamassassin'@'localhost' identified by 'passw0rd';
mysql> grant all privileges on spamassassin.* to 'spamassassin'@'localhost';
mysql> flush privileges;
Теперь заливаем дампы таблиц из /usr/share/doc/spamassassin/sql:
mysql -uspamassassin -ppassw0rd spamassassin < /usr/share/doc/spamassassin/sql/userpref_mysql.sql
mysql -uspamassassin -ppassw0rd spamassassin < /usr/share/doc/spamassassin/sql/bayes_mysql.sql
mysql -uspamassassin -ppassw0rd spamassassin < /usr/share/doc/spamassassin/sql/awl_mysql.sql
БД и таблицы в ней созданы, теперь научи SpamAssassin как достучаться к MySQL. Создадим конфигурационный файл, скажем, /etc/spamassassin/sql.cf:
user_scores_dsn DBI:mysql:spamassassin:localhost:3306
user_scores_sql_username spamassassin
user_scores_sql_password passw0rd

auto_whitelist_factory Mail::SpamAssassin::SQLBasedAddrList

user_awl_dsn DBI:mysql:spamassassin:localhost:3306
user_awl_sql_username spamassassin
user_awl_sql_password passw0rd

bayes_store_module Mail::SpamAssassin::BayesStore::SQL
bayes_sql_dsn DBI:mysql:spamassassin:localhost:3306
bayes_sql_username spamassassin
bayes_sql_password passw0rd
В файле /etc/default/spamassassin отыскиваем опцию OPTIONS и добавляем ключи --sql-config и -u debian-spamd. Рестартуем сервис:
$ sudo service spamassassin restart
Теперь переходим в директорию Roundcube, далее в ${roundcube_dir}/plugins/sauserprefs на основании имеющегося шаблона создаём config.inc.php где указываем адреса, явки, пароли:
$rcmail_config['sauserprefs_db_dsnw'] = 'mysql://spamassassin:passw0rd@localhost/spamassassin';
Включаем плагин sauserprefs в ${roundcube_dir}/config/main.inc.php
Заходим в Roundcube, переходим в "Настройки", видим "Спам фильтр", радуемся!

Посмотреть пользовательскую конфигурацию в SQL БД можно, например, так:
mysql> select username,preference,value from userpref WHERE (username='$GLOBAL' OR username LIKE '%@mydomain.com' OR username='user@mydomain2.com') ORDER by username ASC;
Глобальные настройки можно перенести и/или переопределить в таблице userperf, для username значение "$GLOBAL":
+------------------+-------------------------+------------------------+
| username         | preference              | value                  |
+------------------+-------------------------+------------------------+
| $GLOBAL          | required_hits           | 5.00                   |
| $GLOBAL          | subject_tag             | [SPAM-_HITS_]-         |
| $GLOBAL          | score USER_IN_WHITELIST | -10                    |
| $GLOBAL          | whitelist_from          | *@whitedomain.com      |
| $GLOBAL          | score USER_IN_BLACKLIST | 10                     |
| $GLOBAL          | report_safe             | 0                      |
| $GLOBAL          | use_razor2              | 1                      |
| $GLOBAL          | use_pyzor               | 1                      |
| $GLOBAL          | use_dcc                 | 1                      |
| $GLOBAL          | skip_rbl_checks         | 1                      |
| $GLOBAL          | use_bayes               | 1                      |
| $GLOBAL          | ok_locales              | en                     |
| $GLOBAL          | ok_languages            | en                     |
| $GLOBAL          | whitelist_from          | *@nai.com              |
| $GLOBAL          | use_auto_whitelist      | 1                      |
| $GLOBAL          | rewrite_header Subject  | [SPAM-_HITS_]-         |
+------------------+-------------------------+------------------------+

Немає коментарів: