Is it possible to use MD5 password encryption to encrypt passwords when using Postfix / SASL and MySQL? Currently, my setup is using the MySQL CRYPT() function, which for various reasons isn't ideal.
yes it is possible.
I guess you are using libpam-mysql. There is an option you can set named crypt.
auth optional pam_mysql.so user=username passwd=password verbose=0 db=thedb table=user usercolumn=userName passwdcolumn=userPassword crypt=3 account required pam_mysql.so user=username passwd=password verbose=0 db=thedb table=user usercolumn=userName passwdcolumn=userPassword crypt=3
you can also use auth required
Then crypt yout Passwords with MD5 in mysql.
You can find the docu in the readme und /usr/share/doc/libpam-mysql
I quote a part:
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 plain hex MD5
In saslauthd config file in debian you have to set,
dont know how to set it in another distribution, bur the process have to be startet like this.
/usr/sbin/saslauthd -a pam
But I guess you already have that.