• DevOps
  • Защита информации
  • ИТ-поддержка
  • Установка и настройка Zimbra на CentOS 7

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

    Нужна помощь? Настройки Zimbra и обслуживание почтовых серверов мы осуществляем в рамках услуги ИТ-аутсорсинг. Также возможны разовые проектные работы или аренда почтового сервера Microsoft Exchange.

    Настраиваем CentOS

    Прежде чем устанавливать Zimbra, настроим сам сервер под управлением CentOS. Подготовка включает в себя следующие этапы:

    1. Отключаем Selinux. Selinux в активном режиме не позволит корректно произвести установку Zimbra, поэтому его следует отключить. Для этого воспользуемся следующей командой:
      # sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
      После этого перезагружаем сервер командой:
      # shutdown -r now
    2. Настраиваем порты. Zimbra – это почтовый сервер поэтому для его корректной работы необходимо открыть ряд стандартных портов, используемых для отправки, загрузки, защиты и т.д. Помимо этого Zimbra, как панели управления требуется открыть ряд других, специфических портов для работы через веб-интерфейс.
      # firewall-cmd --permanent --add-port={25,80,110,143,443,465,587,993,995,5222,5223,9071,7071,8443,7143,7993,7110,7995}/tcp
    3. Указываем имя сервера. Во избежание ошибки, которая может возникнуть в процессе установки Zimbra, очень важным пунктом становится внесение записи о сервере в локальный файл hosts. Для этого выполним следующее:
      1. Зададим FQDN-имя сервера:
      # hostnamectl set-hostname zimbra.mydomain.ru
      2. Пропишем ip-адрес а файле hosts:
      # vi /etc/hosts
      После подготовки сервера можем перейти к следующим этапам установки и настройки почтового сервера Zimbra.

    Настраиваем DNS

    Важной частью при настройке домена является указание DNS записей. Без их внесения корректный обмен почтой невозможен. Для Zimbra требуются следующие типы записей:

    1. MX. Данный тип записи, используя протокол SMTP, позволяет маршрутизацию электронной почты, определяет почтовый сервер для домена.
      @ MX 10 mail 3600
    2. A. Указывает на соответствие ip-адреса сервера и доменного имени. В нашем примере это сервер zimbra.mydomain.ru, который доступен по внешнему ip-адресу в сеть интернет.
      @ A (ip-адрес) 3600
      mail A (ip-адрес) 3600
      www A (ip-адрес) 3600
      
    3. PTR. Данная запись разрешает обратное преобразование ip-адреса в доменное имя. Она необходима для подтверждения отправителя почты.
      (ip-адрес) PTR zimbra.mydomain.ru
    4. SPF. Запись содержит в себе список доверенных серверов, которым разрешена отправка почты с данного доменного имени. Также здесь хранятся сведения о механизме обработки писем, которые отправляются с других серверов. Корректно настроенная SPF запись гарантирует снижение риска отправки спама третьими лицами от вашего домена.
      @ TXT v=spf1 ip4:(ip-адрес) -all
    5. DKIM. Еще один стандарт записи для защиты электронной почты, используемый для подтверждения владельца доменного имени. Сущность метода заключается в расшифровке кода письма специальной последовательностью, которая хранится в TXT-записи на DNS.
    6. DMARC. Запись формата TXT в зоне доменного имени, которая определяет политику обработки исходящих писем. Запись необходима для сохранности репутации домена.

    Загрузка дистрибутива Zimbra и установка

    1. На странице загрузки официального сайта Zimbra копируем ссылку дистрибутива. Скопированной ссылкой загружаем дистрибутив:
      # wget https://files.zimbra.com/downloads/8.8.15_GA/zcs-NETWORK-8.8.15_GA_3869.UBUNTU18_64.20190918004220.tgz
    2. После загрузки распаковываем архив с файлами для установки:
      # tar -xzvf zcs-*.tgz
    3. Далее перейдем в директорию куда распаковали наш архив:
      # cd zcs-*/
    4. Следующей командой запускаем процесс установки:
      # ./install.sh
    5. Принимаем отображенное лицензионное соглашение:
      Do you agree with the terms of the software license agreement? [N] Y
      
    6. Подтверждаем использование репозитория от Zimbra:
      Use Zimbra's package repository [Y] Y
    7. Отмечаем необходимые компоненты:
      Install zimbra-ldap [Y] Y
      Install zimbra-logger [Y] Y
      Install zimbra-mta [Y] Y
      Install zimbra-dnscache [Y] Y
      Install zimbra-snmp [Y] Y
      Install zimbra-store [Y] Y
      Install zimbra-apache [Y] Y
      Install zimbra-spell [Y] Y
      Install zimbra-convertd [Y] Y
      Install zimbra-memcached [Y] Y
      Install zimbra-proxy [Y] Y
      Install zimbra-archiving [N] Y
      Install zimbra-drive [Y] Y
      Install zimbra-imapd (BETA - for evaluation only) [N] N
      Install zimbra-network-modules-ng [Y] Y
      Install zimbra-talk [Y] Y
      
    8. Подтверждаем модификацию:
      The system will be modified.  Continue? [N] Y
    9. Ждем окончания процесса. В случае отсутствия записи MX для домена, появится предупреждение:
      It is suggested that the domain name have an MX record configured in DNS
    10. Даем отрицательный ответ на требование установщика изменить домен:
      Change domain name? [Yes] No
    11. Далее на экране отобразится меню с настройкой Zimbra:
      Main menu
      
         1) Common Configuration:                                                  
         2) zimbra-ldap:                             Enabled                       
         3) zimbra-logger:                           Enabled                       
         4) zimbra-mta:                              Enabled                       
         5) zimbra-dnscache:                         Enabled                       
         6) zimbra-snmp:                             Enabled                       
         7) zimbra-store:                            Enabled                       
              +Create Admin User:                    yes                           
              +Admin user to create:                 [email protected]
      ******* +Admin Password                        UNSET                         
              +Anti-virus quarantine user:           [email protected]
              +Enable automated spam training:       yes                           
              +Spam training user:                   [email protected]
              +Non-spam(Ham) training user:          [email protected]
              +SMTP host:                            zimbra.mydomain.ru
              +Web server HTTP port:                 8080                          
              +Web server HTTPS port:                8443                          
              +Web server mode:                      https                         
              +IMAP server port:                     7143                          
              +IMAP server SSL port:                 7993                          
              +POP server port:                      7110                          
              +POP server SSL port:                  7995                          
              +Use spell check server:               yes                           
              +Spell server URL:                     http://zimbra.mydomain.ru:7780/aspell.php
              +Enable version update checks:         TRUE                          
              +Enable version update notifications:  TRUE                          
              +Version update notification email:    [email protected]
              +Version update source email:          [email protected]
              +Install mailstore (service webapp):   yes                           
              +Install UI (zimbra,zimbraAdmin webapps): yes                           
      ******* +License filename:                     UNSET                         
      
         8) zimbra-spell:                            Enabled                       
         9) zimbra-convertd:                         Enabled                       
        10) zimbra-proxy:                            Enabled                       
        11) Default Class of Service Configuration:                                
        12) Enable default backup schedule:          yes                           
         s) Save config to file                                                    
         x) Expand menu                                                            
         q) Quit
      
    12. Теперь настроим обязательные настройки, отмеченные звездочками в пункте «7». В нашем случае это только задать пароль администратора, так как собираемся использовать бесплатную версию продукта. Вводим номер пункта для настройки – «7».
      Address unconfigured (**) items  (? - help) 7
    13. Задаем пароль. Затем покидаем меню:
      Select, or 'r' for previous menu [r] 4
      Select, or 'r' for previous menu [r] r
    14. Подтверждаем применение настроек:
      Select from menu, or press 'a' to apply config (? - help) a
    15. Даем согласие на сохранение конфигурационного файла:
      Save configuration data to a file? [Yes] Y
    16. Подтверждаем процесс модификации:
      The system will be modified - continue? [No] Y
    17. В течение некоторого времени установка будет завершена. Система направит запрос на отправку уведомлений. В данном случае можно отказаться:
      Notify Zimbra of your installation? [Yes] N
    18. Готово! Сервер установлен, но есть нюанс, необходимо заново задать пароль для пользователя root, так как установщик почтового сервера Zimbra изменит его в процессе выполнения установки. Задаем пароль:
      passwd root

    Настраиваем Zimbra

    Для начала использования почтового сервера, необходимо внести в него основные настройки. Для этого в браузере переходим по адресу https://:7071. Откроется страница с уведомлением об ошибке, подтверждаем открытие страницы. Отобразится форма для ввода данных в административную панель Zimbra. Входим в панель введя соответствующие данные, заданный при установке. В случае, если при установке сервера, рабочий домен не был изменен, то он будет соответствовать имени сервера. Далее опишем действия для смены имени домена:

    • Переходим в Настройки – Домены. Кликаем по значку шестеренки и выбираем пункт Создать.
    • В поле указываем имя домена.
    • Нажимаем Далее. Выбираем почтовый сервер. Готово.
    • Для изменения домена по умолчанию, перейдем по следующему пути: Настройка – Глобальные настройки. В поле «Домен по умолчанию» прописываем нужный нам домен. Сохраняем.
    • Создадим почтовый ящик. В панели администрирования переходим в Управление – Учетные записи. Кликаем по шестеренки – Создать.
    • Вводим данные: имя и фамилию пользователя.
    • Вводим данные: имя и фамилию пользователя. Вводим пароль пользователя. Если необходимо создать административную учетную запись, отмечаем это проставив галочку Глобальный администратор. Готово.

    Установка SSL сертификата

    В данном разделе рассмотрим пример установки бесплатного SSL сертификата от Let`s Encrypt. Процедура установки разбита на несколько этапов:

    Этап 1 – получаем сертификат.

    1. Сперва перейдем в каталог /opt:
      # cd /opt
    2. Для получения сертификата загрузим утилиту, введя следующую команду:
      git clone https://github.com/letsencrypt/letsencrypt
    3. Запускаем проверку подлинности домена:
      # /opt/letsencrypt/letsencrypt-auto certonly --standalone
      Установятся несколько пакетов, потребуется ввести адрес почты, принять лицензионное соглашение и подписаться на рассылки Let`s Encrypt:
      Enter email address (used for urgent renewal and security notices) (Enter 'c' to
      cancel): [email protected]
      
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Please read the Terms of Service at
      https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
      agree in order to register with the ACME server at
      https://acme-v02.api.letsencrypt.org/directory
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      (A)gree/(C)ancel: A
      
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      Would you be willing to share your email address with the Electronic Frontier
      Foundation, a founding partner of the Let's Encrypt project and the non-profit
      organization that develops Certbot? We'd like to send you email about our work
      encrypting the web, EFF news, campaigns, and ways to support digital freedom.
      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      (Y)es/(N)o: Y
      
    4. Далее утилита запросит ввести имя сервера для получения сертификата. Вводим имя нашего сервера:
      Please enter in your domain name(s) (comma and/or space separated)  (Enter 'c'
      to cancel): zimbra.mydomain.ru
    5. После проверки – получаем подобный ответ:
      ...
       - Congratulations! Your certificate and chain have been saved at:
         /etc/letsencrypt/live/zimbra.mydomain.ru/fullchain.pem
         Your key file has been saved at:
         ...
      
      Таким образом мы получили сертификат, все файлы которого теперь находятся в каталоге: /etc/letsencrypt/live/zimbra.mydomain.ru/.

    Этап 2 - устанавливаем сертификат

    1. Полученный сертификат копируем в каталог Zimbra:
      # cp /etc/letsencrypt/live/zimbra.mydomain.ru/* /opt/zimbra/ssl/zimbra/commercial/
    2. Для скопированных файлов назначим нового владельца:
      # chown zimbra /opt/zimbra/ssl/zimbra/commercial/*
    3. Особенностью установки SSL для Zimbra является то, цепочка сертификатов не будет применена, если отсутствуют корневые от Let`s Encrypt, которые можно получить по следующим ссылкам:
      https://letsencrypt.org/certs/isrgrootx1.pem.txt
      https://letsencrypt.org/certs/letsencryptauthorityx3.pem.txt
      Теперь полученную последовательность необходимо прописать в файл chain.pem:
      # vi /opt/zimbra/ssl/zimbra/commercial/chain.pem 
    4. Далее логинемся в системе под пользователем Zimbra и перейдем в следующий каталог:
      # su - zimbra
      $ cd /opt/zimbra/ssl/zimbra/commercial
      
    5. Осуществляем проверку:
      $ zmcertmgr verifycrt comm privkey.pem cert.pem chain.pem
    6. Получаем ответ:
      ** Verifying 'cert.pem' against 'privkey.key'
      Certificate 'cert.pem' and private key 'privkey.key' match.
      ** Verifying 'cert.pem' against 'chain.pem'
      Valid certificate chain: cert.pem: OK
    7. Меняем имя ключа и установим сертификат:
      $ mv privkey.pem commercial.key
      $ zmcertmgr deploycrt comm cert.pem chain.pem
      
    8. Для применения параметров перезагружаем Zimbra:
      $ zmcontrol restart
    9. Завершаем работу пользователя Zimbra, выходим:
      $ exit

    Проверка

    Для проверки работоспособности почтового сервера воспользуемся сервисом MXtoolbox. В разделе MX введем адрес нашего почтового сервера. В результате, если указаны все необходимые записи, система выдаст результат проверки.

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

    В данной статье мы рассмотрели установку и настройку почтового сервера Zimbra. Рассмотрели подготовку сервера под управлением CentOS 7, пошагово продемонстрировали этапы загрузки, установки и настройки Zimbra. Также в статье привели пример установки бесплатного сертификата от Let`s Encrypt и осуществили проверку DNS записей. Есть вопросы? Задавайте!

    Не нашли ответа на свой вопрос?
    Содержание