Несмотря на то, что моя конфигурация 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 = $local_part@$domain
deny message = Relay not permitted
hosts = +bad_hosts
Создаем файл и перезапускаем Exim:
# touch /usr/local/etc/exim/spam-hosts # /usr/local/etc/rc.d/exim restart
Для успешной работы надо создать почтовый ящик spamreport@yourdomain.com и вставить вызов скрипта в Cron. Теперь на spamreport@yourdomain.com можно отправлять письма с темой «block=123.32.14.56″, где 123.32.14.56 — ip спам-сервера.