libpam-mysql - koniec strajku listonosza :)
Dla wszystkich spragnionych działającej poczty (bez patchowania SASL) załączam swój plik smtp dla libpam-mysql.
Jeśli nie będzie działał zawsze możecie dopisać verbose=1 (w obu linijkach) i będzie wiadomo co konkretnie libpam-mysql gada do bazy. Podgląd jest tu: /var/log/auth.log
Ważne, jest, żeby dobrze ustawić REALM! Do jednej domeny można logować się nie podając w jakiej domenie jest login -> np. zamiast admin@gdzies.pl wystarczy jako login użyć admin.
Defaultową domenę dla SASL podajemy w konfigu postfixa (main.cf): smtpd_sasl_local_domain = $mydomain (można wpisać ręcznie, gdzies.pl).
Dodatkowo trzeba saslauthd uruchomić z takimi opcjami: MECHANISMS="pam" THREADS=5 OPTIONS="-c -r -m /var/spool/postfix/var/run/saslauthd" (są to opcje dla chrootowanego postfixa, dla realm ważne jest -r). (u mnie jest to tu: /etc/default/saslauthd)
I na koniec zawartość pliku smtpd.conf: pwcheck_method: saslauthd mech_list: plain login
W Debianie powinien znajdować się on tu: /etc/postfix/sasl/smtpd.conf
Podgląd tego co robi serwer można uzyskać dopisując -v do smtpd w pliku master.cf i oglądając mail.log
Miłej zabawy życzę. U mnie działa.
P.S. Jeśli ktoś ma jakieś fajne opcje do PAM (np. zapis do MySQL daty ostatniego użycia konta) to czekam na odpowiedzi. Jak nie to, jak wymyślę to dam znać.
auth required pam_mysql.so host=127.0.0.1 user=lms passwd=<tu_haslo> db=lms table=passwd,domains usercolumn=CONCAT(login,CHAR(64),domains.name) passwdcolumn=password crypt=1 md5=true [where=domainid=domains.id and type & 2 = 2 and (expdate = 0 OR expdate > UNIX_TIMESTAMP())] account sufficient pam_mysql.so host=127.0.0.1 user=lms passwd=<tu_haslo> db=lms table=passwd,domains usercolumn=CONCAT(login,CHAR(64),domains.name) passwdcolumn=password crypt=1 md5=true [where=domainid=domains.id and type & 2 = 2 and (expdate = 0 OR expdate > UNIX_TIMESTAMP())]
uczestnicy (1)
-
Konrad Cempura