ЗАБЫЛ ПАРОЛЬ ОТ АДМИНКИ IREDMAIL? НЕ ССЫ! ТЕБЕ СЮДА...
iRedMail / iRedAdmin: не пускает в админку — сбрасываем пароль правильно (MariaDB + Dovecot) 🧰🔐
Ситуация классическая: в почту (Roundcube) ещё как-то заходило, а в /iredadmin — нет, логин/пароль забыты. Ниже — наш рабочий метод без Python и без лишних приключений: генерируем хэш пароля средствами Dovecot и записываем в MariaDB. Всё делается так, чтобы можно было решить проблему копипастом ✅
0) Важно понять, что именно «админка» 🤝📌
В iRedMail обычно есть две двери:
- Webmail (Roundcube) — почтовый ящик (например, Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.).
- Админка (iRedAdmin) — веб-интерфейс управления доменами/ящиками. Часто логин тот же, а пароль хранится в базе и проверяется через Dovecot.
Если в админку не пускает — чаще всего проблема решается сбросом пароля почтового ящика, который является доменным администратором 🧠
1) Быстрая диагностика: MariaDB + где лежит админ 🕵️♂️🗃️
Заходим в MariaDB и проверяем базы (команды можно копировать как есть):
mysql -u root -p SHOW DATABASES;
Нас интересует база vmail (там живут ящики/домены/права). Выбираем её и смотрим ключевые таблицы:
USE vmail; SHOW TABLES;
Проверяем, что наш postmaster существует как ящик 📬:
SELECT username FROM mailbox WHERE username=Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.';
Проверяем, что он является доменным админом 👑:
SELECT * FROM domain_admins WHERE username=Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.';
Если mailbox и domain_admins на месте — вы в самой частой и самой простой конфигурации. Переходим к сбросу пароля 💪
2) Рабочий метод (наш): сброс через doveadm + UPDATE в vmail ✅🧨
Шаг 1. Выйдите из MariaDB и окажитесь в обычной командной строке Linux (то место, где у вас приглашение вида root@mail:~#) 🧑💻
Шаг 2. Генерируем правильный хэш пароля средствами Dovecot (без Python и модулей):
doveadm pw -s BLF-CRYPT
Программа спросит пароль два раза. На выходе получите строку примерно такая:
{BLF-CRYPT}$2y$05$VIPOHp2FLYIl8jkRYVxohuVzSnNw2cmQX853ltOXqv0RCK/ELEDEi
Шаг 3. Заходим обратно в MariaDB и записываем хэш в поле mailbox.password:
mysql -u root -p
USE vmail;
UPDATE mailbox
SET password='{BLF-CRYPT}$2y$05$...ВАШ_ХЭШ_ЦЕЛИКОМ...'
WHERE username=Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.';
COMMIT;
EXIT;
Шаг 4. Заходим в админку iRedAdmin:
https://mail.madmentat.ru/iredadmin
- Логин: Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.
- Пароль: тот, который вы вводили в doveadm pw
Готово! 🥳 Теперь должны работать: iRedAdmin, Roundcube, IMAP/SMTP (потому что пароль у ящика обновился корректно).
3) Проверки, если хочется убедиться 🧪🔍
Посмотреть, что пароль записался (увидите строку с {BLF-CRYPT}):
mysql -u root -p
USE vmail;
SELECT username, password
FROM mailbox
WHERE username=Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.';
Посмотреть, что user реально доменный админ:
SELECT username, domain, active
FROM domain_admins
WHERE username=Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.';
4) Частые грабли (и быстрые ответы) 🪤🤷♂️
Грабля №1: Таблица vmail.admin пустая, и кажется «админов нет!» 😱
Это нормально. Часто iRedAdmin использует domain_admins + пароль из mailbox.
Это нормально. Часто iRedAdmin использует domain_admins + пароль из mailbox.
Грабля №2: В админку не пускает, хотя пароль точно правильный 😤
Проверьте, что запись есть в domain_admins и она активна:
Проверьте, что запись есть в domain_admins и она активна:
SELECT * FROM domain_admins WHERE username=Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.';
Если записи нет — можно добавить (домен можно указать ALL):
INSERT INTO domain_admins (username, domain, created, modified, expired, active)
VALUES (Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.', 'ALL', NOW(), '1970-01-01 01:01:01', '9999-12-31 00:00:00', 1);
COMMIT;
Грабля №3: Генерация хэша прошла, а вставка в SQL ломается 🤕
Убедитесь, что вы вставили хэш одной строкой и заключили в одинарные кавычки: никаких пробелов/переносов внутри.
Убедитесь, что вы вставили хэш одной строкой и заключили в одинарные кавычки: никаких пробелов/переносов внутри.
5) Логи, если хочется «докопаться до истины» 🧾🕯️
Если после сброса всё равно странно — смотрим логи iRedAdmin и Dovecot:
tail -n 80 /var/log/iredadmin/iredadmin.log tail -n 80 /var/log/dovecot.log
Обычно по логам видно: неверный пароль, не тот логин, нет прав доменного админа, или промах с доменом.
Спойлер 🧩: альтернативные варианты (если у вас админ хранится в другом месте)
Ниже — «на всякий случай». В нашем рабочем кейсе это не понадобилось, но пусть будет.
Вариант A. Админ лежит в iredadmin.admin (бывает в других сборках/версиях)
mysql -u root -p USE iredadmin; SHOW TABLES; SELECT username FROM admin;
Если таблица admin есть и не пустая — пароль надо менять там. Хэш всё равно лучше генерировать через:
doveadm pw -s BLF-CRYPT
А потом сделать UPDATE уже в той таблице, где реально лежит пароль.
Вариант B. Глобальные админы в vmail.admin (и таблица не пустая)
mysql -u root -p USE vmail; SELECT * FROM admin;
Если там есть записи, то пароль может храниться там. Но во многих конфигурациях admin пустая, а вся магия — через domain_admins + mailbox (как у нас).
Вариант C. LDAP вместо MariaDB (это не наш случай)
Тогда пароли/права живут в LDAP, и путь будет другой (через ldap-утилиты). Но если у вас есть база vmail и таблица mailbox — скорее всего вы в MariaDB-ветке.
Готовый мини-чеклист (копипаста) ✅📋
1) Сгенерировать хэш пароля:
doveadm pw -s BLF-CRYPT
2) Вставить в MariaDB:
mysql -u root -p
USE vmail;
UPDATE mailbox
SET password='{BLF-CRYPT}$2y$...'
WHERE username=Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.';
COMMIT;
EXIT;
Всё. Можно идти в iRedAdmin и радоваться 🥳
