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 будет содержать аналогичные записи)
При изменении схемы шифрования паролей вы также фактически потеряете все свои сохраненные пароли, и вам потребуется их сброс.