No tutorial vinculado acima , o autor usando o algoritmo hash CRYPT. Esse fato pode ser visto na consulta SQL:
INSERT INTO 'user' ('email', 'password', 'name') VALUES ("[email protected]", ENCRYPT("adminpassword"), "Administrator");
Saslauthd usando o pam-mysql para autenticar o usuário, então precisamos configurar o pam-mysql para usar o mesmo algoritmo de hash. O arquivo de configuração é definido em /etc/pam.d/smtp
auth required pam_mysql.so user=mail passwd=mailpassword host=127.0.0.1 db=mail table=user usercolumn=email passwdcolumn=password crypt=1
account sufficient pam_mysql.so user=mail passwd=mailpassword host=127.0.0.1 db=mail table=user usercolumn=email passwdcolumn=password crypt=1
O parâmetro importante é crypt
porque especifica o método para criptografar a senha do usuário
- 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
Portanto, se você precisar usar senha criptografada para autenticação, defina o parâmetro crypt
para que corresponda a
sua consulta original.
Outro parâmetro importante é verbose
. Você pode configurá-lo como 1 para poder saber o que o pam-mysql estava fazendo.
Mais informações: PAM-MySQL Package README readme.php