Опыт замены Microsoft Outlook на Mozilla Thunderbird с сервером Exchange

Задача


Имеется компания с серверами Windows Server. На них поднят DNS, WINS, Active Directory, CA, Exchange. На пользовательских местах установлен Office с Outlook для обмена информацией, поскольку прямой связи у отделов нет и возможность записи на внешние носители существенно ограничена. Всё лицензионное. Довольно типичная ситуация для средних компаний.

В условиях экономии средств возник вопрос достаточной замены компонента Microsoft Office — Outlook. Преимуществ Outlook достаточно много: сквозная аутентификация, удобный и понятный интерфейс, автоматическая архивация, гибкая и полноценная интеграция с Exchange, в которую входят динамические адресные книги, общие папки и прочее. Заменить такой продукт достаточно сложно без потерь в функциональности.

Реализация


После некоторых сравнений альтернативным клиентом был выбран Mozilla Thunderbird (в данный момент версия 31) как бесплатный, открытый проект, поддерживающий IMAP и адресную книгу LDAP, а также с возможностью использования дополнений.

Пароль

Пароль зашивается в клиент и его можно посмотреть в настройках. Да, это снижает безопасность, но пользователи почты Thunderbird имеют гостевые доменные учётные записи, а также не являются администраторами на локальных компьютерах. Кроме того, планируется внедрить централизованную настройку, где просмотр пароля будет заблокирован. Это посчиталось приемлемым.

Учётная запись почты

Thunderbird некорректно работает с русскими логинами Windows. Поэтому предварительно придётся переименовать доменные логины пользователей Thunderbird в английский эквивалент. Рекомендуется делать логины точно такими, как и почты, для упрощения настройки, хотя это и не обязательно, тем более если хост доменный, это не имеет значения.

На сервере Exchange имеется IIS для доступа к почте через веб-интерфейс — Outlook Web Access. Удобная вещь для удалённой работы с почтой при условии, что почта за какой-то период хранится на сервере. Но отсутствие возможности архивирования почты из обозревателя не позволяет сделать этот режим работы постоянным, поскольку аппаратные ресурсы сервера Exchange не безграничны, да и не предназначен он для хранения. У Thunderbird имеется несколько режимов для помощи настройки учётной записи. Проще всего сделать псевдоним (CNAME) DNS autoconfig на сервере Exchange: autoconfig.company.loc. А на самом сервере в IIS создать папку mail с файлом config-v1.1.xml. Содержимое файла настраиватся достаточно просто и описано на сайте Mozilla. В моём случае получилось такое:

<?xml version="1.0" encoding="UTF-8"?>

<clientConfig version="1.1">
  <emailProvider id="company.loc">
    <domain>company.loc</domain>
    <displayName>Company Exchange Server</displayName>
    <displayShortName>Company e-mail</displayShortName>
    <incomingServer type="imap">
      <hostname>mail.company.loc</hostname>
      <port>993</port>
      <socketType>SSL</socketType>
      <authentication>NTLM</authentication>
      <username>%EMAILLOCALPART%</username>
    </incomingServer>
    <incomingServer type="imap">
      <hostname>mail.company.loc</hostname>
      <port>143</port>
      <socketType>STARTTLS</socketType>
      <authentication>NTLM</authentication>
      <username>%EMAILLOCALPART%</username>
    </incomingServer>
    <incomingServer type="pop3">
      <hostname>mail.company.loc</hostname>
      <port>995</port>
      <socketType>SSL</socketType>
      <authentication>NTLM</authentication>
      <username>%EMAILLOCALPART%</username>
      <pop3>
           <leaveMessagesOnServer>true</leaveMessagesOnServer>
           <downloadOnBiff>true</downloadOnBiff>
           <daysToLeaveMessagesOnServer>14</daysToLeaveMessagesOnServer>
      </pop3>
    </incomingServer>
    <outgoingServer type="smtp">
      <hostname>mail.company.loc</hostname>
      <port>587</port>
      <socketType>STARTTLS</socketType>
      <authentication>NTLM</authentication>
      <username>%EMAILLOCALPART%</username>
    </outgoingServer>
  </emailProvider>
</clientConfig>


Папку mail стоит сделать виртуальной и явно отключить требование SSL для неё.

Стоит упомянуть, что у нас, как и у многих, имя домена извне отличается от имени локального домена внутри периметра. Но почта должна именоваться везде одинаково. Поэтому внутри Exchange учётные записи имеют по два адреса: внешний и внутренний. Внешний используется по умолчанию. (Exchange также умеет использовать разные DNS для внутренней и внешней пересылки). Отсюда тонкость; адреса пользователей при настройке указываются внешние, поэтому в файле настройки для имени пользователя используется только имя %EMAILLOCALPART%. Кроме того, псевдоним (CNAME) autoconfig необходимо также создать в копии внешнего домена корневой зоны локального DNS.

Видно, что я решил использовать два типа доступа к почте: IMAP и POP3. Дело в том, что иногда попадаются очень активные пользователи с очень большим объёмом почты. Если такой пользователь не использует почту нигде, кроме своего ПК на рабочем месте (не забываем про OWA), то в случае Outlook создаются локальные папки и назначаются основными для всех учётных записей. Таким образом вся почта будет удаляться с сервера Exchange и храниться непосредственно на ПК пользователя, что не потребует какой-то дополнительной архивации, но привязывает пользователя к ПК и повышает вероятность потери почты, в случае порчи жёсткого диска. В противном случае требуется индивидуальная настройка лимитов на Exchange для таких пользователей, чего я всячески пытаюсь избежать. Но всего не предусмотришь. Поэтому для Thunderbird также оставил возможность простой работы с почтой в виде POP3. Хотя до сих пор ещё не пригодился, откровенно говоря.

Всё это позволит быстро выбирать необходимый способ доступа при настройке учётной записи в Thunderbird. Если хост входит в домен AD, то лучше, всё же, подстроить, выбрав способ аутентификации «Kerberos / GSSAPI» и не указывать пароль в в форме.

Доступ к Exchange по IMAP и POP3 настраивается очень просто и не требует особого рассмотрения. Разве что дополнительно придётся настроить сертификат с соответствующими масками имени сервера для коннекторов. А также потребовалась некоторая дополнительная настройка коннектора SMTP c TLS на Exchange 2007:
Get-ReceiveConnector “Client TLS” | Add-ADPermission –User “authenticated users”  -ExtendedRights ms-Exch-SMTP-Accept-Authoritative-Domain-Sender

Иначе Thunderbird не мог получить доступ по SMTP как не авторизованный.

Профиль и сертификат

Первый запуск свежеустановленного клиента Thunderbird производится с ключом -p для указания пути для профиля почты. Профиль почты по умолчанию создаётся на системном разделе, что для нас является неприемлемым. Ключ позволяет указать папку на пользовательском разделе для хранения профиля Thunderbird (в нашем случае — папка d:\Mail). Предварительно стоит убедиться, что пользователь имеет право изменения в данной папке (права NTFS).

"c:\Program Files (x86)\Mozilla Thunderbird\thunderbird.exe"  -p

Стоит напомнить, что команду нужно выполнять из пользовательского контекста, а не административного. Были прецеденты.

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

Адресная книга LDAP

Затем необходимо настроить адресную книгу LDAP. В интернете масса материалов по данной теме, но я не нашёл ни одного полноценного документа с адекватными параметрами, поэтому привожу здесь свой.

1. Открываем окно Адресная книга.
2. Вызываем Инструменты -> Настройки -> Составление -> Автодополнение адресов и ставим галочку на Сервере каталогов

Переключатели Microsoft Exchange Global Addressbook и Contacts на картинке имеются из-за тестируемого дополнения ExQuilla — подключение к Exchange через http. Результат — скорость работы неудовлетворительна при большом объёме почты.

3. Собственно создаём подключение к LDAP:

Всё очевидно. Порт без SSL: 3268. Нужно учитывать, что настройка с SSL работает ощутимо медленнее.

Далее переключаемся на вкладку Дополнительно:

Здесь нужно сказать, что количество отображаемых результатов выбиралось из соображений количества клиентских лицензий на Exchange плюс контакты Active Directory с группами и небольшой запас. Способ аутентификации лучше выбрать «Простой» если ПК не входит в домен AD, иначе рекомендую Kerberos (GSSAPI), при этом необходимо убрать имя пользователя на вкладке «Основное».

Насчёт фильтра. Самое интересное. Я использую в Exchange динамические списки рассылки, кроме того в Active Directory имеются множество временно или постоянно отключенных учётных записей, а также некоторые учётные записи исключены из видимости в адресной книге по разным необходимостям, плюс контакты. Получается следующий фильтр:
(&(mailnickname=*)(|(objectcategory=person)(objectclass=msExchDynamicDistributionList))(!(userAccountControl:1.2.840.113556.1.4.803:=2))(!(msExchHideFromAddressLists=TRUE)))

Закрываем диалоги. Теперь откроем свежесозданную адресную книгу и набираем @ в строке поиска не нажимая Enter, поскольку ввод пойдёт в диалог с паролем. В диалоге следует набрать пароль пользователя и поставить галочку Сохранить пароль. Должен появиться список адресатов. Вполне хорошо работает. Достаточно начать набирать имя или адрес получателя в строке Кому: нового письма, чтобы получить список возможных вариантов.

Внимание! Если в Active Directory вы ограничили список хостов для учётной записи, на которые ей можно заходить, то для доступа к LDAP на PDC потребуется добавить имя контроллера в этот список.

Далее. Создаём учётную запись пользователя. Если всё предварительно настроено правильно, то вариант с правильной настройкой предложится моментально.

Остаётся нажать готово и, если ранее был подключен корневой сертификат, получим подключенную почту. Иначе придётся подтверждать каждый сертификат.

Архивирование и другие дополнения

Настраиваем подписанные папки. Пока идёт синхронизация, настраиваем архивирование в локальные папки: Параметры учётной записи -> Копии и папки -> Архивы сообщений — Хранить архивированные сообщения в: — папке «Архивы» на: Локальные папки. Архивирование можно разделяя по папкам годов, месяцев. В обычном режиме Thunderbird может архивировать письма только вручную. Автоархивирования можно добиться установив специальное дополнение (plugin) Awesome Auto Archive. Настраивается вполне просто.

Также устанавливаю следующие дополнения:

Получаем работоспособный почтовый клиент. Доступ к общим папкам можно получить через OWA, создав ссылку в обозревателе или на рабочем столе на соответствующий раздел OWA:
https://mail.company.loc/Public


Импорт PST

Теперь к вопросу о импорте ранее архивированной почты Outlook в Thunderbird. Описанный способ с установкой 30-дневнего Outlook не работает. Thunderbird вываливается, генерируя исключение. Проверено множество различных конфигураций. Кроме того, исключён импорт на Windows x64. Пришлось идти кружным путём. Есть рабочий способ, но он достаточно насыщен манипуляциями.
  1. Скачивается бесплатное приложение Outlook Viewer, которое умеет читать .pst файлы — архивы Outlook. Устанавливается на ПК для манипуляций.
  2. По сети берётся клиентский pst, открывается и письма экспортируются в папку с подпапками (подпапки могут быть внутри архива) в формате EML с вложениями. Это ещё полдела!
  3. Затем во временно установленном Thunderbird с установленным дополнением ImportExportTools создаём локальную папку, например Архив-Outlook и, правым кликом на ней вызываем меню импорта дополнения:
  4. Выбираем папку с экспортированными ранее письмами и импортируем.
  5. Теперь правым кликом на папке Архив-Outlook вызываем свойства папки и смотрим где она находится. Определив, переносим (файлы с именем папки, и подкаталоги с именем папки) на ПК пользователя в профиль пользователя в локальные папки. Наша папка с почтой из архива должна появиться у пользователя в Thunderbird после перезапуска.


Думаю внедрить централизованную конфигурацию пользователей.

Работа по обкатке ещё идёт, так что могу вносить дополнения и изменения.
AdBlock has stolen the banner, but banners are not teeth — they will be back

More
Ads

Comments 39

    +6
    А вы не боитесь, что ваши пользователи взвоют, если вы у них отберёте календари, планирование встреч, отображение присутствия, телефонный справочник?

    Не будет ли потеря в эффективности совместной работы существеннее, чем стоимость лицензии на Аутлук?
      +1
      Поддерживаю. В случае существования единой инфраструктуры на базе решений от майкрософт выламывать из нее один кусок без переделки всего остального — себе дороже.
      0
      Решение об установке бесплатного клиента принимало руководство, после рекомендаций и предупреждений с моей стороны. Поэтому для «люстрации» начальство само отбирало добровольцев. Моё дело — работоспособность системы. Отбоялся своё.
        0
        А руководство объяснило зачем? Если компания переходит на либр офис или что-то подобное, то это понятно. Но избавляться от Outlook при живом Exchange и остатками офисного пакета, это реально требующий обоснования шаг.

        Несколько лет назад сам внедрял thunderbird и openoffice как раз с целью экономии средств на офисном пакете
          0
          Избавляемся от «лишних» офисов, после очередной проверки. Наплодилось, не уследишь.
          Именно либрофис я и ставлю в комплекте. Вы правы.
        0
        Спасибо, Exchange не используем, но ваша инструкция здорово помогла мне настроить подключение Thunderbird к LDAP серверу Synology.
          0
          Да не за что. Всё это есть в сети. Я просто ингегрировал в одну статью. Чтобы не забыть. Да и почин, однако.
          0
          Здесь нужно сказать, что количество отображаемых результатов выбиралось из соображений количества клиентских лицензий на Exchange.

          Что то я не понял — можно уточнить:
          Данное число устанавливает LDAP query limit. LDAP запрос отправляется на контроллер домена к глобальному каталогу. (там, кстати, на стороне сервера по-умолчанию лимит 1000 стоит, если мне не изменяет память). При чём тут количество лицензий Exchange?
            0
            По умолчанию, в клиенте Thunderbird предлагается лимит 100. Можете установить 1000, я не возражаю. Но в моём случае разумнее было опираться на реальные значения.
              0
              Можете установить 1000

              У нас 10 стоит — хватает.
              У меня вопрос больше как это связано с лицензированием Exchange (я в нём не эксперт — интересно)
                0
                В Exchange лицензируется отдельно сервер, причём независимо от роли (Edge стоит как полноценный сервер), отдельно клиентские учётки, отдельно гостевой коннектор. Офис, само собой — отдельная песня.
              0
              И ещё:
              Далее переключаемся на вкладку Дополнительно:

              Способ аутентификации лучше Kerberos поставить.
                0
                Для адресной книги не срабатывает, я пробовал. А вот для учётной записи вполне можно заменить NTLM на Kerberos. Работает. Только ещё не тестировал на XP.
                  0
                  Да, как я и думал. Kerberos в IMAP не работает на windows xp без домена. NTLM универсальнее.
                0
                Тогда уж сервер на какой-нибудь зимбре/openexchange/просто IMAP сделать, зачем скрещивать ужа с ежом?
                  0
                  Вы не поняли. Уже имеется инфраструктура Microsoft. Просто требуется расширить количество клиентов. Office не дешёвое удовольствие.
                    0
                    Я всё понял.
                    Просто я бы никогда не стал городить такой зоопарк у себя в сети — раз купили эксчендж и аутлук, значит пусть покупают и дальше, зачем этот геморрой?
                    Гомогенность — залог долгой и спокойной работы инфраструктуры.
                      0
                      Согласен. Это было одним из моих аргументов против. Но начальству виднее.
                        0
                        Ну, когда начальство пытается меня нагрузить дополнительной работой, особенно глупой, то я начинаю очень сильно упираться вплоть до требования повышения зарплаты за доп. обязанности.

                        Ибо начальство может сэкономить денег на офисе и получить премию на этом, например. А админу в итоге достаётся только геморрой.
                          +1
                          Мне не напряжно. Даже интереснее.
                            0
                            думаю что делать выводы пока рано…
                      –1
                      При покупке клиентских лицензий к Exchange серверу вы покупаете и лицензии на Outlook, они уже входят в стоимость. Так что непонятно зачем огород городить.
                  0
                  Split-brain DNS is the use of the same DNS domain for both Internet and intranet resources.
                    0
                    O, yes. You're right. Revised.
                    0
                    А зачем WINS?
                      0
                      рудимент
                      0
                      Немного дополню про LDAP, у себя решал эту же задачу. Пароль пользователя там сохранять счел неразумным, так как пароли у меня пользователи периодически меняют. Поэтому завел одного дополнительного доменного пользователя и вбил именно его пароль. В этом решении тоже есть минус — этот пароль легко узнать, но пользователь в правах сильно ограничен, поэтому пока вроде как так все и работает. Но так при смене пароля у пользователя не появляется запрос на ввод пароля.

                      У меня правда не Exchange его сочли слишком дорогим, а сервис от яндекса почта для домена.
                        0
                        Есть ещё существенный минус:
                        при блокировке этого пользователя «залихорадит» адресную книгу у всех.

                        Как вариант: настроить анонимный доступ к каталогу и порезать права анонимов до минимума. Естественно это возможно если LDAP доступен только изнутри периметра. Конечно этот вариант тоже не без минусов… но ИМХО стабильность работы адресной книги будет выше.
                          0
                          Тоже верно.
                          0
                          Вполне разумно. Я на первых порах тоже так сделал. Но потом решил, всё же, вернуться к одной учётке на хосте. Если поменять пароль у такого пользователя, то вам придётся менять его на всех клиентах. Мне показалось это потенциально нецелесообразным.
                            0
                            У вас пользователи пароли не меняют? Пока по факту есть гипотетические проблемы при блокировке пользователя или смены его пароля или же гарантированные объяснения, что нужно вводить пароль после его смены и в почтовом клиенте.

                            Времени на это суммарно пользователи потратят много, неудобств это создаст всем, и айтишникам в том числе. Поэтому пока так. Анонимный доступ к LDAP как-то подспудно делать не хочется :).
                              +1
                              Мне кажется, что вас реально не волнует этот вопрос. Хотя… Кто-то меняет, кто-то не может менять. Не вижу катастрофы в том, что система один лишний раз попросит пароль пользователя. В чём сложность то? Какие нужны объяснения для вопроса системы ввести пароль? Если пользователь настолько занят, что не может ввести пароль, то у таких пользователей гарантированно не будет стоять Thunderbird или любая другая система, не интегрированная в Windows. Причём нужно помнить, что доменный пользователь вводит пароль постоянно, при блокировке экрана. Это тоже напрягает и требует объяснений? Если уж и это является траблом, то тогда стоит раскошелится на аппаратную защиту со смарт картой, что, впрочем, не имеет отношения к сабжу.

                              Хочу заметить, что реальной проблемой является не операция смены пароля, которая инициируется самим пользователем и он, соответственно, готов к вопросам системы по этому поводу, а смена концепции адресной книги. Логичный справочник Outlook, понятный и доступный, содержащий множество динамических адресных списков, легко создаваемых в Exchange заменяется на примитивную систему поиска. Вот где реально приходится объяснять. И это по настоящему напрягает. Пока ещё не смог ничего придумать по этому поводу. Пишу письма с разьяснениями.
                                0
                                Квалификация пользователей, вот что волнует. У меня не ИТ компания, основной профиль в другом, квалификация пользователей как правило весьма невысока, сетевой принтер самостоятельно найти по имени и адресу не могут, вбить адрес сервера для RDP подключения. Но это и не их задача по большому счету. Люди приносят деньги не подключением сетевых принтеров, их я как и GPO разверну, так же как и RDP подключения. За создание комфортной среды для выполнения служебных обязанностей деньги платят мне.

                                Замены динамическим книгам нет :(. Разве что попробовать поиграть с запросами и подключать несколько книг LDAP? У меня до 100 адресов просто стоит фильтр (mail=*) т.е. показывает всех. Но почему бы не сделать еще пару книг? Переключаться между ними не так удобно правда будет.
                          0
                          А чем плох веб-доступ к exchange?
                          Тем более в 2007 он вполне даже удобнее gmail. И календарь и все остальное там присутсвует?
                            0
                            Пробовал. Там нет автоматической очистки ящика в архив на локальном диске — архивирования. Аккаунт переполняется довольно быстро, а заставлять пользователя заниматься сохранением беcполезно. OWA полезен как дополнение к основному, для временного доступа, скажем с ноутбука или дома.
                              0
                              Тем не менее, OWA не заменим про работе с общими папками, я об этом написал в статье.

                            Only users with full accounts can post comments. Log in, please.