
Установка Let’s Encrypt SSL-сертификата в Zimbra Collaboration 8.X.
На тот случай когда по тем или иным причинам нет возможности купить сертификат, мы разберем как выпустить и установить Let’s Encrypt SSL-сертификат в Zimbra Collaboration 8.X..
На тот случай когда по тем или иным причинам нет возможности купить сертификат, мы разберем как выпустить и установить Let’s Encrypt SSL-сертификат в Zimbra Collaboration 8.X..
По умолчанию текст письма сервера Zimbra Collaboration содержит несколько заголовков из которых можно узнать много чего интересного о сервере и желательно бы эту информацию скрыть:
Чтобы скрыть эту информацию, выполним ряд действий.
Посмотрим на текущий параметр postfix_header_checks в localconfig Zimbra (вывод по-умолчанию подсвечен):
su - zimbra -c "zmlocalconfig | grep header_checks" postfix_header_checks = pcre:/opt/zimbra/conf/postfix_header_checks
Создадим файл со своими правилами /opt/zimbra/conf/custom_header_checks со следующим содержимым:
/^Received: (.*?)/ IGNORE /^Received:/ IGNORE /^X-Originating-IP:/ IGNORE /^X-Mailer:/ IGNORE /^Mime-Version:/ IGNORE /Message-Id:\s+<(.*?).JavaMail.zimbra@domain.org>/ REPLACE Message-Id: <$1@domain.org>
[stextbox id=’warning’]ВНИМАНИЕ! В Message-Id необходимо вместо domain.org указать свой домен.[/stextbox]
Для применения указанных правил, в консоли выполняем команды:
su - zimbra -c "zmprov mcf zimbraSmtpSendAddOriginatingIP FALSE" su - zimbra -c "zmprov mcf zimbraMtaBlockedExtensionWarnRecipient FALSE" su - zimbra -c "zmprov mcf zimbraMtaHeaderChecks 'pcre:/opt/zimbra/conf/postfix_header_checks pcre:/opt/zimbra/conf/custom_header_checks'" su - zimbra -c "zmlocalconfig -e postfix_header_checks='pcre:/opt/zimbra/conf/postfix_header_checks, pcre:/opt/zimbra/conf/custom_header_checks'"
После отключения сетевого IPv6 интерфейса на почтовом сервере Zimbra служба amavisd перестала запускаться — amavisd is not running.
Чтобы это исправить необходимо в файле /opt/zimbra/conf/amavisd.conf.in добавить в конец файла строку:
$inet_socket_bind = '127.0.0.1';
Перезапускаем службу amavis после внесения изменений:
su - zimbra -c "zmamavisdctl restart"
Замучали множественные уведомления вида — Disk /dev/loop* at 100% on mail… | Disk /snap/snapd/* at 100% on mail… которые валятся в административный почтовый ящик.
Отключить такие уведомления их можно путем исключения из мониторинга соответствующих девайсов /dev/loop*. Сперва отобразим все что есть на данный момент по файловой системе:
df -h Filesystem Size Used Avail Use% Mounted on udev 3,9G 0 3,9G 0% /dev tmpfs 796M 1,3M 795M 1% /run /dev/sda2 49G 13G 34G 28% / tmpfs 3,9G 0 3,9G 0% /dev/shm tmpfs 5,0M 0 5,0M 0% /run/lock tmpfs 3,9G 0 3,9G 0% /sys/fs/cgroup /dev/mapper/datastore1-zimbra 1,3T 1011G 207G 84% /opt/zimbra /dev/loop2 45M 45M 0 100% /snap/snapd/15904 /dev/loop4 68M 68M 0 100% /snap/lxd/22753 /dev/loop1 62M 62M 0 100% /snap/core20/1494 /dev/loop3 68M 68M 0 100% /snap/lxd/21835 tmpfs 796M 0 796M 0% /run/user/1000 /dev/loop6 62M 62M 0 100% /snap/core20/1518 /dev/loop0 47M 47M 0 100% /snap/snapd/16010 tmpfs 796M 0 796M 0% /run/user/997
Добавляем в исключения мониторинга /dev/loop*, командой:
su - zimbra -c "zmlocalconfig -e zmstat_df_excludes='/dev/loop0:/dev/loop1:/dev/loop2:/dev/loop3:/dev/loop4:/dev/loop5:/dev/loop6:/snap/snapd/16010'"
[stextbox id=’info’]ИНФОРМАЦИЯ. В случае если нужно добавить в исключение дополнительно какое либо устройство, то необходимо в команде выше нужно указывать и все предыдущие добавления, в противном случае исключения будут перезаписаны и значится будет только одно последнее.[/stextbox]
Столкнулся с необходимость в переименовании имени почтового сервера Zimbra, ниже опишу действия как это сделать, для памяти.
1. Переименовываем хост, имя указываем в формате FQDN (прим. mail.contoso.com).
hostnamectl set-hostname <новое имя сервера>
2. В файле /etc/hosts заменяем старое имя на новое.
3. Добавляем А и МХ запись с новым именем почтового сервера в DNS сервере.
4. Останавливаем сервер Zimbra:
su - zimbra -c "zmcontrol stop"
5. Переименовываем сервер Zimbra:
su - zimbra -c "/opt/zimbra/libexec/zmsetservername -n <новое имя сервера> -o <старое имя сервера>"
6. Если в выводе не наблюдается никаких ошибок, то запускаем сервер Zimbra:
su - zimbra -c "zmcontrol start"
7. Выполняем пересоздание базы данных logger, в противном случае в файлах логов будет фигурировать старое имя сервера и из за этого при построения графиков в Веб-интерфейсе будет выпадать ошибка.
После манипуляции и переименованием имени сервера Zimbra, я столкнулся с такой ошибкой в веб-интерфейсе при попытке просмотреть статистику сервера.
Сообщение: system failure: java.lang.ArrayIndexOutOfBoundsException: Index 5 out of bounds for length 5 Код ошибки: service.FAILURE Method: [unknown] Детали:soap:Receiver
Причина данной ошибки в том что в файлах логов присутствует старое имя сервера и при построение графика вываливается в такую ошибку.. Исправить это можно путем пересоздания базы данных логов.
Останавливаем службу logger и переходим в рабочий каталог хранения базы данных logger:
su - zimbra -c "zmloggerctl stop" cd /opt/zimbra/logger
Удаляем текущую базу данных logger:
rm -rf data
Инициализируем новую базу данных logger:
su - zimbra -c "/opt/zimbra/libexec/zmloggerinit"
[stextbox id=’info’]ИНФОРМАЦИЯ. По завершении инициализации служба logger будет автоматически запущена.[/stextbox]
Опишу как установить коммерческий (commercial) SSL-сертификат на почтовый сервер Zimbra Collaboration 8.8.15 GA Release.
В случае если у вас имеется только PFX файл сертификата, то при помощи OpenSSL можно легко извлечь закрытый ключ сертификата, сам сертификат и цепочку сертификатов CA:
openssl pkcs12 -in <filename.pfx> -nocerts -nodes | sed -ne '/-BEGIN PRIVATE KEY-/,/-END PRIVATE KEY-/p' > <clientcert.key> openssl pkcs12 -in <filename.pfx> -clcerts -nokeys | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > <clientcert.cer> openssl pkcs12 -in <filename.pfx> -cacerts -nokeys -chain | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > <cacerts.cer>
Копируем файлы сертификатов в каталог /opt/zimbra/ssl/zimbra/commercial/ и назначаем права доступа для них.
chown zimbra:zimbra -R /opt/zimbra/ssl/zimbra/commercial/* chmod 640 -R /opt/zimbra/ssl/zimbra/commercial/*
[stextbox id=’warning’]ВНИМАНИЕ! прошу обратить внимание что путь установки Zimbra может отличаться от моего, поэтому учитывайте это при копировании сертификатов.[/stextbox]
Выполняем верификацию сертификатов:
sudo su - zimbra -c "zmcertmgr verifycrt comm /opt/zimbra/ssl/zimbra/commercial/clientcert.key /opt/zimbra/ssl/zimbra/commercial/clientcert.cer /opt/zimbra/ssl/zimbra/commercial/cacerts.cer"
прим. Успешная верификация сертификата выглядит вот так:
** Verifying '/opt/zimbra/ssl/zimbra/commercial/clientcert.cer' against '/opt/zimbra/ssl/zimbra/commercial/clientcert.key' Certificate '/opt/zimbra/ssl/zimbra/commercial/clientcert.cer' and private key '/opt/zimbra/ssl/zimbra/commercial/clientcert.key' match. ** Verifying '/opt/zimbra/ssl/zimbra/commercial/clientcert.cer' against '/opt/zimbra/ssl/zimbra/commercial/cacerts.cer' Valid certificate chain: /opt/zimbra/ssl/zimbra/commercial/clientcert.cer: OK
Полезно знать и уметь перевыпускать самоподписанный сертификат Zimbra. При установке Zimbra Collaboration сертификат выдается сроком на пять лет. Помимо того что нужно своевременно перевыпускать новый сертификат по истечении срока старого, так бывают случаи когда нужно сделать это досрочно, например в следствии изменении имени хоста или доменного имени.
Повышаем свои права до суперпользователя:
sudo su
Переходим в каталог:
cd /opt/zimbra/bin
Создаем новый корневой сертификат:
./zmcertmgr createca -new
При работе с почтовым сервером Zimbra Collaboration, возникает проблема с самоподписанным сертификатом, почтовые клиенты и браузеры каждый раз выдают сообщение об ошибке проверки сертификата и угрозе безопасности. Это создает неудобство в работе, т.к. каждый раз пользователям приходится игнорировать непроверенный сертификат. Разберем как исправить эту ситуацию.
Вот такое предупреждение безопасности мы наблюдаем при попытке подключится к серверу с самоподписанным сертификатом.
По данной статье был развернут почтовый сервер Zimbra Collaboration 8.6. Для себя хочу проработать процесс обновления почтового сервера. Выполню обновление с версии 8.6.0 до 8.7.0.
Итак мы имеем рабочую версию Zimbra Collaboration 8.6
Рассмотрим как делать резервные копии списка учетных записей, а так же списков рассылки. Данный бекап может пригодится, в случае переноса почтового сервера на другую машину, да и в целом на случай непредвиденного сбоя, всегда можно будет восстановить быстро как учетные записи, так и группы рассылки.
Итак мы имеем развернутый по этой статье почтовый сервер Zimbra Collaboration 8.6
на Ubuntu 14.04 Trusty Tahr. Для создания бекапа данных мы будем использовать bash скрипты.
Создаем текстовый файл и делаем его исполняемым:
nano backup_accounts.sh sudo chmod +x backup_accounts.sh
В созданный скрипт вписываем следующее (в параметрах настроек скрипта указываем данные свои):
В этой статье мы разбирали как развернуть Zimbra Collaboration 8.6
на Ubuntu 14.04 Trusty Tahr
. В бесплатной версии почтового сервера нет удобного функционала по бекапу и восстановлению почтовых ящиков. А создание бекапов, есть неотъемлемая часть работы любого системного администратора. Да и наличие бекапа всегда нас спасет в трудную минуту.
Создавать бекапы и восстанавливать их же будем посредством bash-скриптов
. Создавать и восстанавливать почтовые ящики мы будем на горячую так сказать, без остановки почтового сервера.
Создаем текстовый файл и делаем его исполняемым:
nano backup_all_mailbox.sh sudo chmod +x backup_all_mailbox.sh
В созданный скрипт вписываем следующее (в параметрах настроек скрипта указываем данные свои):
#!/bin/bash ##################### # Настройки скрипта # ##################### # Путь к месту бекапа Path_backup="/home/jakonda/bkzm" # Временный файл для работы Source_list="/home/jakonda/temp" # Название домена Domain="jakondo.ru" # Значение текущей даты Current_date=$(date +%d-%m-%Y) # Лог-файл Log=$Path_backup"/"$Current_date"/log" echo "#####################################################" echo "# Резервное копирование всех почтовых ящиков Zimbra #" echo "#####################################################" echo "" echo "Время начала бекапа всех почтовых ящиков - $(date +%T)" echo "Начало бекапа - $(date +%T)" > $Log # Запоминаем время начала бекапа Begin_time=$(date +%s) echo "" # Определяем список всех имеющихся почтовых ящиков echo "Формируем список всех почтовых ящиков для бекапа..." /opt/zimbra/bin/zmprov -l gaa $Domain > $Source_list if [ $? -eq 0 ]; then echo -n "$(tput hpa $(tput cols))$(tput cub 6)[OK]" echo "Формирование списка почтовых ящиков успешно выполнено." >> $Log echo else echo -n "$(tput hpa $(tput cols))$(tput cub 6)[FAIL]" echo "Формирование списка почтовых ящиков не удалось выполнить. Завершение работы (Неудача)." >> $Log exit echo fi # Проходимся по всем ящикам в полученном списке и делаем бекап каждого echo "Выполняем резервное копирование всех почтовых ящиков" echo "----------------------------------------------------" mkdir -p $Path_backup/$Current_date/ echo "Создание каталога $Current_date для размешения бекапа." >> $Log for mailbox in $( cat $Source_list); do echo "Резервирование почтового ящика - $mailbox" /opt/zimbra/bin/zmmailbox -z -m $mailbox getRestUrl "//?fmt=tgz" > $Path_backup/$Current_date/$mailbox.tgz if [ $? -eq 0 ]; then echo -n "$(tput hpa $(tput cols))$(tput cub 6)[OK]" echo "Бекап почтового ящика $mailbox успешен" >> $Log echo else echo -n "$(tput hpa $(tput cols))$(tput cub 6)[FAIL]" echo "Бекап почтового ящика $mailbox не удачно" >> $Log echo fi done # Вычисление времени работы бекапа почтовых ящиков End_time=$(date +%s) Elapsed_time=$(expr $End_time - $Begin_time) Hours=$(($Elapsed_time / 3600)) Elapsed_time=$(($Elapsed_time - $Hours * 3600)) Minutes=$(($Elapsed_time / 60)) Seconds=$(($Elapsed_time - $Minutes * 60)) echo "Затрачено времени на резервное копирование : $Hours час $Minutes минут $Seconds секунд" echo "Затрачено времени на резервное копирование : $Hours час $Minutes минут $Seconds секунд" >> $Log
Разберем как развернуть мощный и в тоже время бесплатный почтовый сервер Zimbra Collaboration 8.6. Zimbra может соперничать с Microsoft Exchange своим функционалом, в который входит необходимый набор инструментов для работы в корпоративной среде. Zimbra имеет удобный и понятный Web интерфейс, поддерживающий работу мобильных устройств, что не мало важно для сотрудников находящихся вне офиса.
Исходные данные для развертывания Zimbra:
Задача: