Zarafa

Материал из ALT Linux Wiki
Перейти к: навигация, поиск

Инструкция по установке 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 описывается тут.

Ссылки

  1. Installing Zarafa from Ubuntu Repository
  2. Zarafa Community
  3. Zarafa Wiki