Exim: автоблокировка спам-хостов

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

#!/bin/sh

for file in `find /var/mail/yourdomain.com/spamreport/new -type f`
do
    cat $file | grep "Subject: block=" | sed 's/Subject: block=//' >> /usr/local/etc/exim/spam-hosts
done

rm -f /var/mail/yourdomain.com/spamreport/new/*

Осталось внести изменения в конфигурацию Exim. Добавляем в /usr/local/etc/exim/100.main.conf:

hostlist bad_hosts = net-iplsearch;/usr/local/etc/exim/spam-hosts

В /usr/local/etc/exim/configure правим ту часть, где описывается acl_check_rcpt:

# Эти правила срабатывают для каждого письма
acl_check_rcpt:

warn set acl_c_lp       = [email protected]$domain

deny   message = Relay not permitted
       hosts = +bad_hosts

Создаем файл и перезапускаем Exim:

# touch /usr/local/etc/exim/spam-hosts
# /usr/local/etc/rc.d/exim restart

Для успешной работы надо создать почтовый ящик [email protected] и вставить вызов скрипта в Cron. Теперь на [email protected] можно отправлять письма с темой «block=123.32.14.56», где 123.32.14.56 — ip спам-сервера.

Вам также может понравиться

Об авторе jared

1 комментарий

  1. Круто! Еще бы whitelist (но это можно реализовать самим exim-ом) и в репорты добавить причину блокировки.

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

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