Zarafa
Инструкция по установке Zarafa Collaboration Platform
Для ALTLinux собирается Open Source & Community Version Zarafa с версии 7.0.0 rc1, в которую включены наши доработки.<br\> Git-репозиторий: http://git.altlinux.org/people/radik/packages/zarafa.git
Эта инструкция предназначена для описания настройки Zarafa-Server и сопутствующих сервисов почтового сервера и органайзера Zarafa. В качестве MTA (агента по передаче писем) принят postfix. Использование других MTA возможно, но в этом статье они рассмотрены не будут. Zarafa предполагается использовать как замена Microsoft Exchange. Дистрибутив Linux - AltLinux p6. Инструкция написана 04.11.2011, последнее обновление 28.03.2012, версии пакетов актуальны на этот момент с репозитория p6. Настройка проведена без ssl, для этого посвящена отдельная статья. Автор инструкции - Айнур Шакиров. На данный момент инструкция не закончена до конца.
Примечание: я как автор этой инструкции не могу дать 100% гарантии, что всё нижесказанное будет работать так, как я описал. Если вы нашли ошибку или недоработку, или считаете, что статью нужно дополнить, прошу оповестить меня об этом. Я с радостью приму Вашу помощь.
Примечание 1.5. Большинство операции выполняются из-под root.
Примечание 2. Если что-то не сработало, не паникуйте, перепроверьте все набранные данные, так же не будет лишним проверить багтрекер. В моей практике происходили самые разнообразные проблемы и, слава науке, все они успешно разрешились. Поэтому ваша проблема тоже, скорее всего, решаема. Еще один совет - всегда старайтесь использовать последние версии всех сервисов.
Итак, начнём менять жизнь к лучшему.
Предварительная настройка
Установка необходимых пакетов
Для последующей настройки нам необходимы следующие пакеты (некоторые пакеты опциональны, например, для TLS):
Apache:
apt-get install apache2 apache2-mod_php5 apache2-mod_tls
Postfix:
apt-get install postfix postfix-mysql postfix-ldap
Выбор mysql и ldap-модулями зависит от того, где в дальнейшем будут храниться ваши пользователи.
MySQL
apt-get install mysql
Zarafa
apt-get install zarafa
Zarafa Webaccess и WebApp
apt-get install zarafa-webaccess zarafa-webapp
Все остальные необходимые пакеты установятся (точнее, должны установиться) по зависимостям.
Думаю, особых комментариев по поводу пакетов делать не надо, по названиям пакетов понятно, какой пакет что делает и зачем нужен. Уточнение дам насчёт webaccess и webapp
1. Zarafa Webaccess - это классический веб-интерфейс Zarafa. Очень похож на Outlook 2003. На данный момент он уже устарел по технологиям построения интерактивных веб-интерфейсов (по сути, webaccess практически не интерактивен), но несмотря на это является довольно мощной и функциональной "мордой" для почты.Все остальные необходимые пакеты установятся (точнее, должны установиться) по зависимостям.
Думаю, особых комментариев по поводу пакетов делать не надо, по названиям пакетов понятно, какой пакет что делает и зачем нужен. Уточнение дам насчёт webaccess и webapp
1. Zarafa Webaccess - это классический веб-интерфейс Zarafa. Очень похож на Outlook 2003. На данный момент он уже устарел по технологиям построения интерактивных веб-интерфейсов (по сути, webaccess практически не интерактивен), но несмотря на это является довольно мощной и функциональной "мордой" для почты.
2. Zarafa WebApp. Предполагаемая замена Webaccess. Использует последние достижения в Web, такие как JS, продвинутый CSS и прочие навороты. На данный момент пока является недоработанным, но развивается очень быстро. Главная его цель - догнать и перегнать по функциям Webaccess и предложить удобный интерфейс. Пока получается хорошо, разработчикам - успехов.
О установке остальных пакетов будет сказано по мере повествования.
Настройка системы и служб
Теперь перейдем к настройке сервисов, которые пока прямо не относятся к почте.
Первый шаг - добавьте пользователя и группу vmail командой useradd -r vmail. Вы вольны указать любое другое имя (кроме системных), мы будем ориентироваться на vmail в качестве примера.
Второй шаг - в /etc/sysconfig/zarafa убедитесь, что во всех переменных указана системная локаль (обычно ru_RU.UTF-8). По умолчанию в Альте (да и не только в нём) указывается или просто UTF-8, или С, что является неправильной локалью, Zarafa-server упадет, жалуясь на нее.
Далее укажите, что postfix работал в режиме сервера:
control postfix server
Следующий шаг - настройте сетевой режим mysql. Для этого закомментируйте след. строчку в файле */var/lib/mysql/my.cnf*
#skip-networking
Дальнейшее действие - учитывая, что zarafa будет работать под пользователем vmail, для сервисов zarafa по умолчанию не будет доступен каталог /var/log/zarafa, предназначенная для журналов. Для исправления:
chown vmail:vmail /var/log/zarafa
Однако тут Вас может ждать напасть, если вы запустили zarafa с правами root, но далее поменяли пользователя vmail (далее об этом ниже). В этом случае удалите все логи в каталоге /var/log/zarafa и перезапустите zarafa уже с правами vmail или рекурсивно поменяйте их:
chown -R vmail:vmail /var/log/zarafa/
Последним шагом станет указание пароля root для mysql. Для этого можно выполнить след. последовательность шагов:
sudo /etc/init.d/mysqld start; sudo mysqladmin -u root password ваш_пароль
Командой mysql -u root -p и далее набором пароля проверьте параметры входа. Вошли - значит, предварительная настройка завершена до конца и успешно.
Дополнение по базе данных. В Альте по умолчанию запрещено входить в базу в качестве root, используя удалённый вход. О том, что делать в этом случае - смотрите в начале практической настройки.
Если вы хотите заняться оптимизацией mysql и zarafa, сделайте это заранее, до запуска соответствующих служб. Сами оптимизации описаны в конце статьи.
Также не забудьте добавить необходимые службы в автозапуск (просто выделите всю строку и разом выполните):
chkconfig mysqld on; chkconfig httpd2 on; chkconfig postfix on; chkconfig zarafa-server on;chkconfig zarafa-dagent on chkconfig zarafa-gateway on; chkconfig zarafa-ical on; chkconfig zarafa-indexer on; chkconfig zarafa-monitor on chkconfig zarafa-spooler on
Практическая часть настройки
Для того, чтобы не использовать root удалённо (обычно такой вход запрещён), с самого начала создадим необходимого пользователя с именем zarafa в mysql и дадим ему необходимые права:
[root@zarafa client] mysql -u root -p mysql> create user zarafa identified by 'ваш_пароль'; mysql> grant all privileges on zarafa.* to 'zarafa'@'%' identified by 'ваш_пароль' with grant option; mysql> flush privileges;
Настройка postfix. (/etc/postfix/)
Предусмотрено два сценария настройки postfix.
Если пользователи будут обитать в mysql (простой режим, подходит чисто на "поиграть")
В файл *main.cf* добавьте этот кусок конфигурации (для того, чтобы узнать имя доменное имя, наберите команду *host inet-ip* или *hostname -f*):
mydomain = example.com myhostname = zarafa.example.com myorigin = example.com mailbox_command = /usr/bin/zarafa-dagent "$USER" mailbox_transport = zarafa: zarafa_destination_recipient_limit = 1 smtp_helo_name = smtp.example.com mydestination = localhost, example.com, zarafa.example.com alias_maps = hash:/etc/postfix/aliases alias_database = hash:/etc/postfix/aliases virtual_alias_maps = mysql:/etc/postfix/mysql-aliases.cf virtual_mailbox_maps = mysql:/etc/postfix/mysql-aliases.cf mynetworks = 127.0.0.0/8 inet_interfaces = all biff = no relayhost = recipient_delimiter = + message_size_limit = 33554432 smtpd_banner = $myhostname ESMTP $mail_name ############################################################ # Mail system restrictions (for SASL) ############################################################ smtpd_helo_restrictions = permit_mynetworks, permit_sasl_authenticated smtpd_client_restrictions = permit_mynetworks, permit_sasl_authenticated smtpd_sender_restrictions = permit_mynetworks, permit_sasl_authenticated smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination ############################################################ ############################################################ # TLS parameters (port 25) ############################################################ smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem smtpd_tls_cert_file=/etc/postfix/ssl/postfix_public_cert.pem smtpd_tls_key_file=/etc/postfix/ssl/postfix_private_key.pem smtpd_use_tls=yes smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache smtp_use_tls = yes tls_random_source = dev:/dev/urandom smtp_tls_note_starttls_offer = yes # Same as defaults #smtpd_enforce_tls = no #smtpd_tls_auth_only = no #smtpd_tls_received_header = no #smtpd_tls_session_cache_timeout = 3600s
В начале мы указываем параметры самой почтовой службы, далее настраиваем самые необходимые разрешения (для работы SASL) и настройки TLS для шифрования исходящей почты (дополнительно об этом в статье про шифрование). Остальные настройки postfix будут рассмотрены отдельно.
Теперь уточнения по представленной конфигурации. Во-первых, здесь далеко не все настройки postfix, которые теоретически могут вам пригодиться, представлена лишь минимальная конфигурация. Во-вторых, для начала закомментируйте все строчки, относящиеся к TLS, с ними потом разберётесь. Далее. Конфигурация дана в случае использования mysql в качестве хранилища для пользователей, но этот вариант нежелателен из-за малой гибкости решения и при если сервер будет "боевым", то настоятельно рекомендуем использовать LDAP (наш выбор - 389DS, о нём - в отдельном статье). Так же не забудьте поменять максимальный размер письма, если нужно, здесь он равен 32 MiB.
Отдельно скажу о relayhost. Он намеренно оставлен пустым. Данная настройка заставит использовать postfix relay почтового сервера, куда посылается письмо. Это решает тучу проблем с отправкой писем, поэтому я рекомендую оставить его так. Однако, в случае использования стороннего relay, вы его сможете спокойно менять, работоспособность самого postfix и zarafa не пострадает (если, конечно, relay рабочий).
Установка
Устанавливаем необходимые компоненты <br\> MySQL:
apt-get install MySQL-server
Postfix:
apt-get install postfix
Apache2:
apt-get install apache2 apache2-mod_php5
Zarafa:
apt-get install zarafa zarafa-webaccess
Настройка
Внимание! Zarafa-Server по-умолчанию не запущен так как еще не введен пароль от MySQL-Server.<br\> Запускаем mysql-server:
service mysqld start
Задаем пароль root для mysql-server:
mysqladmin -u root password new_password
Проверяем доступ:
# mysql -u root -p Enter password:
Укажите пароль root от MySQL-базы в /etc/zarafa/server.cfg
vim /etc/zarafa/server.cfg
Добавляем в /etc/postfix/main.cf следующие строчки:
mailbox_command = /usr/bin/zarafa-dagent "$USER" mailbox_transport = zarafa: zarafa_destination_recipient_limit = 1
Так-же необходимо добавить ваш maildomain in /etc/postfix/main.cf.<br\> Например:
mydestination = hostname.local, example.com, localhost.hostname.local, localhost
Добавьте в /etc/postfix/master.cf
zarafa unix - n n - 10 pipe flags=DRhu user=vmail argv=/usr/bin/zarafa-dagent -R ${recipient}
Создаем пользователя vmail:
adduser -r vmail
Добавьте пользователя vmail в параметр variable local_admin_users в /etc/zarafa/server.cfg. <br\> Теперь запускаем необходимые нам службы:
/etc/init.d/mysqld restart
/etc/init.d/httpd2 restart
/etc/init.d/postfix restart
/etc/init.d/zarafa-server restart
Добавляем их в автозагрузку:
chkconfig mysqld on
chkconfig httpd2 on
chkconfig postfix on
Создаем нового пользователя:
/usr/bin/zarafa-admin -c test -p password -e test@example.com -f "Zarafa Test"
После пройдите на http://ваш_ip/webaccess, вы получите доступ к веб-морде Zarafa, войдите под созданным пользователем и отправьте письмо самому себе. Если письмо приходит, на этом минимальная настройка Zarafa завершена. Если нет, проверьте логи postfix (/var/log/maillog).
Подключение к LDAP
Вопрос подключения Zarafa к LDAP описывается тут.