Установка Roundcube webmail интерфейс.

В предыдущей статье мы рассмотрели установку Postfix и Dovecot на CentOS сервер. Но самого по себе этого не совсем достаточно для полноценного почтового сервера, так как читать почту через telnet не совсем удобно =) По этому туда-же можно допилить и красивый webmail интерфейс от Roundcube. Это довольно популярная веб-морда и ею пользуются даже такие крупные издания как lenta.ru например – https://post.lenta.ru Давайте по быстрому установим ее и посмотрим что это такое.

Установка Roundcube

Roundcube написан на PHP с использованием технологии Ajax для создания более отзывчивого и гибкого интерфейса. Конечно же Roundcube как любая веб аппликация требует наличие http-сервера и PHP в системе. Мы будем думать что преславутый LAMP уже установлен у вас в системе. Выполняем стандартную процедуру обнволения системы:

yum update
yum update

Создаем таблицу в базе данных:

mysql -u root -p
mysql> CREATE DATABASE IF NOT EXISTS `roundcube`;
mysql> GRANT ALL PRIVILEGES ON `roundcube` . * TO 'roundcube'@'localhost' IDENTIFIED BY 'mySecretPassword';
mysql> FLUSH PRIVILEGES;
mysql> quit
mysql -u root -p
mysql> CREATE DATABASE IF NOT EXISTS `roundcube`;
mysql> GRANT ALL PRIVILEGES ON `roundcube` . * TO 'roundcube'@'localhost' IDENTIFIED BY 'mySecretPassword';
mysql> FLUSH PRIVILEGES;
mysql> quit

Помним что mySecretPassword это ваш пароль.
Сразу под шумок создаем виртуальный хост в Apache:

vim  /etc/httpd/conf.d/90-roundcube.conf
 
Alias /webmail /var/www/html/roundcube
 
<directory /var/www/html/roundcube>
    Options -Indexes
    AllowOverride All
</directory>
 
<directory /var/www/html/roundcube/config>
    Order Deny,Allow
    Deny from All
</directory>
 
<directory /var/www/html/roundcube/temp>
    Order Deny,Allow
    Deny from All
</directory>
 
<directory /var/www/html/roundcube/logs>
    Order Deny,Allow
    Deny from All
</directory>
vim  /etc/httpd/conf.d/90-roundcube.conf

Alias /webmail /var/www/html/roundcube

<directory /var/www/html/roundcube>
    Options -Indexes
    AllowOverride All
</directory>

<directory /var/www/html/roundcube/config>
    Order Deny,Allow
    Deny from All
</directory>

<directory /var/www/html/roundcube/temp>
    Order Deny,Allow
    Deny from All
</directory>

<directory /var/www/html/roundcube/logs>
    Order Deny,Allow
    Deny from All
</directory>

Отлично. Теперь качаем архив с Roundcube и подготавливаем к работе:

curl -L "http://sourceforge.net/projects/roundcubemail/files/latest/download?source=files" > /tmp/roundcube-latest.tar.gz
tar -zxf /tmp/roundcube-latest.tar.gz -C /var/www/html
rm -f /tmp/roundcube-latest.tar.gz
cd /var/www/html
mv roundcubemail-* roundcube
chown root: -R roundcube/
chown apache: -R roundcube/temp/
chown apache: -R roundcube/logs/
curl -L "http://sourceforge.net/projects/roundcubemail/files/latest/download?source=files" > /tmp/roundcube-latest.tar.gz
tar -zxf /tmp/roundcube-latest.tar.gz -C /var/www/html
rm -f /tmp/roundcube-latest.tar.gz
cd /var/www/html
mv roundcubemail-* roundcube
chown root: -R roundcube/
chown apache: -R roundcube/temp/
chown apache: -R roundcube/logs/

Заполняем таблицами базу данных:

mysql -u roundcube -p"mySecretPassword" roundcube < roundcube/SQL/mysql.initial.sql
mysql -u roundcube -p"mySecretPassword" roundcube < roundcube/SQL/mysql.initial.sql

Конфигурируем Roundcube через файл main.inc.php

cp roundcube/config/main.inc.php.dist roundcube/config/main.inc.php
vim roundcube/config/main.inc.php
cp roundcube/config/main.inc.php.dist roundcube/config/main.inc.php
vim roundcube/config/main.inc.php

изменить:

  $rcmail_config['default_host'] = '';
to
  $rcmail_config['default_host'] = 'localhost';
 
изменить:
  $rcmail_config['smtp_server'] = '';
to
  $rcmail_config['smtp_server'] = 'localhost';
 
изменить:
  $rcmail_config['smtp_user'] = '';
to
  $rcmail_config['smtp_user'] = '%u';
 
change:
  $rcmail_config['smtp_pass'] = '';
to
  $rcmail_config['smtp_pass'] = '%p';
 
изменить:
  $rcmail_config['quota_zero_as_unlimited'] = false;
to
  $rcmail_config['quota_zero_as_unlimited'] = true;
 
изменить:
  $rcmail_config['preview_pane'] = false;
to
  $rcmail_config['preview_pane'] = true;
 
change:
  $rcmail_config['read_when_deleted'] = true;
to
  $rcmail_config['read_when_deleted'] = false;
 
изменить:
  $rcmail_config['check_all_folders'] = false;
to
  $rcmail_config['check_all_folders'] = true;
  $rcmail_config['default_host'] = '';
to
  $rcmail_config['default_host'] = 'localhost';

изменить:
  $rcmail_config['smtp_server'] = '';
to
  $rcmail_config['smtp_server'] = 'localhost';

изменить:
  $rcmail_config['smtp_user'] = '';
to
  $rcmail_config['smtp_user'] = '%u';

change:
  $rcmail_config['smtp_pass'] = '';
to
  $rcmail_config['smtp_pass'] = '%p';

изменить:
  $rcmail_config['quota_zero_as_unlimited'] = false;
to
  $rcmail_config['quota_zero_as_unlimited'] = true;

изменить:
  $rcmail_config['preview_pane'] = false;
to
  $rcmail_config['preview_pane'] = true;

change:
  $rcmail_config['read_when_deleted'] = true;
to
  $rcmail_config['read_when_deleted'] = false;

изменить:
  $rcmail_config['check_all_folders'] = false;
to
  $rcmail_config['check_all_folders'] = true;

Теперь меняем настройки в файле конфигурации базы данных db.inc.php:

cp roundcube/config/db.inc.php.dist roundcube/config/db.inc.php
vim roundcube/config/db.inc.php
cp roundcube/config/db.inc.php.dist roundcube/config/db.inc.php
vim roundcube/config/db.inc.php

меняем:

  $rcmail_config['db_dsnw'] = 'mysql://roundcube:[email protected]/roundcubemail';
to
  $rcmail_config['db_dsnw'] = 'mysqli://roundcube:[email protected]/roundcube';
  $rcmail_config['db_dsnw'] = 'mysql://roundcube:[email protected]/roundcubemail';
to
  $rcmail_config['db_dsnw'] = 'mysqli://roundcube:[email protected]/roundcube';

Сохраняем файл и заодно удаляем установщик:

rm -rf roundcube/installer/
service httpd restart
rm -rf roundcube/installer/
service httpd restart

Теперь когда все готово. Вам необходимо пройти в браузере по адресу http://yourdomain.com/webmail и вы увидите окно логина в почту.
MAIL_WINDOW

Осуществите вход. Помните что для логина используем [email protected]
MAIL_WINDOW_2

Это вторая статья в цикле «Создание и настройка полноценного почтового сервера на Centos VPS» и теперь у нашего почтового сервера появился свой красивый веб интерфейс и почти все готово к работе. Но кроме этого остается один небольшой недостаток. Аутентификация по типу PLAIN TEXT это слабое место в нашей системе, так как злоумышленник не только сможет читать вашу почту обычным снифером, но и украсть логин и пароль. В следующей статье мы рассмотрим как запилить соединение черeз SSL и таким образом обезапасить свою переписку.