В этой статье мы поговорим об особенностях работы и настройке 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 Files\Microsoft\Exchange Server\V15\TransportRoles\agents\Hygiene\Microsoft.Exchange.Transport.Agent.Hygiene.dll"
Т.к. в 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
Проверить, что агент фильтрации подключений установлен и работает можно так:
Get-TransportAgent -TransportService FrontEnd
Далее нужно указать список используемых RBL провайдеров.
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 можно вывести так:
Проверить наличие конкретного IP адреса на предмет присутствия в RBL списке можно так:
Test-IPBlockListProvider -Identity zen.spamhaus.org -IPAddress x.x.x.x
Логи агента Connection Filter по умолчанию сохраняются в каталог
C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\Logs\FrontEnd\AgentLog.
Вы можете получить информацию о том, какой из RBL провайдеров отклонил письмо, выполнив поиск по *.log файлам в этом каталоге. Чтобы найти файл лога с указанным email адресом, откройте cmd и выполните команды:
cd “C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\Logs\FrontEnd\AgentLog”
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,,,
После накопления первичной информации (обычно нужно в два – три дня, в зависимости от объема почтового трафика), вы можете получить статистику результатов работы RBL фильтрации спама с помощью скрипта Get-AntispamTopRBLProviders.ps1.
.\get-AntispamTopRBLProviders.ps1 -location "C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\Logs\FrontEnd\AgentLog"
Первое время начала использования 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.
Кто то говорит использование
Spamhaus и подобных.
свойственно нерадивым админам.
habrahabr.ru/post/171223/
Что думаете вы?
Здесь все очень индивидуально, все зависит от задачи.
Наверное, в первую нужно очередь оценивать эффективность GBL по качеству отсеиванию спама. Если после несложной настройки даже начинающий админ может в разы уменьшить поток спама, почему, собственно и нет?
вопрос есть ли разница с 2007м?
потому что в нём надо было писать NAME
Set-IPBlockListProvider spamhaus.org -RejectionResponse «Your IP address is listed by Spamhaus Zen. You can delete it on page http://www.spamhaus.org/lookup/”
Думаю, отличий в синтаксисе быть не должно, но проверить не на чем (под рукой 2007 нет)
ЗБС конечно ,спасибо, но нет ни слова как отключить службу или как удалить сайт из списка RBL.
Чтобы отключить RBL достаточно очистить список RBL провайдеров с помощью командлета Remove-IPBlockListProvider.
Попробуйте добавить ip адреса сервера отправителя в белый список ip: Add-IPAllowListEntry -IPAddress 192.168.1.111
Спасибо, на тот момент я догадался просто выключить фильтр RBL командой аналогичной для включения.
DISABLE-TransportAgent -TransportService FrontEnd -Identity «Connection Filtering Agent»
помоему как то так.
А за ответ еще раз спасибо, попробую добавить пару адресов, в белый список.
E2013 CU7, Все роли в одном.
успешно добавляются РБЛи
[PS] C:\Windows\system32>Get-IPBlockListProvider
Name LookupDomain Priority
---- ------------ --------
SpamHaus IP Block List Provider zen.spamhaus.org 2
SpamCop IP Block List Provider bl.spamcop.net 1
и даже проверка ІР идет:
[PS] C:\Windows\system32>Test-IPBlockListProvider -Identity "SpamHaus IP Block List Provider" -IPAddress 8.8.8.8
RunspaceId : f225a389-e070-43ad-86d7-077b17dd05de
Provider : SpamHaus IP Block List Provider
ProviderResult : {}
Matched : False
Так все таки работает сия фича при совмещении ролей или нет?
Проверял и все вышло наоборот. Если роли cas и mbx стоят на разных, то рбл списки устанавливаются, но проверка не работает.
сколько по дефолту хранятся эти логи?
Exchange может показать список «плохих» ІР которых он послал лесом?? Как?
«искаропки» в Exchange есть скрипты (в папке scripts) которые могу показать статистику.
у меня работают все кроме 🙁
.\Get-AntispamTopBlockedSenderDomains.ps1
.\Get-AntispamTopRecipients.ps1
Тупо ничего не выводят. ЧЯДНТ ?
Все роли на одном сервере Exchange 2013 CU8.
AdminDisplayVersion: Version 15.0 (Build 1076.9).
Задействован Connection Filtering Agent. Работает, пишет логи. Настроен и прекрасно работает RBL, подключено три провайдера.
Проблема в том, что не работает IP Allow List, то есть, вообще его наличие никак не влияет на ситуацию. Как будто его и нет.
C:\Windows\system32>Get-TransportAgent -TransportService FrontEnd
Identity Enabled Priority
-------- ------- --------
Connection Filtering Agent True 1
C:\Windows\system32>Get-IPAllowListConfig
RunspaceId : 5ff5335c-3145-4f30-b332-cfa321d21ddf
Name : IPAllowListConfig
Enabled : True
ExternalMailEnabled : True
InternalMailEnabled : False
Соответственно, необходимость безусловно разрешить доставку почты с какого-либо важного IP-адреса, засветившегося в одном из используемых RBL-провайдеров, вынуждает просто отключить на время этого провайдера. Иначе никак не заставить принять почту с этого важного IP.
Как заставить работать IP Allow List?
Список разрешенных IP не забыли заполнить? Get-IPAllowListEntry что-гибудь возвращает?
Да, конечно, список из одного IP-адреса в наличии.
[PS] C:\Windows\system32>Get-IPAllowListEntry
Identity IPRange ExpirationTime HasExpired
-------- ------- -------------- ----------
1 84.53.206.2 31.12.9999 23:59:59 False
В логах Connection Filtering Agent этот IP-адрес явно блокируется с указанием причины — попадание в блэк-листы Spamhaus.
Натолкнулся в процессе поиска на одну тему, где упоминается взаимодействие Exch и FPE TMG. У меня публикация идёт через TMG, но при этом никакие функции обработки почты на шлюзе не используются. Опять-таки, неясно, если работает RBL, то почему-бы не работать IPAllowList. Собственно, и IPBlockList точно так же не работает, если туда что-то добавить.
Вот тут майл ру залетел в список
_https://www.abuseat.org/lookup.cgi?ip=185.5.136.81
В белый лист домен можно добавить только в SenderIDConfig но это не поможет тут я так понимаю,
Список всех IP у почтовиков домена можно конечно наковырять и добавить в бел лист.
Спасибо за статью. Немного унификовал отбойник, ибо не у всех ресурсов есть лукап с возможностью удаления своего адреса со спам-листа. Добавил почту postmaster. Но теперь возник вопрос — если RBL срабатывает на всём сервере, то как сделать чтобы, к примеру, письма на постмастер не проходили фильтрацию?
Добавить адрес в белый список получателей (https://winitpro.ru/index.php/2015/03/03/nastrojka-belogo-spiska-otpravitelej-v-exchange-server-2013/)?
Set-ContentFilterConfig -BypassedRecipients [email protected]
The BypassedRecipients parameter specifies the SMTP address values of recipients in your organization. The Content Filter agent doesn't process any content filtering for messages bound to the addresses listed on this parameter. To enter multiple SMTP addresses, separate the addresses by using a comma, for example: [email protected],[email protected]. The maximum number of recipients you can input is 100
.Ответил вам на письмо и вот :):
The response from the remote server was:
550 5.7.1 Your IP address is listed by SORBS Block List. If you think this is a mistake - write to us at postmaster@*.com.ua
Что-то SORBS Block List слишком жорстко реагирует на Gmail…
И еще одно. Сначала добавил в белый список домен gmail.com — письма начали доходить. Надо было получить письмо с домена google.com — отрезало его. Добавил еще этот домен в WL — в результате не приходят письма ни с gmail.com ни с google.com
Пока удалил RBL SORBS…
Уважаемые коллеги, вопрос!
Есть Exchange Server 2019. При отправке файла с расширением .pcap (wiresharkовский файл) его отшибает antimalware. Ни где не нашёл, как добавить его в исключения. Может кто знает, подскажите пожалуйста.
Покажите полный текст отбойника.
Ну гляньте и тут есть что-то?
Get-ContentFilterConfig | Format-List *Enabled,RejectionResponse,*Postmark*,Bypassed*,Quarantine*;
Add-IPAllowListEntry надо выполнять на каждом HUB-сервере (Exch 2010) в NLB-кластере?
Внес записи на одном, Get-IPAllowListEntry выдает записанное корректно. На другом ничего не показывает.
Первое, с чего нужно начинать борьбу со спамом это
1. Set-RecipientFilterConfig -RecipientValidationEnabled $true Включить валидацию получателей.
2. Add-IPAllowListEntry Добавить в белые списки IP всех своих припаркованных доменов, т.к. очень часто оказывается, что RBL их блокируют по непонятным причинам.
3. И только здесь добавлять RBL и очень внимательно следить кого они блокируют, чтоб быстро добавить нормальные домены в разрешенные.