Защита от спама в Exchange 2013, 2016: RBL

Защита от спама в Exchange 2013, 2016: RBL

В этой статье мы поговорим об особенностях работы и настройке RBL фильтров в Exchange 2013/2016. Вкратце напомним о том, что такое RBL. RBL (Realtime Blackhole List) представляет собой сервис, хранящий базу данных, содержащую список IP-адресов почтовых серверов, замеченных в рассылке спама. Чаще всего доступ к RBL осуществляется по протоколу DNS, поэтому такие сервисы называют также DNSBL (DNS Block Lists).

Почтовый сервер при получении письма от неизвестного отправителя может автоматически сверяться с такими списками и блокировать почту с IP адресов, перечисленных в базе RBL сервисов. При обнаружении совпадения адреса отправителя со значением в одном из RBL списков, в ответ на команду RCPT TO ваш сервер Exchange выдаст SMTP сообщение об ошибке 550 5.x.x, а отправитель получат соответствующий отбойник.

За функционал блокировки соединений на основе списков IP адресов в Exchange 2016 и 2013 отвечает агент фильтрация подключений (Connection Filtering). Агент Connection Filtering включает в себя:

  • IP Block Lists – черный список IP адресов, почта с которых не принимается (запрещенные отправители);
  • IP Allow Lists — белый список IP адресов (разрешенные отправители);
  • RBL Providers – список провайдеров RBL.

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

В Exchange 2007/2010 антиспам фильтрация включалась с помощью скрипта install-AntispamAgents.ps1, причем оба агента фильтрации (Connection Filtering и Content Filtering) устанавливались на одном сервере с ролью Hub Transport. В Exchange 2013 транспортная роль разбита на 2 составляющие: Front End Transport и Back End Transport, а функционал фильтрации разделен спама на 2 части. На сервере Front End выполняется фильтрация подключений (Connection Filtering), а на Back End – фильтрация содержимого (включает в себя IMF-фильтр — Exchange Intelligent Message Filter и агент обнаружения вирусов — Malware Agent).

В Exchange 2013, если роли CAS и Mailbox установлены на одном сервере, скрипт Install-AntispamAgents.ps1 устанавливает только агент контентной фильтрации. Это означает, что функционал RBL-фильтрации будет не доступен.

Чтобы установить агент Connection Filtering, нужно воспользоваться командлетом Install-TransportAgent:

Install-TransportAgent -Name "Connection Filtering Agent" -TransportService FrontEnd -TransportAgentFactory "Microsoft.Exchange.Transport.Agent.ConnectionFiltering.ConnectionFilteringAgentFactory" -AssemblyPath "C:Program FilesMicrosoftExchange ServerV15TransportRolesagentsHygieneMicrosoft.Exchange.Transport.Agent.Hygiene.dll"

Установка агента фильтрации подключений в Exchange 2013

Т.к. в Exchange 2016 все роли (кроме Edge Transport) совмещены, поэтому, если у вас нет выделенного сервера с ролью Edge Transport, вам придется установить антиспам агентов с помощью скрипта install-AntispamAgents.ps1 на всех серверах. Затем службе транспорта Exchange нужно указать адреса внутренних SMTP серверов, которые должны игнорироваться при проверке на спам:

Set-TransportConfig -InternalSMTPServers @{Add="192.168.100.25","192.168.0.25"}

После установки агента, его нужно включить и перезапустить службу Front End Transport:

Enable-TransportAgent -TransportService FrontEnd -Identity "Connection Filtering Agent"
Restart-Service MSExchangeFrontEndTransport

Включить агент фильтрации командой Enable-TransportAgent

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

Get-TransportAgent -TransportService FrontEnd

Агент фильтрации Exchange 2013, реализующий RBL фильтрацию

Далее нужно указать список используемых RBL провайдеров.

Примечание. Самыми популярными RBL провайдерами на данный момент являются Spamhaus и SpamCop.

Add-IPBlockListProvider -Name zen.spamhaus.org -LookupDomain zen.spamhaus.org -AnyMatch $true -Enabled $True

Чтобы изменить текст отбойника, возвращаемого отправителю, воспользуемся такой командой:
Set-IPBlockListProvider zen.spamhaus.org -RejectionResponse "Your IP address is listed by Spamhaus Zen. You can delete it on page http://www.spamhaus.org/lookup/”

Можно добавить сразу несколько RBL провайдеров, предварительно ознакомившись с их особенностями и политикой коммерческого использования.
Список используемых RBL можно вывести так:

Get-IPBlockListProvider

Get-IPBlockListProvider - список используемых RBL сервисов

Проверить наличие конкретного IP адреса на предмет присутствия в RBL списке можно так:

Test-IPBlockListProvider -Identity zen.spamhaus.org -IPAddress x.x.x.x

Логи агента Connection Filter по умолчанию сохраняются в каталог
C:Program FilesMicrosoftExchange ServerV15TransportRolesLogsFrontEndAgentLog.

Вы можете получить информацию о том, какой из RBL провайдеров отклонил письмо, выполнив поиск по *.log файлам в этом каталоге. Чтобы найти файл лога с указанным email адресом, откройте cmd и выполните команды:

cd  “C:Program FilesMicrosoftExchange ServerV15TransportRolesLogsFrontEndAgentLog”
find /c "[email protected]" *.log | find ":" | find /v ": 0"

Потом откройте найденный log файл в любом текстовом редакторе и поиском по отклонённому email вы сможете определить RBL провайдера, который заблокировал письмо и время блокировки.

В этом пример видно, что письмо отклонено провайдером zen.spamhaus.org.

[email protected],,[email protected],1,Connection Filtering Agent,OnRcptCommand,RejectCommand,”550 5.7.1 Recipient not authorized, your IP has been found on a block list”,BlockLictProvider,zen.spamhaus.org,,,

exchange 550 5.7.1 Recipient not authorized, your IP has been found on a block list”,BlockLictProvider,zen.spamhaus.org

После накопления первичной информации (обычно нужно в два – три дня, в зависимости от объема почтового трафика), вы можете получить статистику результатов работы RBL фильтрации спама с помощью скрипта Get-AntispamTopRBLProviders.ps1.

.get-AntispamTopRBLProviders.ps1 -location "C:Program FilesMicrosoftExchange ServerV15TransportRolesLogsFrontEndAgentLog"

get-AntispamTopRBLProviders.ps1 - статистика работы RBL фильтров

Первое время начала использования RBL-фильтрации нужно внимательно изучить логи фильтрации на предмет ложных срабатываний, чтобы не заблокировать почту от ваших партнеров. Вы можете добавить такие доверенные email адреса или имена доменов в белый список Exchange:

Set-ContentFilterConfig -BypassedSenderDomains partner1.ru, partner2.com,partner3.net

Или добавить IP адрес определенного SMTP сервера в доверенные:

IPAllowListEntry -IPAddress x.x.x.x

Дополнительно для получения статистики о фильтрации писем фильтрами Connection Filtering Agent можно использовать следующие предустановленные PowerShell скрипты:

  • get-AntispamFilteringReport.ps1
  • get-AntispamSCLHistogram.ps1
  • get-AntispamTopBlockedSenderDomains.ps1
  • get-AntispamTopBlockedSenderIPs.ps1
  • get-AntispamTopBlockedSenders.ps1
  • get-AntispamTopRBLProviders.ps1
  • get-AntispamTopRecipients.ps1

Для отключения фильтрации входящей почты нужно отключить Connection Filtering Agent:

Disable-TransportAgent -TransportService FrontEnd -Identity “Connection Filtering Agent”

Списки RBL являются достаточно эффективным средством борьбы с нежелательной почтой, но в большинстве случаем для полноценной антиспам защиты нужно использовать их совместно с другими способами борьбы со спамом. В дополнении к RBL вы можете вручную заблокировать конкретные адреса или домены отправителей в Exchange.

Qiziqarli malumotlar
2016: RBL, Защита от спама в Exchange 2013