Roundcube Webmail: настройка корпоративной веб-почты на собственном сервере
Меня зовут Семёнов Евгений Сергеевич, директор АйТи Фреш. За 15+ лет практики я настроил больше сотни корпоративных почтовых серверов — от маленьких офисов на 10 ящиков до промышленных инсталляций на 1500 пользователей. И когда клиент говорит «нам нужна веб-почта, как у Google, только своя», я предлагаю Roundcube. Он лёгкий, бесплатный, нормально локализован и, что важно, не требует гигантских ресурсов. Разберу, как поднять его с нуля в правильной production-конфигурации.
Зачем бизнесу собственный веб-клиент почты
Outlook ставить на 50 машин — это купить лицензии, научить пользователей, потом объяснять, почему у Маши письмо не пришло. Веб-почта решает проблему тремя пунктами:
- Доступ с любого устройства — компьютер, телефон, планшет, чужой ПК в командировке.
- Централизованные настройки — подписи, фильтры, правила едины для всей компании.
- Нет проблем «Outlook не подключается» — всё через браузер, HTTPS, работает везде.
Я всегда ставлю Roundcube в пару с нативными клиентами: кто хочет Outlook — подключается по IMAP, кому удобнее в браузере — заходит на webmail.
Требования и подготовка сервера
Roundcube — это PHP-приложение. Минимум, который реально работает на практике:
| Параметр | Минимум | Рекомендуется для 100-300 ящиков |
|---|---|---|
| CPU | 2 vCPU | 4 vCPU |
| RAM | 2 ГБ | 8 ГБ |
| Диск | 10 ГБ | 50 ГБ SSD |
| ОС | Debian 12 / Ubuntu 24.04 | Debian 12 |
| PHP | 8.1+ | 8.3 |
| БД | MariaDB/PostgreSQL/SQLite | MariaDB 10.11 |
Установка Roundcube 1.6 на Debian 12
apt update && apt install -y \
nginx php8.2-fpm php8.2-mysql php8.2-imap php8.2-xml \
php8.2-mbstring php8.2-zip php8.2-curl php8.2-intl \
php8.2-gd php8.2-ldap mariadb-server composer
# Создаём БД
mysql -e "CREATE DATABASE roundcube DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;"
mysql -e "CREATE USER 'roundcube'@'localhost' IDENTIFIED BY 'StrongRCPass';"
mysql -e "GRANT ALL ON roundcube.* TO 'roundcube'@'localhost';"
# Качаем свежий релиз
cd /var/www
wget https://github.com/roundcube/roundcubemail/releases/download/1.6.9/roundcubemail-1.6.9-complete.tar.gz
tar xzf roundcubemail-1.6.9-complete.tar.gz
mv roundcubemail-1.6.9 roundcube
chown -R www-data:www-data roundcube
После распаковки открываем https://mail.example.ru/installer и проходим мастер. Или сразу правим config/config.inc.php руками.
Конфигурация IMAP и SMTP
// config/config.inc.php
$config['db_dsnw'] = 'mysql://roundcube:StrongRCPass@localhost/roundcube';
$config['imap_host'] = 'ssl://mail.example.ru:993';
$config['smtp_host'] = 'tls://mail.example.ru:587';
$config['smtp_user'] = '%u';
$config['smtp_pass'] = '%p';
$config['support_url'] = 'https://itfresh.ru/support/';
$config['product_name'] = 'Example.ru Webmail';
$config['des_key'] = 'Сгенерированная32символьнаястрока';
$config['plugins'] = ['archive', 'zipdownload', 'managesieve', 'password', 'calendar'];
$config['skin'] = 'elastic';
$config['language'] = 'ru_RU';
$config['force_https'] = true;
$config['session_lifetime'] = 30;
$config['login_rate_limit'] = 3;
Интеграция с LDAP/Active Directory
У нас на практике почти все корпоративные инсталляции связаны с AD. Roundcube умеет показывать глобальную адресную книгу из LDAP, а авторизация идёт через Dovecot с бэкендом saslauthd → LDAP:
$config['ldap_public']['corporate'] = [
'name' => 'Корпоративная адресная книга',
'hosts' => ['dc01.corp.example.ru'],
'port' => 389,
'use_tls' => true,
'base_dn' => 'OU=Users,DC=corp,DC=example,DC=ru',
'bind_dn' => 'CN=ldap-reader,OU=Service,DC=corp,DC=example,DC=ru',
'bind_pass' => 'ReadOnlyPassword',
'search_fields' => ['mail', 'cn', 'sAMAccountName', 'telephoneNumber'],
'name_field' => 'cn',
'email_field' => 'mail',
'phone_field' => 'telephoneNumber',
'fieldmap' => ['department' => 'department', 'title' => 'title'],
'filter' => '(&(objectClass=user)(mail=*))',
'scope' => 'sub',
'fuzzy_search' => true,
];
Nginx + TLS + безопасность
server {
listen 443 ssl http2;
server_name mail.example.ru;
root /var/www/roundcube;
index index.php;
ssl_certificate /etc/letsencrypt/live/mail.example.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mail.example.ru/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
add_header Strict-Transport-Security "max-age=31536000" always;
add_header X-Frame-Options SAMEORIGIN always;
add_header X-Content-Type-Options nosniff always;
client_max_body_size 50M;
location ~* ^/(README|INSTALL|LICENSE|CHANGELOG|UPGRADING)$ { deny all; }
location ~ ^/(bin|SQL|config|logs|temp|vendor)/ { deny all; }
location /installer { deny all; }
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}
}
Полезные плагины
- managesieve — пользовательские фильтры на Dovecot Sieve.
- password — смена пароля из веб-интерфейса через plesk/ldap/mysql-бэкенд.
- calendar + tasklist — календарь и задачи через CalDAV.
- zipdownload — скачивание всех вложений письма архивом.
- twofactor_gauthenticator — двухфакторная аутентификация TOTP.
- markasjunk2 — обучение SpamAssassin/Rspamd на пользовательских письмах.
Реальный кейс: переезд с Exchange 2013
В мае 2025 к нам обратилась проектная организация — 180 пользователей на Exchange 2013. Срок поддержки у Майкрософт закончился, лицензии CAL дорожали, а сервер физически умирал. За 12 рабочих дней мы:
- Развернули Postfix + Dovecot на Debian 12 в дата-центре МТС.
- Подняли Roundcube 1.6 с локализацией, плагинами и корпоративным брендингом.
- Настроили LDAP-авторизацию через существующий AD домен.
- Мигрировали 180 ящиков и 2.4 ТБ архивов утилитой imapsync.
- Подключили SPF/DKIM/DMARC, прошли прогрев у провайдеров.
- Научили пользователей заходить на webmail.company.ru.
Экономия по лицензиям Exchange + Windows CAL — около 640 000 ₽ в год. Стоимость проекта — 280 000 ₽ разовых + 18 000 ₽/мес поддержка. Сервер — наш сервис на Dell PowerEdge с Xeon Platinum 8280 и 40G Mellanox, бэкапы на S3.
Типовые ошибки и как их избежать
- Не удалили /installer после первой установки. Любой, кто нашёл URL, переконфигурирует почту.
- Пустой des_key. Сессии уязвимы — генерируйте 32 случайных символа.
- SQLite на нагрузке 50+ пользователей. Блокировки, тормоза — ставьте MariaDB сразу.
- PHP open_basedir без /tmp. Вложения не сохраняются — добавьте tmp в разрешённые пути.
- Без force_https. Пользователь заходит по HTTP и сливает пароль открытым текстом.
Развернём Roundcube + почтовый сервер под ключ
Проектирование, установка, миграция с Exchange или облачной почты, LDAP-интеграция, брендинг под ваши цвета и логотип, поддержка 24/7. Срок — от 5 рабочих дней.
Телефон: +7 903 729-62-41
Telegram: @ITfresh_Boss
Семёнов Евгений Сергеевич, директор АйТи Фреш
FAQ — частые вопросы по Roundcube
- Что такое Roundcube и зачем он нужен?
- Бесплатный веб-клиент для корпоративной почты через браузер.
- С какими серверами работает Roundcube?
- С любым IMAP: Dovecot, Courier, Cyrus, Exchange. SMTP — любой.
- Есть ли у Roundcube календарь и задачи?
- Да, через плагины calendar и tasklist по CalDAV.
- Как защитить от брутфорса?
- fail2ban, капча, 2FA через TOTP, HTTPS обязательно.
- Можно ли интегрировать с Active Directory?
- Да, через LDAP-адресную книгу и авторизацию Dovecot.