- PVSM.RU - https://www.pvsm.ru -

Настройка сервиса автообнаружения

В прошлой статье [1] мы обозначили проблему со сложной и иногда контринтуитивной для обычных пользователей настройкой десктопных и, в особенности, мобильных почтовых клиентов для работы с электронной почтой по IMAP и, вместе с тем, заявили, что решение данной проблемы существует. Им является сервис автообнаружения – сервис, позволяющий совместимым почтовым клиентам, таким как Outlook (classic), Thunderbird и ряду других автоматически получать необходимые настройки почты после ввода имени учетной записи и корректного пароля. В данной статье мы расскажем о том, как правильно настроить сервис автообнаружения, какие сценарии его работы в каких случаях следует использовать.

Настройка сервиса автообнаружения - 1

В качестве решения для развертывания сервиса автообнаружения мы будем использовать SVZLink Autodiscover service. Оно представляет собой серверное приложение, необходимое для работы автообнаружения. Это бесплатное решение, входящее в состав SVZLink Suite.

Для того, чтобы обеспечить работу сервиса автообнаружения, администратору нужен веб-сервер с поддержкой PHP (по крайней мере не ниже v.7), а также при необходимости сделать соответствующие настройки в DNS.

Для всех А- и CNAME- записей в DNS которые будут использоваться для получения настроек электронной почты требуется покрывающий их TLS/SSL-сертификат.

Планирование развёртывания

Ранее мы уже останавливались на принципе работы службы автообнаружения настроек учетной записи почты. Важно отметить, что его поддержка реализуется на стороне почтовых клиентов и может отличаться от стандартной. При этом повлиять на работу алгоритма в почтовом клиенте со стороны почтового сервера нельзя. Именно поэтому перед внедрением службы автообнаружения следует протестировать совместимость используемых в организации почтовых клиентов с ней.

При использовании стандартной схемы на примере электронной почты user@domain.ru [2] задача системного администратора сводится к тому, чтобы позволить службе найти файл Autodiscover.xml в одной из возможных локаций:

  1. В пути https://domain.ru/Autodiscover/Autodiscover.xml [3] домена из доменной части электронной почты

  2. В поддомене autodiscover https://autodiscover.domain.ru/Autodiscover/Autodiscover.xml [4] домена из доменной части электронной почты.

  3. На сервере, доступном по отличному от домена из доменной части электронной почты адресу после HTTP-редиректа c http://autodiscover.domain.ru/autodiscover/autodiscover.xml [5]

  4. На сервере, доступном по отличному от домена из доменной части электронной почты адресу после перехода по ссылке, формируемой на основании данных из SRV-записи в DNS

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

Настройка сервиса автообнаружения - 2

Каждый из сценариев подходит для разных ситуаций:

  1. Для почтовой системы, используемой в рамках предприятия

  2. В случае, если почтовый домен пользователей совпадает с доменом сайта организации и сервер при этом поддерживает PHP, технически самым простым является первый сценарий.

    В таком случае администратору потребуется только разместить на сервере службу автообнаружения.

  3. В случае, если в организации используются один или несколько доменов, и расположить сервис автообнаружения на основном веб-сервере по тем или иным причинам нельзя, рекомендованным является второй сценарий.

    В таком случае администратору потребуется установить сервис автообнаружения на отдельный сервер или виртуальный хост, и создать в DNS А-записи для каждого из доменов в формате Autodiscover.domain.ru [6], которые ведут на этот хост.

    Важный нюанс здесь – сертификат, который будет использоваться на сервере или виртуальном хосте, должен покрывать все созданные A-записи и/или CNAME-записи.

  4. Для SaaS-провайдеров, когда тенантов очень много и часть из них пользуются вашим сервисом автообнаружения, по техническим причинам рекомендуемой схемой является HTTP-редирект. Причина в том, что число доменных имен, которые можно вписать в один сертификат ограничено и число тенантов может превышать это максимальное значение.

    При таком сценарии от конечного пользователя потребуется только создать соответствующие A (или CNAME) записи в DNS, всё остальное может быть сделано на серверах провайдера.

  5. Схема с DNS SRV является допустимой, однако следует учитывать, что разные почтовые клиенты могут по-разному реагировать на неуспешное получение данных при прохождении предыдущих этапов.

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

Следует учесть, что многие почтовые клиенты, особенно на мобильных устройствах, при автообнаружении настроек не используют стандартный алгоритм, а делают запрос через облако вендора, которое не только может использовать свои, отличные от стандартных алгоритмы поиска настроек почты, но и вести себя нестандартно при передаче результатов поиска почтовому клиенту. Например, оно сделать запрос в on-premise службу автообнаружения и не передать результат клиенту. Или сделать и передать, но только для подписчиков почтового продукта.

Настройка сервиса автообнаружения - 3

Кроме того, алгоритм автообнаружения может некорректно реагировать на некорректные ответы при прохождении стандартного алгоритма. Например, это может быть ошибка 404, но с не валидным сертификатом, или код 200 вместо 404. В связи с этим необходимо при использовании службы автообнаружения с выдачей настроек на этапах дальше первого, проследить, чтобы почтовый клиент получал ответ 404 в сочетании с корректным сертификатом сервера на первом этапе (https://domain.ru/autodiscover/autodiscover.xml [7]), а если настройка заходит дальше второго этапа, то доменное имя сервера Autodiscover.domain.ru [6] не должно существовать.

Вопросы безопасности

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

Главный минус такого подхода заключается в том, что не все почтовые клиенты поддерживают получение настроек с аутентификацией. Наиболее популярные десктопные почтовые клиенты (Outlook (classic) и Thunderbird) это поддерживают, мобильные клиенты - обычно не поддерживают.

Использование автообнаружения настроек электронной почты позволяет администратору решать, какой именно механизм шифрования будут использовать почтовые клиенты при подключении, а также указывать номер порта, который будет использоваться.

Использование нестандартных почтовых портов в сочетании с надежным шифрованием TLS(SSL)/STARTTLS позволяют повысить безопасность почтовой инфраструктуры, однако, опять же, могут привести к несовместимости сервиса почты с рядом почтовых клиентов.

При помощи сервиса автообнаружения системный администратор может отключить или сделать обязательным использование различных почтовых протоколов. Например, во избежание вопросов пользователей о том, почему удалилась их электронная почта с сервера, администратор может ограничить использование протокола POP3 (выключен в службе автообнаружения по умолчанию)

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

Также серверное приложение для автонастройки почтовых клиентов SVZLink Autodiscover service регистрирует каждое обращение к службе автонастройки. Системный администратор может указать место хранения лог-файла, а также настроить его детальность, ротацию и глубину хранения.

Настройка сервиса автообнаружения - 4

Доступные настройки

Настройка службы автообнаружения осуществляется посредством редактирования файла Autodiscover.ini, образец которого входит в дистрибутив. Именно здесь осуществляется тонкая настройка используемых портов, типов шифрования, необходимость аутентификации и так далее.

Например, для того, чтобы использовать нестандартные порты при автообнаружении, укажите их номера в настройках imapPort/pop3Port/smtpPort.

Для явного указания типа шифрования раскомментируйте параметры smtpEncryption/imapEncryption/pop3Encryption с нужными вам значениями SSL(cоответствует шифрованию TLS/SSL) или StartTLS

Для включения аутентификации при получении настроек установите для параметра authNeeded значение true.

Отметим, что для корректной работы аутентификации требуется актуальная версия библиотеки Net_IMAP. Причем библиотека, которая устанавливается из репозиториев операционной системы может не подойти из-за несовместимости с установленной версией PHP. В таком случае используйте библиотеку Net_IMAP, которая поставляется в PEAR, раскомментировав в файле Autodiscover.ini настройку pearPath. 

В случае, если вы разворачиваете сервис автообнаружения на публичных хостингах, вам также может потребоваться вручную указать путь к PEAR.  

Отдельно расскажем о настройках журналирования сервиса. По умолчанию оно отключено. Для его включения измените значение параметра enableBasicLog на true, а также укажите путь сохранения файла с логом в параметре logBasicFile.

Поддерживается ведение отладочного лога с четырьмя уровнями журналирования. Настройка дополнительного журналирования осуществляется в последнем сегменте файла Autodiscover.ini.

Требования к серверу и установка сервиса автообнаружения

Процесс установки сервиса достаточно подробно описан в документации, поставляемой в загружаемом дистрибутиве.

Вкратце процесс установки заключается в копировании файлов сервиса в root-папку выбранного веб-сервера и установку соответствующих прав на них.

Поскольку сервис автообнаружения поддерживает только защищенные соединения, на виртуальном хосте должен быть установлен валидный TLS/SSL-сертификат, покрывающий доменные имена, содержащиеся в A-записях DNS, по которым будут идти обращения к сервису.

На сервере необходимо включить механизм перезаписи URL. Его можно включить в конфигурации виртуального хоста или в файле .htaccess. Следует запретить доступ к каталогу скриптов, ограничив доступ ко всем файлам и подкаталогам, кроме файла "autodiscover.php". В качестве дополнительного уровня безопасности рекомендуется настроить переписывание запросов к каталогу скриптов в основной файл.

Веб-сервер должен уметь корректно обрабатывать нечувствительные к регистру URL с маской "/autodiscover/*", включая "/autodiscover/autodiscover.xml" и "/autodiscover/autodiscover.json".

Также в целях безопасности веб-сервер должен уметь удалять заголовок авторизации и предоставлять его службе автообнаружения, в противном случае аутентификация путем проверки учетных данных учетной записи на почтовом сервере не будет работать.

Пример конфигурации файла .htaccess для Apache. Для NGINX настройки аналогичны.

Скрытый текст

## Перезапись необходима и, вероятно, уже включена

RewriteEngine on

## Для сервиса автообнаружения

# Предотвращение взлома

RewriteRule ^autodiscover.script autodiscover.script/autodiscover.php [NC,L]

# Маппинг регистронезависимой автоподстановки autodiscover/* включая

# autodiscover/autodiscover.xml и autodiscover/autodiscover.json

RewriteRule ^autodiscover/.*$ autodiscover.script/autodiscover.php [NC,L]

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

#Может быть полезно для использования аутентификации
#для необходимых заголовков аутентификации в некоторых случаях
# (заголовок авторизации может быть удален обслуживаемой
#стороной, поэтому мы можем вручную разрешить их для подстраховки)

RewriteCond %{HTTP:Authorization} ^(.*)

RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]

Несмотря на то, что сервис автообнаружения является самостоятельным продуктом, который сам по себе решает задачу максимально упростить для пользователей подключение к электронной почте, еще одной его задачей является обеспечение работы плагина SVZLink Plugin for Outlook (classic), также входящего в состав SVZLink Suite. Этот плагин позволяет пользователям получать доступ к своим DAV-ресурсам в несколько кликов. О том, как этот плагин устанавливается, как настраивается и как работает, мы расскажем в следующей статье.

Автор: Zextras

Источник [8]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/servisy/426660

Ссылки в тексте:

[1] В прошлой статье: https://habr.com/ru/companies/Zextras/articles/930314/

[2] user@domain.ru: mailto:user@domain.ru

[3] https://domain.ru/Autodiscover/Autodiscover.xml: https://domain.ru/Autodiscover/Autodiscover.xml

[4] https://autodiscover.domain.ru/Autodiscover/Autodiscover.xml: https://autodiscover.domain.ru/Autodiscover/Autodiscover.xml

[5] http://autodiscover.domain.ru/autodiscover/autodiscover.xml: http://autodiscover.domain.ru/autodiscover/autodiscover.xml

[6] Autodiscover.domain.ru: http://Autodiscover.domain.ru

[7] https://domain.ru/autodiscover/autodiscover.xml: https://domain.ru/autodiscover/autodiscover.xml

[8] Источник: https://habr.com/ru/companies/Zextras/articles/932298/?utm_campaign=932298&utm_source=habrahabr&utm_medium=rss