· 15 мин чтения

Roundcube Webmail: настройка корпоративной веб-почты на собственном сервере

Меня зовут Семёнов Евгений Сергеевич, директор АйТи Фреш. За 15+ лет практики я настроил больше сотни корпоративных почтовых серверов — от маленьких офисов на 10 ящиков до промышленных инсталляций на 1500 пользователей. И когда клиент говорит «нам нужна веб-почта, как у Google, только своя», я предлагаю Roundcube. Он лёгкий, бесплатный, нормально локализован и, что важно, не требует гигантских ресурсов. Разберу, как поднять его с нуля в правильной production-конфигурации.

Зачем бизнесу собственный веб-клиент почты

Outlook ставить на 50 машин — это купить лицензии, научить пользователей, потом объяснять, почему у Маши письмо не пришло. Веб-почта решает проблему тремя пунктами:

Я всегда ставлю Roundcube в пару с нативными клиентами: кто хочет Outlook — подключается по IMAP, кому удобнее в браузере — заходит на webmail.

Требования и подготовка сервера

Roundcube — это PHP-приложение. Минимум, который реально работает на практике:

ПараметрМинимумРекомендуется для 100-300 ящиков
CPU2 vCPU4 vCPU
RAM2 ГБ8 ГБ
Диск10 ГБ50 ГБ SSD
ОСDebian 12 / Ubuntu 24.04Debian 12
PHP8.1+8.3
БДMariaDB/PostgreSQL/SQLiteMariaDB 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;
  }
}

Полезные плагины

Реальный кейс: переезд с Exchange 2013

В мае 2025 к нам обратилась проектная организация — 180 пользователей на Exchange 2013. Срок поддержки у Майкрософт закончился, лицензии CAL дорожали, а сервер физически умирал. За 12 рабочих дней мы:

Экономия по лицензиям Exchange + Windows CAL — около 640 000 ₽ в год. Стоимость проекта — 280 000 ₽ разовых + 18 000 ₽/мес поддержка. Сервер — наш сервис на Dell PowerEdge с Xeon Platinum 8280 и 40G Mellanox, бэкапы на S3.

Типовые ошибки и как их избежать

Развернём 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.

Подпишитесь на рассылку ITfresh

Раз в неделю — практические гайды для руководителя IT и сисадмина: безопасность, 1С, миграции, резервные копии, лайфхаки из реальных проектов.

Реквизиты оператора персональных данных

ООО «АЙТИ-ФРЕШ», ИНН 7719418495, КПП 771901001. Юридический адрес: 105523, г. Москва, Щёлковское шоссе, д. 92, корп. 7. Контакт: info@itfresh.ru, +7 903 729-62-41. Оператор обрабатывает e-mail подписчика в целях рассылки информационных и рекламных материалов до момента отзыва согласия.