Найти в Дзене
WebHOST1.ru

Exim на VPS: настройка ACL против спама и защита репутации IP

Спам через почтовый сервер быстро портит репутацию IP и снижает доставляемость. На практике проблему удобнее гасить прямо на уровне MTA. В Exim для этого используются ACL-правила: они позволяют блокировать, отклонять или перенаправлять сообщения до того, как они покинут сервер. Exim популярен на VPS и выделенных серверах за счёт гибкости конфигурации, но это же делает его привлекательной целью. Массовая отправка через SMTP с компрометированной учётки или через PHP mail() приводит к попаданию IP в чёрные списки и блокировкам у крупных провайдеров. Чтобы снизить риски, имеет смысл фильтровать нежелательные письма ещё в очереди обработки. ACL в Exim — это набор условий и действий, который решает судьбу каждого письма. Базовые варианты такие: «discard» удаляет сообщение бесследно и экономит ресурсы, «deny» возвращает отправителю ошибку и явно прекращает приём, «reroute» перенаправляет письма, например, в отдельный ящик или тестовый сервер для последующего анализа. Комбинация этих методов п

Спам через почтовый сервер быстро портит репутацию IP и снижает доставляемость. На практике проблему удобнее гасить прямо на уровне MTA. В Exim для этого используются ACL-правила: они позволяют блокировать, отклонять или перенаправлять сообщения до того, как они покинут сервер.

Exim популярен на VPS и выделенных серверах за счёт гибкости конфигурации, но это же делает его привлекательной целью. Массовая отправка через SMTP с компрометированной учётки или через PHP mail() приводит к попаданию IP в чёрные списки и блокировкам у крупных провайдеров. Чтобы снизить риски, имеет смысл фильтровать нежелательные письма ещё в очереди обработки.

ACL в Exim — это набор условий и действий, который решает судьбу каждого письма. Базовые варианты такие: «discard» удаляет сообщение бесследно и экономит ресурсы, «deny» возвращает отправителю ошибку и явно прекращает приём, «reroute» перенаправляет письма, например, в отдельный ящик или тестовый сервер для последующего анализа. Комбинация этих методов помогает разгрузить сервер и аккуратно разделить легитимный и подозрительный трафик.

Чтобы заблокировать отправку на определённые домены, сначала создайте файл со «стоп-листом».

Удобно хранить его построчно в /etc/exim/spam_domains.

Затем объявите список доменов и добавьте правило в секцию ACL. Пример объявления списка выглядит так:

domainlist spam_domains = lsearch;/etc/exim/spam_domains

Далее в конфигурации укажите обработку на этапе, когда письмо собирается к отправке не через SMTP. Ниже показан вариант, который отбрасывает сообщения, если среди получателей есть домены из списка:

begin acl

acl_check_not_smtp:
discard
condition = ${if forany{<, $recipients}\
{bool{${lookup{${domain:$item}}lsearch{/etc/exim/spam_domains}{1}{0}}}}}

Если требуется уведомлять отправителя, замените «discard» на «deny».

Для временного мониторинга подозрительных потоков можно использовать «reroute» и направлять такие письма на отдельный адрес.

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

Записи SPF, DKIM и DMARC в DNS подтверждают право сервера отправлять почту от имени домена и уменьшают число ложных «спам-срабатываний».

PHP mail() лучше ограничить и перевести проекты на SMTP с авторизацией, чтобы исключить массовые отправки из уязвимых скриптов. Контентную фильтрацию удобно выполнять средствами антиспама и антивируса, а сетевые аномалии гасить через fail2ban и правила фаервола ещё до уровня MTA.

Чаще всего проблемы возникают из-за невнимательности к конфигурации и логам.

В стоп-лист иногда попадают рабочие домены клиентов, что ведёт к потерянной переписке. Exim чувствителен к синтаксису: лишний пробел способен нарушить работу сервера, поэтому перед перезапуском полезно проверять конфиг командами «exim -bV» или «exim -bP acl».

Нельзя полагаться только на «discard»: где-то важнее явный «deny», а в спорных случаях помогает «reroute».

Регулярно просматривайте /var/log/exim/mainlog и /var/log/exim/rejectlog, чтобы вовремя замечать как лишние блокировки, так и обходные пути спама.

Правильно настроенные ACL в Exim позволяют резко сократить объём нежелательных сообщений и защитить репутацию домена. Эффект максимален, когда фильтрация совмещается с DNS-аутентификацией отправителя, контентной проверкой и мониторингом логов. Чем раньше вы соберёте эту связку, тем меньше шансов попасть в чёрные списки и столкнуться с отказами доставки.