Установка и настройка почтового сервера Zimbra на Linux

Обновлено Обновлено: Опубликовано Опубликовано:

Используемые термины: ZimbraLinux, SMTPPOP3, IMAP.

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

  • SMTP-сервер для отправки писем.
  • Чтение и работа с почтой по POP3/IMAP.
  • Работа с почтой по веб-интерфейсу.
  • Графическая панель управления почтовым сервером.

Принцип установки аналогичный для любого дистрибутива Linux. Важно, чтобы данный дистрибутив официально поддерживался Zimbra. 

Выбор дистрибутива Linux и версии Zimbra

Список дистрибутивов Linux, которые поддерживаются разработчиком Zimbra, описан на официальном сайте страницах загрузки. В данной инструкции мы рассмотрим процесс установки для Ubuntu 18.04 и CentOS 7, однако, процесс настройки для других систем, во многом, аналогичен.

Zimbra имеет две основные версии — платную Network Edition и бесплатную Open Source Edition (OSE). Сравнение данных версий можно найти на официальном сайте. В центре загрузки Zimbra мы также можем выбрать и скачать дистрибутив для платной или бесплатной версий. В данной инструкции мы скачем и установим платную demo-версию и лицензируем ее временным ключом, дающим право использовать программный продукт в течение 60 дней. По прошествии данного периода, программный продукт необходимо купить или прекратить использовать.

Подготовка сервера

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

1. Настройка времени

Устанавливаем корректный часовой пояс:

timedatectl set-timezone Europe/Moscow

* в данном примере мы зададим московское время.

Теперь установим утилиту для синхронизации времени и запустим ее.

а) если используем систему на базе RPM (CentOS / Red Hat):

yum install chrony

systemctl enable chronyd –now

б) если используем систему на базе deb (Ubuntu):

apt-get install chrony

systemctl enable chrony –now

2. Безопасность

SELinux

Если на сервере используется SELinux (по умолчанию, на системах RPM), рекомендуется ее отключить. Для этого вводим 2 команды:

setenforce 0

sed -i ‘s/^SELINUX=.*/SELINUX=disabled/g’ /etc/selinux/config

* подробнее в статье Как отключить SELinux.

Брандмауэр

Для нормальной работы Zimbra нужно открыть много портов:

  • 25 — основной порт для обмена почтой по протоколу SMTP.
  • 80 — веб-интерфейс для чтения почты (http).
  • 110 — POP3 для загрузки почты.
  • 143 — IMAP для работы с почтовым ящиком с помощью клиента.
  • 443 — SSL веб-интерфейс для чтения почты (https).
  • 465 — безопасный SMTP для отправки почты с почтового клиента.
  • 587 — SMTP для отправки почты с почтового клиента (submission).
  • 993 — SSL IMAP для работы с почтовым ящиком с помощью клиента.
  • 995 — SSL POP3 для загрузки почты.
  • 5222 — для подключения к Zimbra по протоколу XMPP.
  • 5223 — для защищенного подключения к Zimbra по протоколу XMPP.
  • 7071 — для защищенного доступа к администраторской консоли.
  • 8443 — SSL веб-интерфейс для чтения почты (https).
  • 7143 — IMAP для работы с почтовым ящиком с помощью клиента.
  • 7993 — SSL IMAP для работы с почтовым ящиком с помощью клиента.
  • 7110 — POP3 для загрузки почты.
  • 7995 — SSL POP3 для загрузки почты.
  • 9071 — для защищенного подключения к администраторской консоли.

В зависимости от утилиты управления фаерволом, команды будут следующие.

а) Если используем firewalld (Red Hat, CentOS):

firewall-cmd –permanent –add-port={25,80,110,143,443,465,587,993,995,5222,5223,9071,7071,8443,7143,7993,7110,7995}/tcp

firewall-cmd –reload

б) Если используем iptables (Ubuntu):

iptables -A INPUT -p tcp –match multiport –dports 25,80,110,143,443,465,587,993,995,5222,5223,9071,7071,8443,7143,7993,7110,7995 -j ACCEPT 

netfilter-persistent save

в) Если используем ufw (Ubuntu):

ufw allow 25,80,110,143,443,465,587,993,995,5222,5223,9071,7071,8443,7143,7993,7110,7995/tcp

3. DNS и имя сервера

Для корректной работы почтового сервера необходимо создать mx-записи для домена (подробнее о записях в DNS).

Но для установки Zimbra важнее, чтобы в локальном файле hosts была запись о нашем сервере, в противном случае, установка прервется с ошибкой. И так, задаем FQDN-имя для сервера:

hostnamectl set-hostname zimbra.admins24.com

Теперь открываем на редактирование файл:

vi /etc/hosts

… и добавляем:

192.168.1.15      zimbra.admins24.com zimbra

* где 192.168.1.15 — IP-адрес нашего сервера; zimbra — имя сервера; admins24.com — наш домен.

Не совсем очевидная проблема, но если в системе не будет пакета hostname, при попытке запустить установку зимбры, мы будем получать ошибку определения IP-адреса по имени. Устанавливаем пакет.

а) для CentOS (Red Hat):

yum install hostname

б) если Ubuntu (Debian):

apt-get install hostname

4. Системная переменная для имени сервера

Чтобы нам было удобнее вводить команды, где требуется указать имя сервера, создадим системную переменную:

myhostname=zimbra.admins24.com

Теперь мы можем в команде использовать переменную $myhostname.

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

Переходим по одной из ссылок выше для загрузки платной или бесплатной версии.

Если мы планируем установить платную версию, сначала кликаем по START FREE TRIAL:

Кликаем по START FREE TRIAL

Проходим процедуру регистрации. На указанный адрес электронной почты мы получим файл с лицензией (на 60 дней). Переносим данный файл на сервер Zimbra, например, при помощи программы WinSCP.

Возвращаемся на страницу загрузки zimbra и копируем ссылку на дистрибутив:

Копируем ссылку для скачивания дистрибутива Zimbra под Linux Ubuntu

Используя скопированную ссылку, загружаем дистрибутив Zimbra:

wget https://files.zimbra.com/downloads/8.8.15_GA/zcs-NETWORK-8.8.15_GA_3869.UBUNTU18_64.20190918004220.tgz

Распаковываем скачанный архив:

tar -xzvf zcs-*.tgz

Переходим в распакованный каталог:

Запускаем установку почтового сервера:

./install.sh

На экране отобразится лицензионное соглашение — принимаем его:

Do you agree with the terms of the software license agreement? [N] Y

* в платной версии лицензионное соглашение нужно принять дважды.

Разрешаем использование репозитория от Zimbra:

Use Zimbra’s package repository [Y] Y

Устанавливаем необходимые модули (или все):

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

* в зависимости от ситуации, мы можем выбрать лишь несколько компонентов, например, для использования сервера в качестве агента передачи сообщений, мы можем оставить только zimbra-mta. Но в нашем примере мы будем настраивать Zimbra со всем компонентами.

Подтверждаем ранее введенные настройки:

The system will be modified.  Continue? [N] Y

Начнется процесс установки и конфигурирования Zimbra. Ждем окончания процесса.

Если для нашего домена еще нет записи MX, мы увидим сообщение:

It is suggested that the domain name have an MX record configured in DNS

Установщик предложит поменять домен — отвечаем отрицательно:

Change domain name? [Yes] No

… установщик покажет меню с настройкой 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.admins24.com            
        +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.admins24.com: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

В данном случае мы можем поменять любую из настроек. Настройки, которые необходимо сделать для продолжения установки показаны звездочками — в данном примере необходимо задать пароль администратора (Admin Password) и указать путь до файла с лицензией (License filename). И так, кликаем 7:

Address unconfigured (**) items  (? – help) 7

Переходим к установке пароля:

Select, or ‘r’ for previous menu [r] 4

… и задаем пароль.

Если мы устанавливаем платную версию, указываем путь до файла с лицензией:

Select, or ‘r’ for previous menu [r] 25

… и указываем путь до файла с лицензией, например:

Enter the name of the file that contains the license: /opt/zimbra/ZCSLicense.xml

Теперь выходим из меню:

Select, or ‘r’ for previous menu [r] r

Применяем настройки:

Select from menu, or press ‘a’ to apply config (? – help) a

Сохраняем конфигурационный файл:

Save configuration data to a file? [Yes] Y

Соглашаемся с путем сохранения файла:

Save config in file: [/opt/zimbra/config.20863]

Продолжаем конфигурирование:

The system will be modified – continue? [No] Y

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

Notify Zimbra of your installation? [Yes] n

В конечном итоге, нажимаем Enter:

Configuration complete – press return to exit

Сервер установлен. Однако, установщик меняет пароль пользователя root. Меняем его обратно:

passwd root

Zimbra DNSCache

Вместе с зимброй мы установили службу dnscache, которая позволяет увеличить производительность почтового сервера. Однако, принцип работы сети немного меняется, а именно, в файле /etc/resolv.conf появляется запись:

nameserver 127.0.0.1

… а разрешение DNS имени в IP-адреса перестает работать. Удаление или смена записи в файле resolv.conf ни к чему не приводит, так как, по прошествии некоторого времени, настройка принимает исходный вид.

Для корректной настройки службы dnscache необходимо сначала посмотреть Master DNS в настройках Zimbra:

su – zimbra -c “zmprov getServer ‘$myhostname’ | grep DNSMasterIP”

* где $myhostname — имя сервера, на котором установлена Zimbra (в данной конфигурации, zimbra.admins24.com).

В моем случае было:

zimbraDNSMasterIP: 127.0.0.53

Удалить данную запись:

su – zimbra -c “zmprov ms ‘$myhostname’ -zimbraDNSMasterIP 127.0.0.53”

И добавить свои рабочие серверы DNS, например:

su – zimbra -c “zmprov ms ‘$myhostname’ +zimbraDNSMasterIP  192.168.1.1”

su – zimbra -c “zmprov ms ‘$myhostname’ +zimbraDNSMasterIP  8.8.8.8”

su – zimbra -c “zmprov ms ‘$myhostname’ +zimbraDNSMasterIP  77.88.8.8”

* где 192.168.1.1 — DNS сервер в моей сети; 8.8.8.8 — DNS сервер от Google; 77.88.8.8 — DNS сервер от Яндекс.

Теперь DNS-запросы на сервере будут работать.

zimbraMtaLmtpHostLookup

Если наш сервер находится за NAT и разрешение IP происходит не во внутренний адрес, а внешний (можно проверить командой nslookup <имя сервера>), после настройки наш сервер не сможет принимать почту, а в логах мы можем увидеть ошибку delivery temporarily suspended: connect to 7025: Connection refused). Это происходит из-за попытки Zimbra передать письмо в очереди по внутреннему порту локальной почты 7025 (LMTP) на внешний адрес, который недоступен из NAT. Для решения проблемы можно использовать внутренний DNS с другими А-записями (split dns) или собственный поиск IP-адресов для lmtp, а не для DNS. Рассмотрим второй вариант — вводим две команды:

su – zimbra -c “zmprov ms $myhostname zimbraMtaLmtpHostLookup native”

su – zimbra -c “zmprov mcf zimbraMtaLmtpHostLookup native”

* где $myhostname — имя нашего почтового сервера.

После перезапускаем службы зимбры:

su – zimbra -c “zmmtactl restart”

Настройка zimbra после установки

Чтобы начать пользоваться сервером, внесем основные настройки. Для этого открываем браузер и вводим адрес https://<IP-адрес сервера>:7071 — должна открыться страница с ошибкой, разрешаем открытие страницы и мы увидим форму для входа в панель администрирования Zimbra. Вводим логин admin и пароль, который задавали при установке.

Добавление домена

Если мы не меняли рабочий домен в настройках во время установки сервера, то основной домен будет таким же, как имя сервера. Как правило, это не то, что нам нужно. И так, заходим в НастройкаДомены. В правой части окна кликаем по значку шестеренки и Создать:

Переходим к созданию нового почтового домена

Задаем название для нового домена:

Задаем название для домена

… и кликаем Далее.

В следующем окне выбираем сервер:

Выбор сервер для домена

… можно нажать Готово.

Теперь поменяем домен по умолчанию. Переходим в НастройкаГлобальные настройки. Меняем значение для поля «Домен по умолчанию»:

Меняем домен по умолчанию

… и нажимаем Сохранить.

Создание почтового ящика

Переходим с главного меню панели администрирования в УправлениеУчетные записи. Справа кликаем по шестеренке – Создать:

Переходим к созданию нового почтового ящика

Задаем имя учетной записи, а также фамилию пользователя:

Указываем email и фамилию пользователя

Задаем пароль пользователя и, по желанию, ставим галочку Требуется сменить пароль:

Задаем пароль нового пользователя

При необходимости создания административной учетной записи ставим галочку Глобальный администратор:

Выдаем права глобального администратора

Нажимаем Готово.

Настройка DNS

Для корректной работы почты необходимо настроить DNS для нашего домена.

1. Запись MX.

Позволяет определить почтовый сервер для домена. Подробнее о том, что это и как ее правильно прописать в статье Что такое MX-запись.

2. Запись A.

Для нашего сервера, который определен как MX запись нужна запись А, которая указывает на его IP-адрес. В моем примере это сервер zimbra.admins24.com, который из сети Интернет должен разрешаться во внешний IP-адрес.

3. PTR.

Данная запись представляет из себя обратное разрешение IP-адреса в домен. С ее помощью подтверждается легитимность отправителя. Подробнее в статье Что такое PTR-запись.

4. SPF.

Это запись TXT, которая определяет список серверов для домена, с которых разрешена отправка почты. Подробнее — Что такое SPF.

5. DKIM.

Подтверждение владельца домена. Письмо отправляется с зашифрованным заголовком и расшифровать его можно с помощью последовательности, хранящейся в TXT-записи на DNS. Соответственно, если владелец домена разместил такую последовательность, то он и является его владельцем. Подробнее — Что такое DKIM. Также в данной инструкции ниже мы разберем настройку DKIM на Zimbra.

6. DMARC.

Определяет для домена политику проверки писем. Подробнее — Что такое DMARC.

Настройка DKIM

Отдельно рассмотрим процесс настройки подписи DKIM на почтовом сервере Zimbra. Формирование ключей выполняется для каждого из доменов из командной строки. Подключаемся к серверу по SSH и вводим команду:

su – zimbra -c “/opt/zimbra/libexec/zmdkimkeyutil -a -d admins24.com”

* данная команда создаст последовательности ключей для домена admins24.com.

Мы должны получить ответ на подобие:

Public signature to enter into DNS:
5D8C3E02-4EFA-11EA-872A-D9A5B4628C49._domainkey IN      TXT     ( “v=DKIM1; k=rsa; “
          “p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5iLy58AJ1fdB15BZgh/VtGfZsi+TrDyvqqZaL5pJ+MQaQrpqHW8AF5kyxW2QzAMjyKzySMZX0PoHUuV93Yxf2t52IFihvb7ivqmRwlqFV3gU7j8zqbAGWHfZo4Ydw0kUmU6pm+Z85aWt4k7rQ7vWXludQGf8yIaSMMmodxze9E5VUOtUA18dIEEPcbwSgOO6YhQLuC78T4FiF5”
          “8epQnsX0voSfg9tMW+r+P1b5fTy5Guyqh1plWYseKxPzHKHbc4Lokcgo1AZzKG5Mvo5OCXsKUE1fSoc366AFSoUnWr23P7oUbf+NjXzPMS8ESGA9TfpDA6eRJT4QEpi72AdIy4rQIDAQAB” )  ; —– DKIM key 5D8C3E02-4EFA-11EA-872A-D9A5B4628C49 for admins24.com

В данном ответе нас интересуют записи 5D8C3E02-4EFA-11EA-872A-D9A5B4628C49._domainkey — это имя для TXT в домене admins24.com“v=DKIM1; k=rsa; ” “p=M…AB” — содержимое записи.

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

opendkim-testkey -d admins24.com -s 5D8C3E02-4EFA-11EA-872A-D9A5B4628C49 -x /opt/zimbra/conf/opendkim.conf

* где admins24.com — наш домен; 5D8C3E02-4EFA-11EA-872A-D9A5B4628C49 — селектор, который мы видели в записи 5D8C3E02-4EFA-11EA-872A-D9A5B4628C49._domainkey.
* если при вводе команды мы получим ошибку «Command ‘opendkim-testkey’ not found», необходимо установить opendkim-tools командой apt-get install opendkim-tools (deb) или yum install opendkim-tools (RPM).

Для просмотра имеющихся записей DKIM можно воспользоваться командой:

su – zimbra -c “/opt/zimbra/libexec/zmdkimkeyutil -q -d admins24.com”

Отправка тестового письма

Открываем браузер и переходим по ссылке https://<IP-адрес сервера>:8443/ — откроется веб-клиент для чтения и отправки почты. В качестве логина используем созданный email и его пароль.

Теперь заходим на сайт https://www.mail-tester.com/ и копируем email-адрес для отправки тестового сообщения:

Копируем email для отправки тестового письма

Создаем новое сообщение и отправляем его на тестовый адрес. Возвращаемся на сайт для проверки и кликаем по Затем проверьте оценку:

Выполняем проверку тестового сообщения

Если наше письмо не получило 10 баллов, анализируем проблемы и исправляем их.

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

При заходе на веб-интерфейс мы будем получать ошибку, так как по умолчанию, создается самоподписный сертификат. Рассмотрим процесс установки бесплатного сертификата от Let;s Encrypt.

Получение сертификата

Переходим в каталог /opt:

Загружаем утилиту для получения сертификата:

git clone https://github.com/letsencrypt/letsencrypt

Запускаем настройку небольшого веб-сервера для проверки подлинности домена:

/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

После утилита предложит ввести адрес, для которого необходимо получить сертификат — вводим адрес нашего сервера, например:

Please enter in your domain name(s) (comma and/or space separated)  (Enter ‘c’
to cancel): zimbra.admins24.com

Мы должны получить что-то на подобие:


 – Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/zimbra.admins24.com/fullchain.pem
   Your key file has been saved at:
   …

Сертификат получен и все его файлы находятся в каталоге /etc/letsencrypt/live/zimbra.admins24.com/.

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

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

И так, сначала скопируем полученные сертификаты в каталог зимбры — в моем случае, команды такие:

cp /etc/letsencrypt/live/zimbra.admins24.com/* /opt/zimbra/ssl/zimbra/commercial/

* где zimbra.admins24.com — домен, для которого мы получали сертификат.

Меняем владельца для скопированных файлов:

chown zimbra /opt/zimbra/ssl/zimbra/commercial/*

Теперь нюанс — zimbra не примет цепочку сертификатов, если в ней не будет корневого от Let’s Encrypt. Получить его можно командой:

wget http://apps.identrust.com/roots/dstrootcax3.p7c

После выполняем конвертирование читаемый вид:

openssl pkcs7 -inform der -in dstrootcax3.p7c -print_certs -out /opt/zimbra/ssl/zimbra/commercial/dstrootcax3.pem

Смотрим:

cat /opt/zimbra/ssl/zimbra/commercial/dstrootcax3.pem

Полученную последовательность добавляем к файлу chain.pem:

vi /opt/zimbra/ssl/zimbra/commercial/chain.pem

—–BEGIN CERTIFICATE—–
<не меняем>
—–END CERTIFICATE—–
—–BEGIN CERTIFICATE—–
MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/
MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
DkRTVCBSb290IENBIFgzMB4XDTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVow
PzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQD
Ew5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
AN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmTrE4O
rz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEq
OLl5CjH9UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9b
xiqKqy69cK3FCxolkHRyxXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw
7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40dutolucbY38EVAjqr2m7xPi71XAicPNaD
aeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV
HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQMA0GCSqG
SIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69
ikugdB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXr
AvHRAosZy5Q6XkjEGB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZz
R8srzJmwN0jP41ZL9c8PDHIyh8bwRLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5
JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubSfZGL+T0yjWW06XyxV3bqxbYo
Ob8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
—–END CERTIFICATE—–

* где мы добавили к файлу последовательность MIIDSjC…p2CNTUQ.

Теперь зайдем в систему под пользователем zimbra:

su – zimbra

… и перейдем в каталог:

$ cd /opt/zimbra/ssl/zimbra/commercial

Проверяем, правильно ли сформированы сертификаты для Zimbra:

$ zmcertmgr verifycrt comm privkey.pem cert.pem chain.pem

Мы должны получить ответ:

** 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

Переименовываем закрытый ключ:

$ mv privkey.pem commercial.key

Можно устанавливать сертификаты:

$ zmcertmgr deploycrt comm cert.pem chain.pem

Чтобы настройка применилась, перезапускаем zimbra:

$ zmcontrol restart

Можно выйти из окружения пользователя zimbra:

Продление сертификата

Обновление сертификата не потребует больших усилий. Для начала, обновляем сертификат Let’s Encrypt:

/opt/letsencrypt/letsencrypt-auto renew

Скопируем обновленные сертификаты в каталог зимбры:

cp /etc/letsencrypt/live/zimbra.admins24.com/* /opt/zimbra/ssl/zimbra/commercial/

* где zimbra.admins24.com — домен, для которого мы получали сертификат.

Меняем владельца для файлов:

chown zimbra /opt/zimbra/ssl/zimbra/commercial/*

Переходим в каталог с сертификатами:

cd /opt/zimbra/ssl/zimbra/commercial

Добавляем к цепочке сертификатов корневой:

echo ‘—–BEGIN CERTIFICATE—–‘ >> chain.pem

sed ‘1,/^—–BEGIN CERTIFICATE—–$/d’ dstrootcax3.pem >> chain.pem

Проверяем корректность сертификатов:

su – zimbra -c “zmcertmgr verifycrt comm /opt/zimbra/ssl/zimbra/commercial/privkey.pem /opt/zimbra/ssl/zimbra/commercial/cert.pem /opt/zimbra/ssl/zimbra/commercial/chain.pem”

Переименовываем закрытый ключ:

mv privkey.pem commercial.key

Можно устанавливать сертификаты:

su – zimbra -c “zmcertmgr deploycrt comm /opt/zimbra/ssl/zimbra/commercial/cert.pem /opt/zimbra/ssl/zimbra/commercial/chain.pem”

Чтобы настройка применилась, перезапускаем zimbra:

su – zimbra -c “zmcontrol restart”

Готово.

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

Приведем пример настройки почтового клиента. Подключимся к нашему серверу по IMAP и отправим почту по SMTP. В качестве почтового клиента я буду использовать Mozilla Thunderbird — принцип настройки других клиентов аналогичен.

Для настройки используем следующие параметры:

Настройка IMAP POP3 SMTP
Адрес сервера IP-адрес сервера или его имя
Порт 143 110 587
SSL STARTTLS
Имя пользователя Почтовый адрес, к которому выполняем подключение
Пароль Пароль для почтового ящика

Пример настройки:

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

Защита от СПАМа

1. Обновление правил в SpamAssassin

Для улучшения защиты от СПАМ-сообщений мы включим автоматическое обновление правил для SpamAssassin. Для этого вводим:

su – zimbra -c “zmlocalconfig -e antispam_enable_rule_updates=true”

su – zimbra -c “zmlocalconfig -e antispam_enable_restarts=true”

После перезапустим соответствующие службы:

su – zimbra -c “zmamavisdctl restart”

su – zimbra -c “zmmtactl restart”

2. Черные списки

Чтобы усилить защиту, разрешим проверку отправителя в черных списках:

su – zimbra -c ‘zmprov mcf zimbraMtaRestriction “reject_rbl_client zen.spamhaus.org”‘

* в данном примере мы подключаем rbl-список от zen.spamhaus.org.

3. Настройка mynetworks

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

Задаем для mynetworks только один адрес:

su – zimbra -c ‘zmprov ms zimbra.admins24.com zimbraMtaMyNetworks “127.0.0.1/8″‘

Перезапускаем postfix:

su – zimbra -c ‘postfix reload’

Проверить текущую настройку можно командой:

su – zimbra -c ‘postconf mynetworks’

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

Добавление отправителей в белый список

Может возникнуть ситуация, при которой нам нужно изменить назначение СПАМ-балов для некоторых отправителей. Для этого открываем файл:

vi /opt/zimbra/conf/amavisd.conf.in

Находим строку:

   { # a hash-type lookup table (associative array)
   …
   }

… и внутри фигурных скобок {} добавим нужный нам домен или конкретного отправителя:

   …
   ‘admins24.com’                           =>  -10.0,
   ‘[email protected]’                   =>  -10.0,
}

* таким образом мы сказали, что для писем с домена admins24.com и отправителя [email protected] отнимать 10 баллов за СПАМ. Такие письма начнут приходить без блокировки (при условии, что не будет отправлен явный СПАМ, который наберет очень много баллов).

После настройки перезапускаем amavis:

su – zimbra -c “zmamavisdctl stop && zmamavisdctl start”

Размер отправляемого сообщения

Задать максимальный размер сообщений можно командой:

su – zimbra -c ‘zmprov modifyConfig zimbraMtaMaxMessageSize 31457280’

* в данном примере мы задаем максимальный размер сообщения 30 мб.

После перезапускаем postfix:

su – zimbra -c “postfix reload”

Возможные проблемы

Рассмотрим некоторые проблемы, с которыми мы можем столкнуться при работе с Zimbra.

Служба zmconfigd не стартует

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

$ zmconfigdctl start

… мы получаем ошибку:

Starting zmconfigd…failed

Решение:

Устанавливаем пакет с nc-командами.

а) если на систему RPM (Red Hat / CentOS):

yum -y install nmap-ncat

б) если на систему deb (Debian / Ubuntu):

apt-get install netcat-openbsd

После пробуем запустить сервис (от пользователя zimbra):

$ zmconfigdctl start