Почтовая система на основе on-premises Exchange Server или Exchange Online (Microsoft 365) позволяет администратору заблокировать доставку писем с определенных внешних доменов или адресов отправителей в ящики пользователей. В Exchange Server и Microsoft 365 есть несколько средств, которые позволяют задать список нежелательных доменов и e-mail адресов, с которых нужно блокировать входящую почту. В этой статье мы рассмотрим, как настроить список заблокированных отправителей через графический интерфейс Exchange Admin Center (EAC) или из PowerShell.
Ниже представлена сводная таблица со способами блокировки отправителей, которые доступны в EOL (M365) и on-premises Exchange Serever.
On-premises Exchange Server | Exchange Online (Microsoft 365) | |
Фильтры антиспам агента Sender Filter | + | |
Блокировка отправителей с помощью транспортных правил (mailflow rules) | + | + |
Индивидуальные списки заблокированных адресов в почтовых ящиках | + | + |
Список разрешенных доменов и адресов (Tenant Allow/Block List) | + |
Настройка списка запрещенных отправителей с помощью агента Sender Filter в Exchange Server
В on-premises Exchange Server вы можете настроить черные списки отправителей с помощью встроенного фильтра антиспам агента. Служба транспорта в Exchange Server позволяет использовать антиспам агенты для фильтрации входящего потока писем. По умолчанию эти агенты не установлены. Чтобы установить их, выполните на Maibox сервере скрипт:
& $env:ExchangeInstallPath\Scripts\Install-AntiSpamAgents.ps1
Перезапустите службу Exchange Transport:
Restart-Service MSExchangeTransport
Данный PowerShell скрипт установит несколько антиспам агентов Exchange, в том числе Sender Filter. Агент Sender Filter позволяет задать список доменов и адресов отправителей, с которых нужно запретить принимать почту.
Выведите список установленных агентов:
Get-TransportAgent
Чтобы включить Recipient Filter Agent, выполните:
Enable-TransportAgent "Recipient Filter Agent"
Все остальные антиспам агенты можно отключить (если вы их не используете):
Disable-TransportAgent "Content Filter Agent"
Disable-TransportAgent "Sender Id Agent"
Disable-TransportAgent "Sender Filter Agent"
Disable-TransportAgent "Protocol Analysis Agent"
Чтобы активировать фильтр, выполните:
Set-SenderFilterConfig -Enabled $true
Если нужно фильтровать только внешних отправителей, выполните:
Set-SenderFilterConfig -ExternalMailEnabled $true
Теперь вы можете указать список e-mail адресов, которых нужно заблокировать.
Set-SenderFilterConfig -BlockedSenders [email protected],[email protected]
Чтобы заблокировать все письма с определенных доменов и всех поддоменов:
Set-SenderFilterConfig -BlockedDomainsAndSubdomains spammer.com,masssend.net
Чтобы получить список заблокированных адресов, выполните команду:
Get-SenderFilterConfig |fl BlockedSenders,BlockedDomains,BlockedDomainsAndSubdomains
Вывести список всех заблокированных адресов:
Get-SenderFilterConfig |fl BlockedSenders,BlockedDomains,BlockedDomainsAndSubdomains
Если нужно добавить в список заблокированных доменов/адресов новые записи, воспользуйтесь такой конструкцией:
Set-SenderFilterConfig -BlockedSenders @{Add=”[email protected]”}
Или
Set-SenderFilterConfig -BlockedDomainsAndSubdomains @{Add=”blokme.ru”,”spammers.com”,”fb.com”}
Чтобы удалить из списка заблокированных отправителей определенные адреса, используйте команды:
Set-SenderFilterConfig -BlockedSenders @{Remove=”[email protected]”,”[email protected]”}
Это приводит к удалению из списка только указанных адресов, а не всего списка целиком.
Или:
Set-SenderFilterConfig –BlockedDomainsAndSubdomains @{Remove=”blokme.ru”,”spammers.com”}
Блокировка писем транспортными правилами Exchange
В EOL и Exchange Server вы можете заблокировать письма от определенных отправителей или доменов с помощью транспортных правил Exchange (Mail flow rules). Вы можете создать транспортные правила из веб интерфейса Exchange Admin Center:
Если вы используете классический интерфейс EAC:
- Перейдите в раздел Mail flow;
- Создайте новое правило. Добавьте условие The sender -> is the person или domain is укажите email адреса или домены которые нужно заблокировать;
- Если вы хотите заблокировать всю внешнюю почту, в условиях укажите, что правило должно применяться, если пользователь находится (The sender is located…) за пределами организации (Outside the organization). Нажмите на More options;
- Затем нужно добавить действие (add action) -> Block the message. Вы можете заблокировать письмо и отправить отправителю отбойник (опция Reject the message and include an explanation), либо ответить кодом ошибки или удалить письмо без отправки уведомления;
- Укажите приоритет правила и сохраните его.
В EOL для настройки транспортного правила используется новый Exchange admin center:
- Перейдите в Mail flow -> Rules —> Add a rule;
- Выберите тип правила Restrict messages by sender or recipient;
- Укажите имя правила;
- Apply this rule if -> domain is -> укажите имена доменов, которые нужно заблокировать (можно добавить несколько доменов в одном транспортном правиле);
- В поле Do the following выберите Block the message и укажите нужно ли отправлять NDR отправителю (например, reject the message with the enhanced status code и укажите 5.7.1;
- Затем выберите Rule mode -> Enforce;
- По умолчанию новое транспортное правило отключено. Включите его в EAC.
Теперь EOL будет отклонять все письма с указанных доменов. В трейсинг логах Microsoft 365 вы увидите имя транспортного правила, которое отклонило письмо:
Office 365 received this message but couldn't deliver it to the recipient ([email protected]). This happened because an email admin for your organization set up the following mail flow rule that rejected the message: Mail flow rule: exch_RuleBlockDomain_contoso
Вы можете создать транспортное правило из PowerShell. Подключитесь к своей организации:
- Как удаленно подключиться к Exchange Server с помощью PowerShell?
- PowerSell модуль Exchange Online для подключения к тенанту Microsoft 365
Чтобы создать новое правило для блокировки нескольких доменов, выполните
New-TransportRule “block_sender_domain” –SenderDomainIs “contoso.com”,”contoso2.com>” –DeleteMessage $True –StopRuleProcessing $True
Или так:
$list1 = @('contoso.com','contoso2.com',)
New-TransportRule -Name "block_sender_domain" -RecipientAddressMatchesPatterns $list1 RejectMessageEnhancedStatusCode '5.7.1' -RejectMessageReasonText "Blocked recipients"
Вывести информацию о транспортном правиле:
Get-TransportRule block_sender_domain | select name,State,SenderDomainIs,RejectMessageReasonText
Список разрешённых/заблокированных клиентов в Microsoft 365
В Exchange Online вы можете использовать функцию Tenant Allow/Block List для добавления отправителей в список запрещенных.
- Перейдите на портал Microsoft 365 Defender https://security.microsoft.com.
- Перейдите в Policies & rules -> Threat policies -> Tenant Allow/Block List;
- Нажмите кнопку Block и добавить список email адресов и доменов, которые нужно заблокировать;
- Для каждой записи будеи создано отдельное правило.
Также вы можете добавить адреса в список Tenant Allow/Block с помощью PowerShell:
New-TenantAllowBlockListItems -ListType Sender -Block -Entries '[email protected]','[email protected]' -NoExpiration
Вывести заблокированные адреса:
Get-TenantAllowBlockListItems -ListType Sender -Block|select value,ExpirationDate
Пользователи из организации не смогут оправить письмо на эти адреса, а отправители получат NDR:
5.7.1 Your message can't be delivered because one or more recipients are blocked by your organization's tenant allow/block list policy.
Заблокированные отправители в ящике пользователя Exchange
Можно блокировать отправителей не на уровне всей организации Exchange, а в конкретном ящике пользователя. Список надежных и заблокированных отправителей можно настроить в OWA (Settings -> Mail-> Junk email). Чтобы заблокировать почту, просто добавьте email адреса или домены в список Blocked senders and domains и сохраните изменения.
То же самое можно сделать в Outlook. На основной вкладке нажмите на выпадающей список Нежелательные (Junk) и выберите Параметры нежелательной почты (Junk Email Options).
На вкладке Заблокированные отправители (Blocked Senders) добавьте в список адреса или домены, с которых вы не хотите получать письма.
Письма от таких отправителей будут автоматически перемещаться в папку Junk Email ящика.
В трейсинг логах появится сообщение:
The message was delivered to the Junk Email folder: FilteredAsSpam
Администратор Exchange может управлять списком заблокированных доменов и адресов конкретного ящика с помощью PowerShell.
Добавить в список нежелательных отправителей новый адрес:
Set-MailboxJunkEmailConfiguration -Identity avpetrov –BlockedSendersandDomains @{Add=”[email protected]”}
Удалить адрес из списка заблокированных отправителей:
Set-MailboxJunkEmailConfiguration -Identity avpetrov –BlockedSendersandDomains @{Remove=”[email protected]”}
Вывести список заблокированных адресов:
Get-MailboxJunkEmailConfiguration -Identity avpetrov | FL TrustedSendersAndDomains,BlockedSendersAndDomains
Очистить список заблокированных отправителей:
Set-MailboxJunkEmailConfiguration -Identity avpetrov -BlockedSendersAndDomains $null