SASL принимает "неправильные" пароли

Я установил почтовый сервер с Postfix и настроил его на использование Cyrus SASL для аутентификации моих пользователей. Это работало отлично, пока я не узнал, что могу войти с более короткими паролями, чем они есть на самом деле.

Например, пароль должен быть uhuh1234h22, я могу войти с:

uhuh1234
uhuh1234h
uhuh1234h2
uhuh1234h22

Но не с чем короче...

Я проверил это с помощью этой команды:

testsaslauthd -u USERNAME -p PASSWORD -s smtp -f /var/spool/postfix/var/run/saslauthd/mux

У меня вопрос, почему это происходит и как я могу это предотвратить?

редактировать

Мой файл конфигурации в /etc/pam.d/smtp:

auth    required   pam_mysql.so user=USR passwd=PASS host=127.0.0.1 db=mail table=users usercolumn=email passwdcolumn=password crypt=1
account sufficient pam_mysql.so user=USR passwd=PASS host=127.0.0.1 db=mail table=users usercolumn=email passwdcolumn=password crypt=1

1 ответ

Решение

Беда в том, что вы используете crypt, От документов до pam_mysql:

crypt (0)

Specifies the method to encrypt the user's password:
 0 (or "plain") = No encryption. Passwords stored in plaintext. HIGHLY DISCOURAGED. 
 1 (or "Y") = Use crypt(3) function 
 2 (or "mysql") = Use MySQL PASSWORD() function. It is possible that the encryption function used by pam-mysql is different from that of the MySQL server, as pam-mysql uses the function defined in MySQL's C-client API instead of using PASSWORD() SQL function in the query. 
 3 (or "md5") = Use MySQL MD5() function

Ваш crypt параметр установлен в 1 это означает, что crypt функция используется. И это то, что crypt делает:

Взяв младшие 7 бит каждого из первых восьми символов ключа, получается 56-битный ключ.

Вы должны использовать одну из других схем хранения (предпочтительно 2 или 3), чтобы использовать более длинные пароли.

Обратите внимание, что вам, вероятно, потребуется проверить и другие определения сервисов в /etc/pam.d, чтобы убедиться, что вы охватили все (если у вас есть сервер Cyrus IMAP, аутентифицирующий с помощью SASL на том же хосте, по крайней мере /etc/pam.d/imap будет содержать аналогичные записи)

При изменении схемы шифрования паролей вы также фактически потеряете все свои сохраненные пароли, и вам потребуется их сброс.

Другие вопросы по тегам