/
/
Установка и настройка rspamd в ispmanager 6

Установка и настройка rspamd в ispmanager 6

Rspamd является современной альтернативой SpamAssasssin: он более производительный, потребляет меньше оперативной памяти, поддерживает проверку наличия DKIM, SPF, DMARC, ARC, а также содержит встроенные модули для работы с черными списками (RBL), белыми списками и Байесовским обучением.

Подготовка

Перед установкой и настройкой Rspamd, необходимо удалить SpamAssassin.

Предварительно необходимо сделать резервную копию конфигурационных файлов SpamAssassin и Exim:

cp -ar /etc/spamassassin /root/backup/spamassassin_backup
cp -ar /etc/exim4 /root/backup/exim4_backup
cp -ar /etc/mail/spamassassin /root/backup/spamassassin_backup
cp -ar /etc/exim /root/backup/exim4_backup

Остановите и отключите автозапуск службы SpamAssassin:

systemctl stop spamassassin spamd
systemctl disable spamassassin spamd

Отключите SpamAssassin в панели в разделе Конфигурация ПО - Почтовый сервер.

Установка и настройка Rspamd

До установки необходимо добавить репозиторий Rspamd:

curl -fsSL https://rspamd.com/apt-stable/gpg.key | \
sudo gpg --dearmor -o /usr/share/keyrings/rspamd.gpg

echo "deb [signed-by=/usr/share/keyrings/rspamd.gpg] https://rspamd.com/apt-stable/ $(lsb_release -cs) main" | \
sudo tee /etc/apt/sources.list.d/rspamd.list
curl -sSL https://rspamd.com/rpm-stable/<centos-release>/rspamd.repo | \
sudo tee /etc/yum.repos.d/rspamd.repo

Вместо <centos-release> укажите значение для вашей ОС:

  • centos-7 - для CentOS 7
  • centos-8 - для AlmaLinux 8, CloudLinux 8, RockyLinux 8
  • centos-9 - для AlmaLinux 9, CloudLinux 9
  • centos-10 - для AlmaLinux 10, CloudLinux 10

Для работы Rspamd необходим Redis - установите Redis и Rspamd с помощью команды:

apt install rspamd redis-server -y
dnf install rspamd redis

Создаем файлы для локальных оверрайдов для Rspamd:

cd /etc/rspamd/local.d/
touch worker-normal.inc worker-proxy.inc redis.conf classifier-bayes.conf

В файл worker-normal.inc добавить строку:

bind_socket = "127.0.0.1:11333";

В файл worker-proxy.inc добавьте строки:

bind_socket = "127.0.0.1:11332";
milter = yes;
timeout = 120s;
upstream "local" {
  default = yes;
  self_scan = yes;
}

В файл redis.conf добавьте строку:

servers = "127.0.0.1";

В файл classifier-bayes.conf добавьте строки:

backend = "redis";
servers = "127.0.0.1";
autolearn = true;

Включите в автозагрузку и запустите Rspamd и сервер Redis:

systemctl enable --now rspamd redis-server 

Убедитесь, что Rspamd прослушивает порт 11333:

ss -tlnp | grep 11333

Настройка Exim

Для Exim необходимо будет изменить параметры, отвечающие за интеграцию со SpamAssassin.

Первоначально убедитесь, что в конфигурационном файле Exim присутствует строка SA_ENABLE = yes:

cat /etc/exim4/exim4.conf.template | grep "SA_ENABLE = yes"
cat /etc/exim/exim.conf | grep "SA_ENABLE = yes"

Замените значение параметраspamd_address:

sed -i "s/spamd_address = 127.0.0.1 783/spamd_address = 127.0.0.1 11333 variant=rspamd/g" /etc/exim4/exim4.conf.template
sed -i "s/spamd_address = 127.0.0.1 783/spamd_address = 127.0.0.1 11333 variant=rspamd/g" /etc/exim/exim.conf

В конфигурационном файле замените полностью блок SA_ENABLE, который идет сразу после блока VIRUS_SCAN, на следующую конфигурацию:

.ifdef SA_ENABLE
        warn
            !authenticated = *
            hosts = !+relay_from_hosts
            spam       = nobody:true/defer_ok
            add_header = X-Spam-Score: $spam_score ($spam_bar)
            add_header = X-Spam-Report: $spam_report
            set acl_m4 = $spam_score_int

        deny
            condition  = ${if and{{!eq{$acl_m4}{}}{>{$acl_m4}{SA_SCORE_REJECT}}}{yes}{no}}
            message    = Content analysis detected spam (from $sender_address to $recipients). Contact SA_ABUSE_ADDR.
.endif

Проверьте корректность синтаксиса конфигурации:

exim4 -C /etc/exim4/exim4.conf.template -bV
exim -C /etc/exim/exim.conf -bV

В случае вывода ошибок синтаксиса, проверьте конфигурационный на ошибки и исправьте их. Когда ошибок при проверке не будет, перезагрузите службу Exim:

systemctl restart exim4
systemctl restart exim

Байесовское обучение

Rspamd поддерживает байесовское обучение: оно позволяет Rspamd обучаться на реальных письмах, которые были определены и как спам (spam), и как проверенные письма (ham) - это улучшает и ускоряет фильтрацию спама.

Перед запуском обучения крайне рекомендуется накопить на хотя бы на одном из почтовых ящиков достаточно примеров разных писем для обучения.

Для запуска обучения на спаме используйте команду:

rspamc learn_spam /var/www/<имя_пользователя>/data/email/<почтовый_домен>/<имя_ящика>/.maildir/.Junk/cur/

Для запуска обучения на легитимных письмах используйте команду:

rspamc learn_spam /var/www/<имя_пользователя>/data/email/<почтовый_домен>/<имя_ящика>/.maildir/cur/

Чтобы проверить, были ли записаны данные в Redis, введите команду:

redis-cli keys 'RS*' | head -20

Посмотреть текущую статистику по обучению можно с помощью следующей команды:

rspamc stat | grep -A5 -i bayes