Изменение почтового пароля пользователем через roundcube

Небольшая заметка на тему настройки своего почтового сервера с веб интерфейсом roundcube. У него есть плагин, который позволяет пользователю самостоятельно менять свой почтовый пароль. Проблема в том, что по умолчанию он не заработает, обязательно нужна настройка. При этом она будет сильно зависеть от конкретной ситуации. Я опишу пару таких типовых настроек.

Онлайн-курс по устройству компьютерных сетей

На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Итак, речь идет о почтовом сервере, настроенном примерно так же, как в моей статье - Настройка postfix + dovecot + mysql база + postfixadmin + roundcube + dkim на CentOS 8. У нас установлен roundcube и активирован плагин password. В конфигурационном файле roundcube это выглядит следующим образом:

$config['plugins'] = array('acl', 'managesieve', 'password', 'userinfo');

В веб интерфейсе функционал по смене пароля реализован вот так.

Изменение почтового пароля в roundcube

Если вы просто активируете плагин и не настроите, пользователь будет получать ошибку при попытке изменить пароль. Это и понятно, ведь у roundcube своя база данных и никакого подключения к базе с учетными записями почты у нее по умолчанию нет. Вот это и надо настроить. Для этого идем в директорию плагина - /plugins/password и создаем конфигурационный файл, который будем настраивать.

# cp config.inc.php.dist config.inc.php

Открываем конфиг и добавляем туда следующие параметры.

$config['password_algorithm'] = 'md5-crypt';
$config['password_db_dsn'] = 'mysql://dbuser:dbpassword@localhost/postfix';
$config['password_query'] = 'UPDATE postfix.mailbox SET password = %P, modified = NOW() WHERE username = %u';
md5-crypt метод шифрования паролей в базе mysql
dbuser пользователь базы данных, где хранятся учетки
dbpassword пароль пользователя
postfix база данных mysql

Если у вас пароли в базе не зашифрованы, то настройки будут выглядеть вот так:

$config['password_algorithm'] = 'clear';
$config['password_db_dsn'] = 'mysql://dbuser:dbpassword@localhost/postfix';
$config['password_query'] = 'UPDATE postfix.mailbox SET password = %p, modified = NOW() WHERE username = %u';

Сохраняйте конфигурационный файл и пробуйте изменять пароль через web интерфейс. Теперь изменение почтового пароля должно корректно работать.

Онлайн-курс по устройству компьютерных сетей.

На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Автор Zerox

Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству. Если вам интересно узнать обо мне побольше, то можете послушать интервью. Запись на моем канале - https://t.me/srv_admin/425 или на сайте в контактах.

6 комментариев

  1. Алескандр

    Владимир меня PostfixAdmin достал своей политикой сложности пароля, отключить это как то можно?

    • Где-то в конфиге postfixadmin это точно настраивается.

    • nano /var/www/postfixadmin/config.inc.php

      $CONF['password_validation'] = array(
      # '/regular expression/' => '$PALANG key (optional: + parameter)',
      '/.{5}/' => 'password_too_short 5', # minimum length 5 characters
      '/([a-zA-Z].*){3}/' => 'password_no_characters 3', # must contain at least 3 characters
      # '/([0-9].*){2}/' => 'password_no_digits 2', # must contain at least 2 digits

      вот проверка сложности пароля в postfixadmin на регулярах

  2. Привет.
    У PastFixAdmin есть механизм восстановления пароля с отправкой ссылки на ящик, привязанный к пользователю. Если перенести эту часть кода в Rouncube, то пользователь сможет сам восстановить пароль к своей почте.

  3. Галымжан

    Добрый день!
    Пользователи сможет простые пароли использовать? Или можно где то настроить чтобы пользователем не установили простые пароля.

    • Точно настраивается в postfixadmin. По идее и тут должно, настройка напрашивается, но я не проверил.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.
Используешь Telegram? Подпишись на канал автора →
This is default text for notification bar