Porównaj ceny domen i usług IT, sprzedawców z całego świata

Błąd uwierzytelniania SMTP + PAM-MySQL nie może się uwierzytelnić


Tworzę serwer pocztowy przy użyciu Postfix i konfiguruję uwierzytelnianie, aby sprawdzić poprawność konfiguracji bazy danych za pomocą Postfixadmin.
Mogę uwierzytelniać się przez Courier IMAP, ponieważ może on poprawnie uwierzytelniać się za pomocą zaszyfrowanego hasła, ale podejrzewam, że mój mechanizm uwierzytelniania SASL + PAM-MySQL SMTP nie może.
Otrzymuję te błędy w
/var/log/mail.log
:
pam_unix(smtp:auth): check pass; user unknown
Aug 22 03:23:08 omitted saslauthd[26402]: pam_unix(smtp:auth): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost=
Aug 22 03:23:10 omitted saslauthd[26402]: DEBUG: auth_pam: pam_authenticate failed: Authentication failure
Aug 22 03:23:10 omitted saslauthd[26402]: do_auth : auth failure: [user=user@domain.com] [service=smtp] [realm=domain.com] [mech=pam] [reason=PAM auth error]

Oto treść
/etc/pam.d/smtp
:
auth required pam_mysql.so user=postfixadmin passwd=omitted host=127.0.0.1 db=postfixadmin table=mailbox usercolumn=username passwdcolumn=password crypt=2
account sufficient pam_mysql.so user=postfixadmin passwd=omitted host=127.0.0.1 db=postfixadmin table=mailbox usercolumn=username passwdcolumn=password crypt=2

Oto odpowiedni fragment kodu do zaszyfrowania hasła z
/etc/postfixadmin/config.inc.php
:
// Encrypt
// In what way do you want the passwords to be crypted?
// md5crypt = internal postfix admin md5
// md5 = md5 sum of the password
// system = whatever you have set as your PHP system default
// cleartext = clear text passwords (ouch!)
// mysql_encrypt = useful for PAM integration
// authlib = support for courier-authlib style passwords
// dovecot:CRYPT-METHOD = use dovecotpw -s 'CRYPT-METHOD'. Example: dovecot:CRAM-MD5
$CONF['encrypt'] = 'mysql_encrypt';

A oto treść mojego
/etc/postfix/sasl/smtp.conf
:
pwcheck_method: saslauthd
mech_list: plain login
log_level: 7
allow_plaintext: true
auxprop_plugin: sql
sql_engine: mysql
sql_hostnames: 127.0.0.1
sql_user: postfixadmin
sql_passwd: omitted
sql_database: postfixadmin
sql_select: select password from mailbox where username='%u@%r'

Próbowałem użyć skrótu MD5, ale Courier zawiódł. Czyli z okna ...
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Mam dokładnie taką samą konfigurację jak Twoja (Postfix + Cyrus SASL przy użyciu saslauthd + PAM) i spędziłem godziny na jej konfigurowaniu. Ale wiedz, że to działa świetnie.
W moim przypadku mam takie same ustawienia, jak masz w
/etc/pam.d/smtp
ale nie w
/etc/postfix/sasl/smtp.conf
.
Wygląda na to, że wprowadzasz w błąd używając wtyczki SQL Cyrus (

auxprop_plugin: sql
) przy użyciu saslauthd i PAM mysql.
Dokumentacja Postfix
http://www.postfix.org/SASL_RE ... _comm
mówi, że jeśli chcesz przechowywać zaszyfrowane hasła (co wydaje się mieć miejsce, ponieważ ustawiłeś crypt = 2 w konfiguracji PAM), NIE MOŻESZ używać wtyczki Cyrus SASL sql.
Możesz tylko wypróbować PAM. Aby to zrobić, wystarczy podążać
/etc/postfix/sasl/smtp.conf
pwcheck_method: saslauthd
mech_list: login plain
log_level: 4

Nie potrzebujesz konfiguracji bazy danych/hasła w tym pliku, ponieważ

PAM

już wszystko wie!
Sprawdź też
/etc/default/saslautd
, Mam:
START=yes
DESC="SASL Authentication Daemon"
NAME="saslauthd"
MECHANISMS="pam"
MECH_OPTIONS=""
THREADS=1
OPTIONS="-c -r -m/var/spool/postfix/var/run/saslauthd"

Sprawdź, co wybrałeś

pam

w

MECHANIZMY

zmienna i sprawdź flagi

PARAMETRY

zmienna. Zwykle powinieneś mieć więcej niż 1 cal

STRUMIENIA

zmienna. Możesz na to pozwolić w ten sposób. Nie musisz ustawiać „1” tak jak moje.

EDYTOWAĆ
: odpowiedź na bardzo stare pytanie! To nie ma znaczenia, będzie się do niego odwoływać Google i może być przydatne dla każdego, kto konfiguruje SASL z PAM.

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się