07 августа 2017

Установка Zimbra 8.6 на Ubuntu 14.04 Server x64

Описание:

Zimbra Collaboration Suite (ZCS) — программный продукт для автоматизации совместной деятельности рабочих групп, созданный компанией Zimbra, находящейся в Сан Матео, штат КалифорнияСША. В сентябре 2007 года компания была куплена Yahoo![1], а в январе 2010 VMware объявила о покупке у компании Yahoo подразделения Zimbra. В июле 2013 была куплена компанией Telligent Systems[2]. Среди продуктов для работы с электронной почтой Zimbra вполне может соперничать с Microsoft Exchange[3], а по своим возможностям сравнивается с Google Docs и Google Apps[1].
Более полное описание по ссылке

Системные требования:

Для оценки и тестирование
  • 64-битный процессор с частотой 1,5 ГГц Intel / AMD
    • Требования к оперативной памяти:
    • Для single-server, минимум требуется 8 Гб оперативной памяти.
    • Для установи multi-server, обращайтесь в отдел продаж Zimbra для рекомендаций.
    • 5 Гб свободного места на диске для программного обеспечения и журналов
    • Место под временные файлы для установки и обновлений *
    • Дополнительное дисковое пространство для хранения почты
Для производственной среды
  • Intel / AMD 2.0 ГГц + 64 битный процессор
    • Требования к оперативной памяти:
    • Для установки single-server, минимум требуется 8 Гб оперативной памяти.
    • Для установки multi-server, обращайтесь в отдел продаж Zimbra для рекомендаций.
    • Место под временные файлы для установки и обновлений *
    • 10 Гб свободного дискового пространства для программного обеспечения и журналов (SATA или SCSI для производительности и RAID / Mirroring для резервирование)
    • Дополнительное дисковое пространство для хранения почты
    * Временные файлы: Zimbra требует 5 Гб для /OPT / Zimbra, плюс дополнительное пространство для хранения почты. Разные дополнения еще порядка 100 мегабайт.

Общие требования:

  • Настройка межсетевого экрана. Межсетевой экран должен быть отключен.
    • RAID-5 не рекомендуется для установок с более 100 пользователями.

Шаг 1 — подключиться к серверу, получить привилегии суперпользователя и установить следующие необходимые пакеты.

# apt-get install libgmp10 libperl5.18 unzip pax sysstat sqlite3 libaio1 (если есть DNS сервер)
Понадобится только прописать mx-запись, для вашего почтового сервера.
Если DNS сервера нет, то можно установить BIND или воспользоваться DNSMASQ
# apt-get install libgmp10 libperl5.18 unzip pax sysstat sqlite3 libaio1 dnsmasq (если нет DNS сервера)

Шаг 2 — Настройка сети

Задаем статический IP адрес. Для этого отредактируем файл:
# nano /etc/network/interfaces
2-Редактируем interfaces

Настройка хоста и DNS-сервера
Шаг 3 – редактируем файл hostname and hosts
# nano /etc/hostname
Меняем имя хоста на ваш домен такого типа mail.youdomain.ru, в моем случае это mail.salf-net.ru
2-Редактируем hostname
# nano /etc/hosts
Добавляем такую строку 10.90.2.10   mail.salf-net.ru  mail
2-Редактируем hosts
Шаг 4 – редактируем файл конфигурации Dnsmasq
# nano /etc/dnsmasq.conf
Добавляем такие строки
server=10.90.1.254 (DNS сервер)
domain=salf-net.ru
mx-host=salf-net.ru, mail.salf-net.ru, 5
mx-host=mail.salf-net.ru, mail.salf-net.ru, 5
listen-address=127.0.0.1


Шаг 5 – Перезагружаем систему
# reboot
Проверяем настройку DNSMASQ
# dig salf-net.ru mx

5- dig mx

Установка Zimbra

Шаг 6 — скачивание дистрибутива с официального сайта
# wget https://files.zimbra.com/downloads/8.6.0_GA/zcs-8.6.0_GA_1153.UBUNTU14_64.20141215151116.tgz

Шаг 7 — разархивирование дистрибутива
# tar -xvf zcs-8.6.0_GA_1153.UBUNTU14_64.20141215151116.tgz
Шаг 8 — Установка Zimbra
Заходим в директорию разархивированного дистрибутива.
# cd zcs*
Зупуск установки
# ./install.sh

Zimbra Install.sh
На вопрос  согласны ли мы с лицензией:
Do you agree with the terms of the software license agreement? [N]
Тут надо нажать: «Y» и подтвердить Enter.
На данном этапе, Zimbra проверит необходимые пакеты и попросит вас согласиться на их установку.
Zimbra ldap
Далее выбираем необходимые нам пакеты:
Zimbra-ldap обязателен, если не используете сторонний ldap сервер.
Zimbra-DNSCache нам не требуется, потому что мы используем Dnsmasq.
Zimbra-Proxy мне тоже не нужен.
Zimbra system
На запрос
The system will be modified.  Continue? [N]
Нажимаем «Y»
Ожидаем некоторое время.
Шаг 9 — настройка «Zimbra-store»
Надо задать пароль администратора.
Zimbra menu
Выбираем Enter
Zimbra menu64
Потом Enter
Вводим пароль администратора.
Теперь введем букву «r» и нажмем Enter.
Zimbra config
В меню:
*** CONFIGURATION COMPLETE — press «a» to apply
И на запрос Select from menu, or press «a» to apply config (? -help) введем букву «a» и нажмем Enter.
На запрос
Save configuration data to a file? [Yes] 
введем y и нажмем Enter.
Следующий вопрос
Save config in file: [/opt/zimbra/config.9020] 
нажимаем Enter (по умолчанию) или новое имя файла, в который будет сохранена конфигурация.
На запрос
The system will be modified — continue? [No]
введем «y» и нажмем Enter.
Далее выбираем “a” для применения конфигурации и далее “y”
Zimbra save
Шаг 10 — Проверяем работу сервисов
Заходим под пользователем zimbra:
# sudo su zimbra
Выполняем команду
# zmcontrol status
Вывод должен быть таким:
Zimbra status
После этого можно зайти через вэб-интерфейс
https://mail.salf-net.ru:7071 для администрирования zimbra сервер
http://mail.server.ru или https://mail.salf-net.ru для входа в вэб-клиент.

Zimbra - перенос почтовых ящиков

Столкнулся с задачей - необходимо перенести один из доменов на другой хост, думаю ок. Погуглил, нашел стандартные костыли типа zmmboxmove, думаю о как круто, все из коробки, но оказывается данное решение есть только в платной версии. Начал смотреть дальше, нашел миграцию с помощью встроенного механизма, но там теряются пароли пользователей, что минус, так как надо генерить новые, а это стресс для юзеров. В итоге было решено создать аналогичных пользователей или переместить с помощью встроенного механизма, а дальше перенести хеши паролей. По-быстрому решил заскриптовать, и вот что из этого вышло. Первым делом необходимо получить список аккаунтов, которые мы хотим перенести: 
mkdir /tmp/zimbra
cd /tmp/zimbra
zmprov -l gaa example.com | grep -v galsync@example.com > users.txt
Далее нам необходимо получить хеши
pass.sh
#!/bin/bash
cat users.txt | while read line
do
    array[i]="$line"
    zmprov -l ga ${array[i]} userPassword | sed s/#\ name/zmprov\ ma/ | tr '\n' ' ' | sed s/:\ /\ \'/ | sed s/\ \ /\',/ | tr ',' '\n' >> /tmp/zimbra/restore_pass.sh
    let i++
done
После этого у нас есть файл с командами, которые устанавливают старые-новые хеши.
Экспортируем ящики
export.sh
#!/bin/bash
cat users.txt | while read line
do
    array[i]="$line"
    zmmailbox -z -m ${array[i]} -t 0 getRestURL "//?fmt=tgz" > /tmp/zimbra/${array[i]}.tar.gz
    let i++
done
Устанавливаем права на каталог
chmod -R 777 /tmp/zimbra/
Cливаем все что получилось на новый сервер и начинаем импортить ящики
import.sh
#!/bin/bash
cat users.txt | while read line
do
    array[i]="$line"
    zmprov ca ${array[i]} ZmHpg0LeQSPNZE0c
    zmmailbox -z -m ${array[i]} -t 0 postRestURL "//?fmt=tgz&resolve=reset" /tmp/zimbra/${array[i]}.tar.gz
    let i++
done
В этом шаге мы создаем ящики и сразу имортим в них содержимое, ну а далее просто остается установить хеши с помощью restore_pass.sh