Страница 1 из 1

Cyrus-SASL и хранение паролей в зашифрованном виде

Добавлено: 2008-04-19 12:44:23
begemoto
Добрый день. Столкнулся с такой проблемой. Ставлю Postfix с авторизацией через Cyrus-SASL. Система - FreeBSD 6.2. В качестве back-end для SASL использую BerkleyDB.
По умолчанию SASL хранит пароли в базе в открытом виде. При этом к файлу базы права заданы на чтение для группы mail, в которую входит и postfix и cyrus. А это совсем не секьюрно!
Для исправления этого - ставлю патч отсюда: http://frost.ath.cx/software/cyrus-sasl-patches/

И все бы ничего, но теперь, при создания пользователя командой saslpasswd2 пароль необходимо указывать в зашифрованном виде. Патченный SASL понимает зашифрованные пароли следующих видов (со страницы патча):

Код: Выделить всё

crypt - passwords are stored as modular crypt hashes (md5 or blowfish crypt) 
crypt_trad - passwords are stored as des crypt hashes (2 character salt crypt)


Собственно вопрос, как из шела сгенерить зашифрованный пароль, который поймет патч?
Пытался делать

Код: Выделить всё

perl -e 'print crypt(123,"");'
но функции crypt нужен второй аргумент, а где его взять?
Насколько я разобрался, в случае использования mySQL в качестве back-end, там применяется евойная функция encrypt(), которому тоже необходим второй аргумент.
Посмотрел сам патч - там все просто, но в качестве второго аргумента функции crypt, используются первые 12 или 16 символов уже зашифрованого пароля функцией crypt. Заколдованный круг получается!

Re: Cyrus-SASL и хранение паролей в зашифрованном виде

Добавлено: 2008-04-27 21:43:33
begemoto
Если кому интересно, решение найдено!