Заключительная статья из серии статей о настройке почтовой системы. В прошлых заметках была рассмотрена настройка серверной части почтовой системы, настройка SSL/TLS и настройка почтового клиента Thunderbird/Icedove: Установка и настройка Postfixadmin, Установка и настройка Dovecot, Установка и настройка Postfix, OpenDKIM, ClamAV-Milter, Milter-Greylist и Настройка SSL/TLS в Postfix, Dovecot, Lighttpd, Дополнения Thunderbird/Icedove.
На этот раз мы рассмотрим настройку почтового веб-клиента Roundcube.
Для работы Roundcube понадобится веб-сервер с поддержкой PHP и одна из СУБД: MySQL, PostgreSQL (в настройках самого Roundcube была ещё замечена возможность работы с SQLite, однако в пакетах никаких признаков поддержки SQLite обнаружено не было).
Установим необходимые пакеты, если они ещё не установлены:
# apt-get install mysql-server mysql-client lighttpd php5-cgi
Установим Roundcube и пакеты с дополнительными плагинами:
# apt-get install roundcube php-auth-sasl roundcube-plugins roundcube-plugins-extra
В процессе установки пакета roundcube-core будет предложено настроить базу данных для Roundcube:
Подготовим файл /etc/lighttpd/conf-available/50-roundcube.conf, используя для его составления информацию из файлов /etc/roundcube/lighttpd.conf и /usr/share/roundcube/.htaccess:
$HTTP["host"] == "mail.domain.tld" { server.document-root = "/var/lib/roundcube" alias.url += ( "program/js/tiny_mce" => "/usr/share/tinymce/www", "favicon.ico" => "/usr/share/roundcube/skins/default/images/favicon.ico" ) $HTTP["url"] =~ "^/config|/temp|/logs" { url.access-deny = ( "" ) } }
Создадим файл /etc/php5/mods-available/roundcube.ini, используя при его составлении информацию из файла /usr/share/roundcube/.htaccess:
upload_max_filesize=5M ;post_max_size=6M ;session.gc_maxlifetime=21600 ;session.gc_divisor=500 ;session.gc_probability=1 ;mbstring.func_overload=0
В этот файл я вписал лишь те настройки, которые отличаются от дистрибутивных. Настройки сессии я не считаю столь важными, чтобы заменять ими стандартные, поэтому их я закомментировал. Также я закомментировал настройку post_max_size, потому что другое приложение использует большее значение. Из всех настроек я оставил только upload_max_filesize, зато закомментировал её в другом приложении, т.к. там её значение было меньше.
Настроим roundcube, прописав настройки в файл /etc/roundcube/main.inc.php:
$rcmail_config['default_host'] = 'tls://%n'; $rcmail_config['username_domain'] = '%d'; $rcmail_config['mail_domain'] = '%d'; $rcmail_config['smtp_server'] = 'tls://%n'; $rcmail_config['smtp_user'] = '%u'; $rcmail_config['smtp_pass'] = '%p'; $rcmail_config['smtp_helo_host'] = ''; $rcmail_config['force_https'] = true;
О настройках:
Теперь можно подключать оба файла к использованию:
# ln -s ../mods-available/roundcube.ini conf.d/30-roundcube.ini # lighty-enable-mod roundcube # /etc/init.d/lighttpd restart
И войти в веб-интерфейс Roundcube по ссылке http://mail.domain.tld:
Из всех плагинов меня в первую очередь заинтересовали три:
Для настройки плагина password впишем в файл /etc/roundcube/plugins/password/config.inc.php следующие настройки:
<?php // Empty configuration for password // See /usr/share/roundcube/plugins/password/config.inc.php.dist for instructions $rcmail_config['password_driver'] = 'sql'; $rcmail_config['password_confirm_current'] = true; $rcmail_config['password_minimum_length'] = 7; $rcmail_config['password_db_dsn'] = 'mysql://roundcube:roundcube_password@localhost/postfixadmin'; $rcmail_config['password_query'] = 'UPDATE mailbox SET password=%c, modified=NOW() WHERE username=%u'; ?>
И дадим пользователю roundcube права на изменение пароля:
INSERT INTO tables_priv(host, db, user, table_name, table_priv, column_priv) VALUES ('localhost', 'postfixadmin', 'roundcube', 'mailbox', '', 'Select,Update'); INSERT INTO columns_priv(host, db, user, table_name, column_name, column_priv) VALUES ('localhost', 'postfixadmin', 'roundcube', 'mailbox', 'username', 'Select'), ('localhost', 'postfixadmin', 'roundcube', 'mailbox', 'password', 'Update'), ('localhost', 'postfixadmin', 'roundcube', 'mailbox', 'modified', 'Update'); FLUSH PRIVILEGES;
Теперь включим использование плагина password, добавив его в настройку plugins в файле /etc/roundcube/main.inc.php:
$rcmail_config['plugins'] = array('password');
После этого в веб-интерфейсе Roundcube появится дополнительная вкладка для смены пароля:
У этого плагина, на мой взгляд, есть лишь одна настройка, заслуживающая внимания - acl_advanced_mode, с помощью которой можно включить более тонкую настройку IMAP ACL. Для её включения нужно вписать в файл /etc/roundcube/plugins/acl/config.inc.php следующую строку:
$rcmail_config['acl_advanced_mode'] = true;
Для включения самого плагина acl нужно добавить его в настройку plugins в файле /etc/roundcube/main.inc.php:
$rcmail_config['plugins'] = array('password', 'acl');
После добавления плагина в настройках папок появится новая вкладка Sharing:
Плагин не требует настройки и для его включения нужно добавить его в настройку plugins в файле /etc/roundcube/main.inc.php:
$rcmail_config['plugins'] = array('password', 'acl', 'dkimstatus');
После его включения у каждого письма с правильной DKIM-подписью появится значок в виде галочки в зелёном кружке (пример письма, полученного от отправителя в Yandex-почте):
В пакетах roundcube-pugins и roundcube-plugins-extra были найдены два плагина для настройки правил фильтрации почты на IMAP-сервере через протокол ManageSieve: managesieve и sieverules. Как оказалось, второй плагин был написан на основе первого и по сути заменяет его собой. Поэтому я решил настроить именно плагин sieverules.
Для настройки плагина sieverules скопируем файл /usr/share/roundcube/plugins/sieverules/config.inc.php.dist в файл /etc/roundcube/plugins/sieverules/config.inc.php. Нужно именно скопировать файл, т.к. при добавлении настроек в имеющийся пустой файл, плагин работает неправильно - выпадающий список действий оказывается пустым. Изменим в нём значения следующих настроек:
$rcmail_config['sieverules_host'] = '%n'; $rcmail_config['sieverules_port'] = 4190; $rcmail_config['sieverules_usetls'] = TRUE;
Краткое описание изменённых настроек:
Осталось включить использование плагина в настройках RoundCube, добавив имя плагина в настройку plugins в файле /etc/roundcube/main.inc.php:
$rcmail_config['plugins'] = array('password', 'acl', 'dkimstatus', 'sieverules');
После добавления плагина в настройках появляется вкладка "Фильтры":
По умолчанию имеется только один набор правил, а доступ к прямому редактированию правил отключен - редактирование осуществляется при помощи веб-интерфейса плагина.
Настройка sieverules_multiplerules позволяет создавать несколько наборов правил, из которых активным может быть только одни набор.
При помощи настройки sieverules_adveditor можно включить прямой доступ к редактированию скриптов фильтрации Sieve. При этом появляется возможность писать более сложные правила, однако и увеличивается вероятность ошибок в синтаксисе или непонимания семантики фильтра.
Это была заключительная статья из серии статей о настройке почтовой системы.