Используемые термины: Zimbra, Linux, SMTP, POP3, IMAP.
Прежде, чем начать, нам понадобится:
В процессе мы также должны будем настроить:
Принцип установки аналогичный для любого дистрибутива Linux. Важно, чтобы данный дистрибутив официально поддерживался Zimbra.
Какие выбрать дистрибутив для Linux и версию Zimbra
Подготовка сервера
Время
Безопасность
Hosts
Системная переменная для имени сервера
Установка Zimbra
Правильная настройка DNSCache
Базовая настройка zimbra
Как добавить домен
Как создать почтовый ящик
Описание записей, которые нужно создать в DNS
Проброс портов для запросов из Интернет
Настройка подписи DKIM
Тестовое письмо
Установка SSL-сертификата
Получение
Установка
Продление
Настройки почтового клиента
Защита от СПАМа
Дополнительные настройки
Работа с белым списком
Максимальный размер сообщений
Транспортные правила
Возможные ошибки
Приложение позволяет работать с электронной почтой, отправлять и принимать корреспонденцию. Кроме того, доступен встроенный органайзер и планировщик задач.
Windows XP, Windows Vista, Windows 7, Windows 8, Windows 8.1, Windows 10
Zimbra – приложение с открытым исходным кодом для Windows, выполняющее функции почтового клиента. С помощью утилиты можно работать с электронными письмами. Программа представляет собой альтернативу Outlook 2016. Стоит отметить, что платформа ориентирована на использование совместно с корпоративным решением Zimbra Collaboration Suite.
- Почта
- Инструменты
- Особенности
- Настройка почтового клиента
- Проброс портов
- Загрузка дистрибутива и установка Zimbra
- Возможные проблемы
- Служба zmconfigd не стартует
- Ошибка при просмотре очередей в веб-консоли
- Файл zmstat. out большого размера
- Отправка тестового письма
- Zimbra DNSCache
- ZimbraMtaLmtpHostLookup
- Настройка DKIM
- Настройка DNS
- Настройка zimbra после установки
- Создание почтового ящика
- Подготовка сервера
- Настройка времени
- Безопасность
- Брандмауэр
- DNS и имя сервера
- Системная переменная для имени сервера
- Установка SSL-сертификата
- Получение сертификата
- Установка сертификата
- Продление сертификата
- Защита от СПАМа
- Черные списки
- Настройка mynetworks
- Выбор дистрибутива Linux и версии Zimbra
- Дополнительные настройки
- Размер отправляемого сообщения
- Транспортные правила
Почта
Утилита позволяет сортировать электронные письма и создавать папки для группировки. Доступна функция отправки и предварительного просмотра вложений. Поддерживается синхронизация почты между несколькими устройствами. При этом можно выбрать интервал обновления данных.
Инструменты
В состав программы входит еще несколько модулей, помогающих повысить продуктивность работы. Есть возможность составлять списки предстоящих задач и делиться ими с другими пользователями. Также доступен встроенный органайзер, с помощью которого можно составить рабочее расписание.
Поддерживается интеграция с большинством офисных приложений, что позволяет экспортировать и импортировать данные. Кроме того, есть возможность использовать переводчик.
Особенности
Сервис позволяет анализировать тексты и определять, какие из них были созданы с помощью искусственного интеллекта. Есть возможность оценить степень риска.
Самообучающаяся нейронная сеть способна генерировать уникальные тексты на заданную тему. Есть возможность указать ключевые слова, стиль и другие параметры.
Онлайн сервис предназначен для разработки дизайна различных помещений. Пользователи могут загрузить снимок комнаты, а нейросеть сгенерирует варианты оформления.
Платформа представляет собой гибрид поисковой системы и нейронной сети. С ее помощью можно найти информацию в сети и получить развернутый ответ на свой вопрос.
Windows XP, Windows Vista, Windows 7, Windows 8, Windows 10, Windows 11
Приложение позволяет создавать рабочие области и ставить задачи. Есть возможность отслеживать прогресс выполнения, добавлять файлы, а также генерировать новые идеи.
Сервис представляет собой обновленную версию языковой модели GPT 3.5. С его помощью пользователи могут получать ответы на самые разные вопросы и общаться с ботом.
Приложение позволяет попробовать себя в роли писателя. С помощью нейросети можно генерировать истории, а также читать и обсуждать работы других пользователей.
Нейронная сеть от компании Яндекс умеет генерировать тексты, писать стихи, статьи, заголовки новостей, инструкции и многое другое. Есть возможность выбрать стиль.
Настройка почтового клиента
Приведем пример настройки почтового клиента. Подключимся к нашему серверу по IMAP и отправим почту по SMTP. В качестве почтового клиента я буду использовать Mozilla Thunderbird — принцип настройки других клиентов аналогичен.
Для настройки используем следующие параметры:
Проброс портов
Если наш сервер находится во внутренней сети, необходимо настроить проброс портов. В двух словах, это настройка на сетевом устройстве, которое смотрит в Интернет, которая позволит запросы на определенный порт передать на наш почтовый сервер.
Пример настройки для Mikrotik приведен в инструкции Перенаправление запросов (проброс портов) на Mikrotik.
Загрузка дистрибутива и установка Zimbra
Переходим по одной из ссылок выше для загрузки платной или бесплатной версии.
Если мы планируем установить платную версию, сначала кликаем по START FREE TRIAL:
Проходим процедуру регистрации. На указанный адрес электронной почты мы получим файл с лицензией (на 60 дней). Переносим данный файл на сервер Zimbra, например, при помощи программы WinSCP.
Возвращаемся на страницу загрузки zimbra и копируем ссылку на дистрибутив:
Используя скопированную ссылку, загружаем дистрибутив Zimbra:
tar -xzvf zcs-*.tgz
Переходим в распакованный каталог:
Запускаем установку почтового сервера:
На экране отобразится лицензионное соглашение — принимаем его:
* в платной версии лицензионное соглашение нужно принять дважды.
Разрешаем использование репозитория от Zimbra:
Устанавливаем необходимые модули (или все):
* в зависимости от ситуации, мы можем выбрать лишь несколько компонентов, например, для использования сервера в качестве агента передачи сообщений, мы можем оставить только zimbra-mta. Но в нашем примере мы будем настраивать Zimbra со всем компонентами.
Подтверждаем ранее введенные настройки:
Начнется процесс установки и конфигурирования Zimbra. Ждем окончания процесса.
Если для нашего домена еще нет записи MX, мы увидим сообщение:
It is suggested that the domain name have an MX record configured in DNS
Установщик предложит поменять домен — отвечаем отрицательно:
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
Address unconfigured (**) items (? — help)
Переходим к установке пароля:
Если мы устанавливаем платную версию, указываем путь до файла с лицензией:
Enter the name of the file that contains the license:
Теперь выходим из меню:
Select from menu, or press ‘a’ to apply config (? — help)
Сохраняем конфигурационный файл:
Соглашаемся с путем сохранения файла:
Дожидаемся окончания установки, на запрос отправки уведомления можно ответить отказом:
В конечном итоге, нажимаем Enter:
Configuration complete — press return to exit
Сервер установлен. Однако, установщик меняет пароль пользователя root. Меняем его обратно:
Возможные проблемы
Рассмотрим некоторые проблемы, с которыми мы можем столкнуться при работе с Zimbra.
Служба zmconfigd не стартует
В консоли управления почтовым сервером мы можем увидеть ошибку запуска службы zmconfigd. При попытке запустить ее:
$ zmconfigdctl start
Устанавливаем пакет с nc-командами.
а) если на систему RPM (Red Hat / CentOS):
yum -y install nmap-ncat
б) если на систему deb (Debian / Ubuntu):
apt-get install netcat-openbsd
После пробуем запустить сервис (от пользователя zimbra):
Ошибка при просмотре очередей в веб-консоли
При переходе на страницу просмотра очередей система отображает ошибку:
Есть два варианта решения проблемы.
1. Если для подключения к нашему серверу по SSH используется нестандартный порт (не 22), необходимо ввести команду:
su — zimbra -c «zmprov mcf zimbraRemoteManagementPort 2222»
* где 2222 — порт SSH, который используется для нашего сервера.
2. Переходим в каталог:
Файл zmstat. out большого размера
Файл /opt/zimbra/zmstat/zmstat.out становится очень большим. Если открыть его, то мы увидим много строк:
Use of uninitialized value $line in pattern match (m//) at /opt/zimbra/libexec/zmstat-io line 76.
Ошибка в скрипте /opt/zimbra/libexec/zmstat-io.
Открываем скрипт, в котором есть ошибка:
Переходим на неправильную строку — 1 (в нашем примере, 75). Мы должны увидеть:
* то есть, убираем : после Device.
Перезапускаем службы Zimbra:
su — zimbra -c «zmcontrol restart»
Отправка тестового письма
Теперь заходим на сайт https://www.mail-tester.com/ и копируем email-адрес для отправки тестового сообщения:
Создаем новое сообщение и отправляем его на тестовый адрес. Возвращаемся на сайт для проверки и кликаем по Затем проверьте оценку:
Если наше письмо не получило 10 баллов, анализируем проблемы и исправляем их.
Zimbra DNSCache
Вместе с зимброй мы установили службу dnscache, которая позволяет увеличить производительность почтового сервера. Однако, принцип работы сети немного меняется, а именно, в файле /etc/resolv.conf появляется запись:
Для корректной настройки службы dnscache необходимо сначала посмотреть Master DNS в настройках Zimbra:
* где $myhostname — имя сервера, на котором установлена Zimbra (в данной конфигурации, zimbra.dmosk.ru).
В моем случае было:
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
su — zimbra -c «zmprov ms $myhostname zimbraMtaLmtpHostLookup native»
su — zimbra -c «zmprov mcf zimbraMtaLmtpHostLookup native»
* где $myhostname — имя нашего почтового сервера.
После перезапускаем службы зимбры:
su — zimbra -c «zmmtactl restart»
Настройка DKIM
Отдельно рассмотрим процесс настройки подписи DKIM на почтовом сервере Zimbra. Формирование ключей выполняется для каждого из доменов из командной строки. Подключаемся к серверу по SSH и вводим команду:
su — zimbra -c «/opt/zimbra/libexec/zmdkimkeyutil -a -d dmosk.ru»
* данная команда создаст последовательности ключей для домена dmosk.ru.
Мы должны получить ответ на подобие:
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 dmosk.ru
В настройках домена необходимо добавить данную запись, после чего подождать, минут 15. После выполняем проверку:
opendkim-testkey -d dmosk.ru -s 5D8C3E02-4EFA-11EA-872A-D9A5B4628C49 -x /opt/zimbra/conf/opendkim.conf
* где dmosk.ru — наш домен; 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 dmosk.ru»
Настройка DNS
Для корректной работы почты необходимо настроить DNS для нашего домена.
1. Запись MX.
Позволяет определить почтовый сервер для домена. Подробнее о том, что это и как ее правильно прописать в статье Что такое MX-запись.
2. Запись A.
Это запись TXT, которая определяет список серверов для домена, с которых разрешена отправка почты. Подробнее — Что такое SPF.
Подтверждение владельца домена. Письмо отправляется с зашифрованным заголовком и расшифровать его можно с помощью последовательности, хранящейся в TXT-записи на DNS. Соответственно, если владелец домена разместил такую последовательность, то он и является его владельцем. Подробнее — Что такое DKIM. Также в данной инструкции ниже мы разберем настройку DKIM на Zimbra.
Определяет для домена политику проверки писем. Подробнее — Что такое DMARC.
Настройка zimbra после установки
Если мы не меняли рабочий домен в настройках во время установки сервера, то основной домен будет таким же, как имя сервера. Как правило, это не то, что нам нужно. И так, заходим в Настройка — Домены. В правой части окна кликаем по значку шестеренки и Создать:
Задаем название для нового домена:
В следующем окне выбираем сервер:
Теперь поменяем домен по умолчанию. Переходим в Настройка — Глобальные настройки. Меняем значение для поля «Домен по умолчанию»:
Создание почтового ящика
Переходим с главного меню панели администрирования в Управление — Учетные записи. Справа кликаем по шестеренке — Создать:
Задаем имя учетной записи, а также фамилию пользователя:
Задаем пароль пользователя и, по желанию, ставим галочку Требуется сменить пароль:
При необходимости создания административной учетной записи ставим галочку Глобальный администратор:
Подготовка сервера
Независимо от выбранного дистрибутива Linux или редакции Zimbra выполняем следующие действия для подготовки сервера к корректной работы почтового сервера.
Настройка времени
Устанавливаем корректный часовой пояс:
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
Безопасность
Если на сервере используется SELinux (по умолчанию, на системах RPM), рекомендуется ее отключить. Для этого вводим 2 команды:
sed -i ‘s/^SELINUX=.*/SELINUX=disabled/g’ /etc/selinux/config
* подробнее в статье Как отключить SELinux.
Брандмауэр
Для нормальной работы Zimbra нужно открыть много портов:
В зависимости от утилиты управления фаерволом, команды будут следующие.
а) Если используем firewalld (Red Hat, CentOS):
б) Если используем iptables (Ubuntu):
Порты для веб:
iptables -I INPUT -p tcp —match multiport —dports 80,443 -j ACCEPT
Порты для почты:
iptables -I INPUT -p tcp —match multiport —dports 25,110,143,465,587,993,995 -j ACCEPT
Порты для Zimbra:
iptables -I INPUT -p tcp —match multiport —dports 5222,5223,9071,7071,8443,7143,7993,7110,7995 -j ACCEPT
* если команда вернет ошибку, то установим пакет: apt-get install iptables-persistent.
в) Если используем ufw (Ubuntu):
ufw allow 25,80,110,143,443,465,587,993,995,5222,5223,9071,7071,8443,7143,7993,7110,7995/tcp
DNS и имя сервера
Для корректной работы почтового сервера необходимо создать mx-записи для домена (подробнее о записях в DNS).
Но для установки Zimbra важнее, чтобы в локальном файле hosts была запись о нашем сервере, в противном случае, установка прервется с ошибкой. И так, задаем FQDN-имя для сервера:
Теперь открываем на редактирование файл:
192.168.1.15 zimbra.dmosk.ru zimbra
а) для CentOS (Red Hat):
yum install hostname
б) если Ubuntu (Debian):
apt-get install hostname
Системная переменная для имени сервера
Чтобы нам было удобнее вводить команды, где требуется указать имя сервера, создадим системную переменную:
Теперь мы можем в команде использовать переменную $myhostname.
Установка SSL-сертификата
При заходе на веб-интерфейс мы будем получать ошибку, так как по умолчанию, создается самоподписный сертификат. Рассмотрим процесс установки бесплатного сертификата от Let;s Encrypt.
Получение сертификата
Загружаем в него утилиту letsencrypt-auto:
Разрешаем ее запускать на выполнение:
/opt/letsencrypt/letsencrypt-auto certonly —standalone
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
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:
После утилита предложит ввести адрес, для которого необходимо получить сертификат — вводим адрес нашего сервера, например:
Please enter in your domain name(s) (comma and/or space separated) (Enter ‘c’
to cancel):
Мы должны получить что-то на подобие:
Сертификат получен и все его файлы находятся в каталоге /etc/letsencrypt/live/zimbra.dmosk.ru/.
Установка сертификата
Процесс установки сертификата для зимбры, несколько, отличается от многих других сервисов — он требует дополнительных телодвижений.
И так, сначала скопируем полученные сертификаты в каталог зимбры — в моем случае, команды такие:
* где zimbra.dmosk.ru — домен, для которого мы получали сертификат.
Меняем владельца для скопированных файлов:
chown zimbra /opt/zimbra/ssl/zimbra/commercial/*
Теперь нюанс — zimbra не примет цепочку сертификатов, если в ней не будет корневых от Let’s Encrypt. Получить их можно по ссылкам:
Полученную последовательность добавляем к файлу chain.pem:
* где мы добавили к файлу две последовательности.
Теперь зайдем в систему под пользователем zimbra:
Проверяем, правильно ли сформированы сертификаты для 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:
Можно выйти из окружения пользователя zimbra:
Продление сертификата
Обновление сертификата не потребует больших усилий. Для начала, обновляем сертификат Let’s Encrypt:
Скопируем обновленные сертификаты в каталог зимбры:
* где zimbra.dmosk.ru — домен, для которого мы получали сертификат.
Меняем владельца для файлов:
Переходим в каталог с сертификатами:
Загружаем корневые сертификаты Let’s Encrypt:
Создаем файл с полной цепочкой сертификатов:
Проверяем корректность сертификатов:
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»
Защита от СПАМа
После перезапустим соответствующие службы:
su — zimbra -c «zmamavisdctl restart»
Черные списки
Чтобы усилить защиту, разрешим проверку отправителя в черных списках:
Настройка mynetworks
После установки Zimbra в опции postfix mynetworks может оказаться подсеть, в которой находится наш сервер. На практике, это приводит к возможности отправки сообщений без пароля, что в свою очередь, позволяет любому вирусу в нашей сети делать нелегальную рассылку.
Задаем для mynetworks только адрес локальной петли и адрес сервера:
su — zimbra -c ‘zmprov ms zimbra.dmosk.ru zimbraMtaMyNetworks «127.0.0.0/8 192.168.1.15/32″‘
su — zimbra -c ‘postfix reload’
Проверить текущую настройку можно командой:
su — zimbra -c ‘postconf mynetworks’
Выбор дистрибутива Linux и версии Zimbra
Список дистрибутивов Linux, которые поддерживаются разработчиком Zimbra, описан на официальном сайте страницах загрузки. В данной инструкции мы рассмотрим процесс установки для Ubuntu 18.04 и CentOS 7, однако, процесс настройки для других систем, во многом, аналогичен.
Дополнительные настройки
Может возникнуть ситуация, при которой нам нужно изменить назначение СПАМ-балов для некоторых отправителей. Для этого открываем файл:
После настройки перезапускаем amavis:
su — zimbra -c «zmamavisdctl stop && zmamavisdctl start»
Размер отправляемого сообщения
Задать максимальный размер сообщений можно командой:
su — zimbra -c ‘zmprov modifyConfig zimbraMtaMaxMessageSize 31457280’
* в данном примере мы задаем максимальный размер сообщения 30 мб.
После перезапускаем postfix:
su — zimbra -c «postfix reload»
Транспортные правила
Предположим, что нам нужно перенаправлять письма на определенный домен через другой почтовый релей. В Postfix это делается с помощью правил transport_maps.
Смотрим текущие настройки zimbraMtaTransportMaps:
su — zimbra -c «zmprov gs zimbra.dmosk.ru zimbraMtaTransportMaps»
В моем случае ответ был:
zimbraMtaTransportMaps: hash:/opt/zimbra/conf/transport_maps proxy:ldap:/opt/zimbra/conf/ldap-transport.cf
Если команда вернула пустой ответ, то значит настройка не назначена. Сделаем это командой:
su — zimbra -c «zmprov ms zimbra.dmosk.ru zimbraMtaTransportMaps ‘lmdb:/opt/zimbra/conf/transport_maps proxy:ldap:/opt/zimbra/conf/ldap-transport.cf'»
* мы указали, что транспортные правила необходимо искать в lmdb-хэше файла /opt/zimbra/conf/transport_maps.
Нам интересен файл /opt/zimbra/conf/transport_maps — в нем хранятся правила пересылки. Откроем его на редактирование:
Добавим нужное нам правило, например:
* в данном примере мы указываем zimbra пересылать все письма на домен dmosk3.local через почтовый MTA 10.10.10.10.
su — zimbra -c «postmap /opt/zimbra/conf/transport_maps»