Создание почтового домена в Zimbra и подключение почтового клиента


Установка, настройка и администрирование почтового сервера Zimbra
backup gita gita-dev.ru ssl zimbra обновление сертификата let's encrypt установка и настройка почтового сервера
 
 

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


(последние правки 1 месяц)

Как я уже говорил ранее, у меня опять подвернулся проект связанный с Zimbra Collabration Suite и я решил задокументировать типовые операции по управлению почтовым сервером и некоторые подводные камни и грабли с которыми я сталкиваюсь практически на каждом внедрении этого почтового сервера.

Создаем новый почтовый домен

В предыдущей статье "Установка и настройка почтового сервера Zimbra (часть первая - основы установки и настройки)", я рассматривал настройку так называемого технического домена и сейчас пришло время настроить реальный почтовый домен.

Пример настройки почтового домена.

Первое, что необходимо сделать, это внести данные о MX-записях в описание зоны DNS-сервера. Если вы сами управляете вашим DNS-сервером, то вам необходимо создать запись A и запись MX (или несколько MX-записей если у вас несколько почтовых серверов), в общем виде для моего домена это будет выглядеть следующим образом:

;
; BIND data file for gita-dev.ru domain
;
$TTL    604800
@       IN      SOA     master-1.gita-dev.ru. root.gita-dev.ru. (
                         100016         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@               IN      NS      master-1.gita-dev.ru.
@               IN      NS      aruba.gita-dev.ru.
master-1        IN      A       93.170.131.222
aruba           IN      A       94.177.216.44

;also list other computers
@                       IN      MX      10 mail.gita-dev.ru.
mail                    IN      A       93.170.131.222

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

Яндекс почта для домена настройки DNS

Просто запомните, что вам необходимо указать MX-запись и эта запись описывается двумя параметрами, приоритетом и именем сервера. Именно именем сервера, а не его IP-адресом и естественно соотношение DNS-имя -> IP-адрес так же должно быть описано.

После того, как вы прописали DNS-записи, подождите немного времени до того как они распространятся по корневым серверам в интернете. Вы можете использовать команду DIG для запроса сведений о MX-записях домена, например так:

# dig MX gita-dev.ru

В результате вы должны получить запись аналогичную внесенной в параметры DNS-зоны:

;; ANSWER SECTION:
gita-dev.ru.            21599   IN      MX      10 mail.gita-dev.ru.

Дополнительно можем убедиться, что имя хоста в свою очередь резолвится в ip-адрес:

# dig A mail.gita-dev.ru

Итак, мы все проверили. Все работает отлично и можем перейти в консоль администрирования Zimbra и создать почтовый домен, это все делается максимально просто и удобно в графическом web-интерфейсе. Перейдите "Консоль управления -> Настройка -> Домены", в правом верхнем углу нажмите значок шестеренки и выберите пункт "Создать".

Создать новый почтовый домен для почтового сервера Zimbra

Фактически все создание почтового домена при помощи мастера настройки сводится к заданию имени обслуживаемого домена.

Задаем имя нового почтового домена для почтового сервера Zimbra

И выбору почтового сервера который этот домен будет обслуживать.

Выбор почтового сервера который будет обслуживать ДНС-домен

Фактически выполнив настройку DNS-записей и использовав мастер настройки мы подготовили почтовый сервер который будет обслуживать нашу DNS-зону.

Создаем пользователей и алиасы

Перейдите в консоли управления "Главная -> Управление -> Учетные записи" и создайте пользователя почтового домена, для чего используйте значок шестеренки аналогично тому как мы добавили почтовый домен.

Создание пользователя в почтовом домене Zimbra

При создании пользователя вы можете задать достаточно много параметров, но обязательные это:

  • Имя учетной записи и домен
  • Фамилия
  • Пароль и подтверждение пароля

Все логично и понятно, аналогично мы можем создать алиас имени пользователя и список рассылки. Для алиаса (псевдоним в терминологии Zimbra) обязательным параметром является собственно псевдоним и целевая учетная запись.

Создание Alias в Zimbra mail server

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

Таких настроек в web-интерфейсе конечно же нет и нам прямая дорога в консоль нашего почтового сервера. Используйте следующие команды для изменения основного адреса куда отправляются оповещения почтового сервера Zimbra:

# su - zimbra
$ zmlocalconfig -e smtp_destination=anton@gita-dev.ru
$ zmlocalconfig -e av_notify_user=anton@gita-dev.ru
$ zmprov mcf zimbraBackupReportEmailRecipients anton@gita-dev.ru

Теперь мы перенастроили все оповещения отправляемые почтовым сервером на адрес простого непривилегированного пользователя.

Основы настройки параметров безопасности почтового сервера Zimbra

Сразу скажу о одной неоднозначной особенности про которую некоторые администраторы почтового сервера Zimbra не знают или периодически забывают. При установке почтового сервера Zimbra в доверительные сети (из которых можно делать relay) добавляется вся локальная подсеть (сетевого интерфейса который был задействован на этапе установки сервера), а это означает, что при установке на VPS провайдера все ваши соседи (например Adman выдает адреса с /24-ой подсетью) смогут слать через вас почту без авторизации и это фиаско.

Да честно говоря даже в рамках локальной сети использовать пересылку почты без авторизации это мягко говоря дурной тон, поэтому сразу после установки переходим в web-консоли управления "Главная -> Настройка -> Серверы", выбираем наш сервер и в его настройках переходим к пункту "Агент передачи сообщений".

Доверенные сети агента передачи сообщений

Обратите внимание на пункт "Доверенные сети агента передачи сообщений" и в моем случае он содержит следующие небезопасные записи:

127.0.0.0/8 [::1]/128 10.250.0.0/24

Логично, что необходимо изменить 10.250.0.0/24 на 10.250.0.8/32, где 10.250.0.8/32 это адрес сетевого интерфейса нашего сервера (возможно, что в вашем случае это будет белый внешний IP-адрес). Это первый момент на который обращаем внимание.

Второй момент, это подключение валидных SSL-сертификатов Let's encrypt и я этот момент уже рассматривал в статье "Установка и обновление сертификата Let's encrypt для почтового сервера Zimbra" и единственное чем хотелось бы дополнить статью, так это скриптом автоматического обновления сертификатов Let's encrypt который я использую на продакшн-серверах (можно его запускать раз в месяц используя Anacron для гарантированного выполнения раз в месяц).

#!/bin/sh

/etc/init.d/zimbra stop
cd /opt/
cp /etc/letsencrypt/live/mail.gita-dev.ru/* /opt/zimbra/ssl/letsencrypt/
chown zimbra:zimbra /opt/zimbra/ssl/letsencrypt/
cd /opt/zimbra/ssl/letsencrypt/
cat /opt/middle-cert.crt >> /opt/zimbra/ssl/letsencrypt/chain.pem
su - zimbra -c "cd /opt/zimbra/ssl/letsencrypt/ && /opt/zimbra/bin/zmcertmgr deploycrt comm cert.pem chain.pem"
/etc/init.d/zimbra start

Естественно, что вам понадобится сертификат middle-cert и его можно взять в статье по настройке Let's encrypt для Zimbra.

Настройка почтового клиента

Сертификаты у нас теперь валидные, клиенты ругаться не будут и пришло время разобраться, а какие механизмы авторизации наш сервер вообще понимает (и это кстати был вопрос из за которого я вообще сел эту статью писать). Рассмотрим типовой клиент Mozilla Thunderbird и его механизм типовой автонастройки почтового аккаунта.

Подключение почтового аккаунта Zimbra в Mozzila Thunderbird

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

Автонастройка почтового аккаунта в настольнов почтовом клиенте

Естественно, что автонастройка хорошо проходит только в идеальном мире, а в нашем случае более вероятна представленная выше ситуация и это связано с тем, что ваш домен не предоставляет XML-файл авто конфигурирования почтового клиента и не внесен в базу данных провайдеров Mozilla. Самым простым логичным методом является создание XML-файла автонастройки который будет передаваться по запросу почтового клиента и к этому вопросы мы еще вернемся, а сейчас пока в "ручном режиме" проверим какие механизмы авторизации и шифрования поддерживаются Mozilla Thunderbird.

Нас интересуют механизмы авторизации и шифрования поддерживаемые Mozilla Thunderbird для протоколов IMAP и SMTP.

IMAP- протокол:

Порт 143

Зашита соединения None и метод авторизации Пароль без защиты передачи - самый небезопасный метод и использовать его смысла нет да и честно говоря он и не работает по умолчанию (вы получите сообщение, что такой метод авторизации не поддерживается). Вы можете его конечно и включить, но я вам категорически не рекомендую этого делать.

Зашита соединения STARTTLS и метод авторизации Пароль без защиты передачи - это как раз распространенный метод авторизации и он работает из коробки.

Порт 993

Зашита соединения SSL/TLS и метод авторизации Пароль без защиты передачи - тоже работает

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

Настройки Thunderbird для безопасного подключения к почтовому серверу Zimbra

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

SMTP-протокол

Порт 25:

Зашита соединения None и метод авторизации Пароль без защиты передачи - аналогично IMAP протоколу небезопасный и работать не будет.

Зашита соединения STARTTLS и метод авторизации Пароль без защиты передачи - метод поддерживается

Порт 465:

Зашита соединения SSL/TLS и метод авторизации Пароль без защиты передачи - тоже работает

Настройка SMTP-подключения к почтовому серверу Zimbra

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

Моя официальная страница на FaceBook
Мой микроблог в твиттер

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


Есть вопросы?
Спрашивайте и я обязательно вам отвечу!

* Поля обязательные для заполнения .