Roundcube: различия между версиями
Нет описания правки |
|||
Строка 1: | Строка 1: | ||
Очень быстрое КакСде по подъёму веб-почты из пакета {{pkg|roundcube}} по состоянию на версию | Очень быстрое КакСде по подъёму веб-почты из пакета {{pkg|roundcube}} по состоянию на версию 1.2.3 и выше. | ||
== Пакеты == | == Пакеты == |
Текущая версия от 21:10, 13 июля 2017
Очень быстрое КакСде по подъёму веб-почты из пакета roundcube по состоянию на версию 1.2.3 и выше.
Пакеты
apt-get install roundcube roundcube-apache2 apache2-mod_php5 php5-mbstring php5-sockets php5-fileinfo php5-intl php5-mysql MySQL-server postfix-dovecot dovecot control postfix server for i in dovecot httpd2 mysqld postfix; do chkconfig $i on && service $i start; done
Аутентификация
При непустом username_domain не пустит ни user, ни user@localhost, т.к. dovecot идёт в pam с "user@localhost" в обоих случаях — http://www.roundcubeforum.net/index.php/topic,10917.msg56250.html#msg56250:
echo "auth_username_format = %n" >> /etc/dovecot/conf.d/10-auth.conf service dovecot restart
(ну или «не делайте так»)
Дамп базы
В пакете есть, но как документация; делаем симлинк туда, где ожидает инсталятор:
mkdir -p /usr/share/roundcube/SQL ln -s /usr/share/doc/roundcube-0.7.1/SQL/mysql.initial.sql /usr/share/roundcube/SQL/mysql.initial.sql
Создаём базу (возможно, инсталер и сам справится при изначально беспарольном mysql root, не проверял; пароль ставьте свой, разумеется):
mysqladmin create roundcubemail echo "grant all on roundcubemail.* to roundcube@localhost identified by '123456'" | mysql
Настройка
Выставляем временной пояс: в файле /etc/php/*/apache2-mod_php/php.ini
date.timezone = 'Europe/Moscow'
и выполняем
# service httpd2 reload
Включаем конфигурационный файл apache2 для rouncube:
# a2enextra roundcube # systemctl restart httpd2
Для того чтобы разрешить доступ к web-инсталятору, приведите файл /usr/share/roundcube/installer/.htaccess к следующему виду, указав IP-адрес компьютера с которого Вы будете настраивать (опасно! не забудьте отключить!):
<ifModule mod_authz_core.c> Require ip 192.168.135.190 </ifModule> <ifModule !mod_authz_core.c> Order Allow,Deny Allow from 192.168.135.190 </ifModule>
Переходим на http://192.168.135.190/roundcube/installer/, результат настройки загружаем в /etc/roundcube/config.inc.php и прикрываем правами:
chgrp _webserver /etc/roundcube/config.inc.php chmod 640 /usr/share/roundcube/config/config.inc.php
Переходим в web-инсталяторе на вкладку 3.Test config и инициализируем базу данных. Для того чтобы запретить доступ к web-инсталятору, приведите файл /usr/share/roundcube/installer/.htaccess к следующему виду:
<ifModule mod_authz_core.c> Require all denied </ifModule> <ifModule !mod_authz_core.c> Order Allow,Deny Deny from all </ifModule>
И запретите доступ к каталогу:
# chmod 0 /usr/share/roundcube/installer
Проверка
Заходим на http://localhost/roundcube/ тестовым локальным пользователем, пишем письмо второму тестовому пользователю, выходим, заходим тем, проверяем. УМВР. :)
AD SSO
Для работы прозрачной аутентификации необходимо настроить прозрачную аутентификацию на web-сервере Apache2/AD-auth и на imap сервере Dovecot/AD-auth. Так же необходимо включить нужный плагин и указать SPN в файле config.inc.php:
$config['plugins'] = array('krb_authentication'); $config['krb_authentication_context'] = 'imap/rcserver.dome.teste@DOME.TESTE';
Адресная книга AD
Для возможности формирования адресной книги на основе данных о пользователях из Active Directory необходимо обеспечить прозрачную аутентификацию на LDAP сервере домена. Для этого необходимо установить следующий пакет:
# apt-get install pear-Net_LDAP3
И добавить настройки адресной книги в config.inc.php:
$config['ldap_public'] = array( 'MyAdLdap' =>array ( 'name' => 'Big Company, Inc', 'hosts' => array('dce.dome.teste'), 'sizelimit' => 6000, 'port' => 389, 'use_tls' => false, 'user_specific' => false, 'base_dn' => 'CN=Users,DC=dome,DC=teste', 'bind_dn' => '', 'bind_pass' => '', 'bind_user' => '', 'writable' => false, 'ldap_version' => 3, 'search_fields' => array( 'mail', 'cn', ), 'auth_method' => 'GSSAPI', 'name_field' => 'cn', 'email_field' => 'mail', 'surname_field' => 'sn', 'firstname_field' => 'givenName', 'sort' => 'sn', 'scope' => 'list', 'filter' => '(&(mail=*)(|(&(objectClass=user)(!(objectClass=computer)))(objectClass=group)))', 'global_search' => true, 'fuzzy_search' => true ), );