Расширяем возможности соединителя получения

Все, кто хотя бы немного работал с Exchange, хорошо или не очень хорошо представляют себе, что такое соединитель получения (или receive connector). Основная его функция — это предоставление внешним клиентам интерфейса для подключения к серверу по протоколу SMTP и коммуникации этих клиентов с транспортной службой Exchange. Соединители получения имеют определенный набор прав, заданный в Active Directory, которым определяется набор действий, доступный авторизованным (и неавторизованным) на этом соединителе пользователям. Именно об этих правах я сегодня и расскажу.

Прежде всего давайте собственно ознакомимся со всем списком прав здесь. Чтобы просмотреть разрешения на вашем коннекторе, вы можете пойти двумя путями. Первый: открыть разрешения контейнера CN=Configuration -> CN=Service -> CN=Microsoft Exchange -> CN=OrgName -> CN=Administrative Group -> CN=Servers -> CN=ServerName -> CN=Protocols -> CN=SMTP Receive Connectors и ставить галочки там. Второй: воспользоваться EMS — для получения разрешений используем следующий командлет, для удобства также сортирующий все по пользователю.

Get-ReceiveConnector name | Get-ADPermission | sort User| ft Identity,User,ExtendedRights,Deny -AutoSize

Для установки разрешения мы используем похожий командлет (например для ms-Exch-SMTP-Submit):

Get-ReceiveConnector name | Add-ADPermission -User Username -ExtendedRights "ms-Exch-SMTP-Submit"

Ну а теперь перейдем к основным правам, о которых я хотел написать:

ms-exch-smtp-submit Понятно из описания — без него отправка на этот коннектор письма просто не пройдет
ms-Exch-SMTP-Accept-Any-Recipient Это разрешение даст право юзеру, которому оно выдано, отправлять письма на любые домены, независимо от того, являются ли эти домены авторитативными для Exchange. Если вам нужно сделать из Exchange сервера релей, то это именно то разрешение, которое нужно выставить на коннекторе, чтобы позволить  другим серверам отправку почты через Exchange.
ms-Exch-SMTP-Accept-Any-Sender Это разрешение даст право юзеру, которому оно выдано, отправлять письма, используя при этом любое имя. То есть отправляя письмо, авторизовавшись под учеткой test@test.ru вы сможете представиться как admin@microsoft.com, и ваше письмо будет успешно принято коннектором.
ms-Exch-SMTP-Accept-Authoritative-Domain-Sender Это разрешение позволяет клиенту отправлять письма, представляясь доменом, авторитативным для Exchange. Кстати дефолтный коннектор, слушающий 25 порт имеет это разрешения для анонимного логина. То есть, если у вашего домена нет SPF записи и вы не уберете это разрешение с коннектора по умолчанию — то вам легко можно отправлять письма от имени вашего домена извне. Не верите — проверьте telnet’ом отправку с любого сервера, проходящего PTR проверку, на ваш 25 порт.
ms-Exch-Accept-Headers-Routing Если это разрешение отсутствует, то из полученного письма будут обрезаны заголовки маршрутизации.
ms-Exch-Bypass-Message-Size-Limit Данное разрешение позволяет игнорировать ограничение на размер принимаемого сообщения от клиента, которому оно выдано.
Ms-Exch-Bypass-Anti-Spam Данное разрешение позволяет клиенту, его имеющему, отправлять письма без прохождения через анти-спам проверки Exchange.

Ознакомившись с этими правами мы можем более детально манипулировать вашими соединителями. Также становится очевидно, что если у вас не внедрена проверка SPF, то коннектор, слушающий 25 порт по умолчанию свободно примет любое сообщение злоумышленника, отправленное от имени вашего домена, а это даже не дыра, а ДЫРЕНЬ в безопасности вашей организации.

Если вы хотите выдавать права конкретным пользователям, то явно их указывайте при добавлении разрешения. Если же вам нужно дать право для всех или для анонимных пользователей — пользуйтесь соотвествующими группами, например «NT AUTHORITY\ANONYMOUS LOGON». В частности, именно для этой группы вам нужно удалить разрешение «ms-Exch-SMTP-Accept-Authoritative-Domain-Sender» чтобы избежать ситуации, описанной в прошлом абзаце (после снятия разрешения снимется галочка анонимные в GUI — не волнуйтесь, так и должно быть).

Ну и напоследок командлет, которым вы можете выдать право анонимного релея через какой-либо соединитель получения:

Get-ReceiveConnector name | Add-ADPermission -User "NT AUTHORITY\ANONYMOUS LOGON" -ExtendedRights "ms-Exch-SMTP-Accept-Any-Recipient"

Оставить комментарий