Я установил почтовый сервер с Postfix и настроил его для использования Cyrus SASL для аутентификации моих пользователей. Это работало отлично, пока я не узнал, что могу войти в систему с более короткими паролями, чем они есть на самом деле.
Например, пароль должен быть ухх1234х22 я могу войти с помощью:
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
Проблема заключается в том, что вы используете 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 будет содержать аналогичные записи)
При изменении схемы шифрования паролей вы также потеряете все сохраненные пароли, и вам потребуется их сбросить.