Назад | Перейти на главную страницу

sasl-аутентификация с постфиксом

У меня странная проблема с postfix, пытающимся аутентифицировать пользователя / передать saslauthd

соответствующие строки в mail.log

Feb 14 16:06:21 smswtc postfix/smtpd[3577]: warning: SASL authentication failure: Requested identity not authenticated identity
Feb 14 16:06:21 smswtc postfix/smtpd[3577]: warning: unknown[192.168.10.134]: SASL PLAIN authentication failed: authentication failure

странная вещь (из strace процесса smtpd postfix):

read(10, "AUTH PLAIN fXOlcM5hbWLAc21wcABmaVFh\r\n", 4096) = 37
socket(PF_LOCAL, SOCK_STREAM, 0)        = 12
connect(12, {sa_family=AF_LOCAL, sun_path="/var/run/saslauthd/mux"}, 110) >= 0
**writev(12, [{"\0\4user\0\4password\0\4smtp\0\6realm", 26}], 1) = 26
read(12, "\0\2", 2)                     = 2
read(12, "OK", 2)                       = 2**
close(12)                               = 0
sendto(8, "<20>Feb 14 16:04:58 postfix/smtpd[3395]: warning: SASL authentication failure: Requested identity not authenticated identity", 124, MSG_NOSIGNAL, NULL, 0) = 124
sendto(8, "<20>Feb 14 16:04:58 postfix/smtpd[3395]: warning: unknown[192.168.10.134]: SASL PLAIN authentication failed: authentication failure", 131, MSG_NOSIGNAL, NULL, 0) = 131

Похоже, что saslauthd ответил ОК на postfix!

Также из журнала saslauthd (отладка)

saslauthd[3169] :do_auth         : auth success: [user=user] [service=smtp] realm="realm"] [mech=shadow]
saslauthd[3169] :do_request      : response: OK

также ясно, что saslauthd аутентифицировал пользователя. Поэтому я действительно не понимаю, почему postfix жалуется на сбой аутентификации SASL (см. Postifix mail.log выше)

conf файлы:

root@xxx:~# cat /etc/postfix/sasl/smtpd.conf
pwcheck_method: saslauthd
mech_list: PLAIN LOGIN


root@smswtc:~# cat /etc/postfix/main.cf
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no
append_dot_mydomain = no
readme_directory = no
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = smswtc
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = wtc99.com, localhost, localhost.localdomain, localhost
relayhost = out.alice.sm
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
smtpd_sasl_local_domain = ""
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
relay_domains = wtc99.com
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination

Для аутентификации SASL PLAIN требуется имя пользователя и пароль, но я не вижу их в вашем /etc/postfix/main.cf. Пожалуйста, попробуйте добавить его в /etc/postfix/sasl_passwd:

[relayhost.com]:relayPort    UserName@mailDomain:Password

Тогда беги postmap /etc/postfix/sasl_passwdи добавьте в свой /etc/postfix/main.cf следующие строки:

smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous