Миграция учетных записей почты DirectAdmin на iRedMail (postfix+mysql) с сохранением паролей
Ожидает приглашения
В заголовке я слукавил — переносятся не пароли, а их хеши, но результат все равно интересен, как по мне.
Имеем VPS с DirectAdmin'ом, в котором есть некоторое количество пользователей. Возникла мысль о переносе почты на полноценную систему (почти — jail во freebsd) и получение в результате плюшек в виде прямого доступа к логам, удобного roundcube для web доступа к почте и iRedAdmin'ом для управления всем этим хозяйством, потому как не все админы дружны с *nix.
В процессе установки iRedMail узнал о особенности jail — нет localhost. Вообще. Переделка служб с 127.0.0.1 на внешний и единственный ip спасла ситуацию.
Далее решил, что миграция учетных записей должна проходить максимально прозрачно — со стороны пользователя не должно быть дополнительных движений как-то смена пароля в почтовой программе. Порадовал скрипт в составе iRedMail'a — create_mail_user_SQL.sh, но одна беда — по умолчанию он предлагает задать пользователям либо всем одинаковый пароль, либо пароль каждому совпадает с его же логином. Но это же не наш метод! (с)
Было решено переделать этот скрипт, чтобы создавать пользователей с их старыми паролями. Из бекапа DirectAdmin'a получил файлик (passwd.lst) с содержимым вида имя_пользователя:$1$соль_пароля. Далее средствами sh получаем однострочный файл (sql2.txt) со списком пользователей через пробел — так хочет скрипт импорта. Доработка create_mail_user_SQL.sh сводится к замене:
Ну и на выходе получаем output.sql — потом с ним делаем
Все. Если у нас были aliases для почты — в не-Pro iRedAdmin'е нет штатной возможности их создания, но ситуацию исправит операция вида:
Потом через phpmyadmin можно будет корректировать перенаправления.
Надеюсь, пригодится кроме меня еще кому-нибудь.
Имеем VPS с DirectAdmin'ом, в котором есть некоторое количество пользователей. Возникла мысль о переносе почты на полноценную систему (почти — jail во freebsd) и получение в результате плюшек в виде прямого доступа к логам, удобного roundcube для web доступа к почте и iRedAdmin'ом для управления всем этим хозяйством, потому как не все админы дружны с *nix.
В процессе установки iRedMail узнал о особенности jail — нет localhost. Вообще. Переделка служб с 127.0.0.1 на внешний и единственный ip спасла ситуацию.
Далее решил, что миграция учетных записей должна проходить максимально прозрачно — со стороны пользователя не должно быть дополнительных движений как-то смена пароля в почтовой программе. Порадовал скрипт в составе iRedMail'a — create_mail_user_SQL.sh, но одна беда — по умолчанию он предлагает задать пользователям либо всем одинаковый пароль, либо пароль каждому совпадает с его же логином. Но это же не наш метод! (с)
Было решено переделать этот скрипт, чтобы создавать пользователей с их старыми паролями. Из бекапа DirectAdmin'a получил файлик (passwd.lst) с содержимым вида имя_пользователя:$1$соль_пароля. Далее средствами sh получаем однострочный файл (sql2.txt) со списком пользователей через пробел — так хочет скрипт импорта. Доработка create_mail_user_SQL.sh сводится к замене:
export CRYPT_PASSWD="$(openssl passwd -1 ${DEFAULT_PASSWD})"
# export CRYPT_PASSWD="$(openssl passwd -1 ${username})"
export CRYPT_PASSWD="$(cat passwd.lst | grep ${username} | awk -F: '{print $2}')"; Ну и на выходе получаем output.sql — потом с ним делаем
#mysql -uroot -p
USE vmail;
SOURCE output.sql; Все. Если у нас были aliases для почты — в не-Pro iRedAdmin'е нет штатной возможности их создания, но ситуацию исправит операция вида:
#mysql -uroot -p
use vmail;
insert into alias (address, goto, domain) values ('orig@domain.ltd', 'user1@domain.com,user2@dom2.com', 'domain.ltd');Потом через phpmyadmin можно будет корректировать перенаправления.
Надеюсь, пригодится кроме меня еще кому-нибудь.