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

Postfix smtpd не разговаривает с saslauthd

У меня есть настройка saslauthd для аутентификации по PAM. Кажется, он делает свое дело:

root@sasltest:~# testsaslauthd -u quest -p #### -s smtp
0: OK "Success."

У меня libsasl 2.1.23, postfix 2.7.1.

У меня настроен постфикс:

smtpd_sasl_type = cyrus
smtpd_sasl_path = /var/spool/postfix/private/saslauthd/mux
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_security_options = noanonymous

С master.cf таким образом:

submission inet n       -       -       -       -       smtpd
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject

Однако попытка аутентификации в этом постфиксе дает следующее сообщение об ошибке:

Jan 23 22:13:14 sasltest postfix/smtpd[1252]: warning: SASL authentication problem: unable to open Berkeley db /etc/sasldb2: No such file or directory
Jan 23 22:13:14 sasltest postfix/smtpd[1252]: warning: SASL authentication problem: unable to open Berkeley db /etc/sasldb2: No such file or directory
Jan 23 22:13:14 sasltest postfix/smtpd[1252]: warning: X[A.B.C.D]: SASL LOGIN

ошибка аутентификации: ошибка аутентификации

Между тем, мой saslauthd для ведения журнала отладки не выводит сообщения.

Я интерпретирую это как означающее, что libsasl2 пытается использовать sasldb auth, а не пытается поговорить с saslauthd. Что я не могу понять, как сообщить libsasl, что я хочу, чтобы он разговаривал с saslauthd.

Различные инструкции сообщают вам о необходимости создания файла /etc/sasl2/smtpd.conf или /etc/postfix/sasl/smtpd.conf. Я попытался создать эти файлы, содержащие:

pwcheck_method: saslauthd
mech_list: LOGIN PLAIN

Но безрезультатно.

Как мне указать libsasl использовать аутентификацию saslauthd?

(Я, конечно, могу создать / var / spool / postfix / etc / sasldb2, но это все равно не приведет к подключению к saslauthd.)

это сообщение списка рассылки cyrus-sasl в конце концов поставил меня на правильный путь.

Для потомков попытка выдать достаточно явный config. /etc/postfix/main.cf:

smtpd_sasl_type = cyrus
smtpd_sasl_path = smtpd
cyrus_sasl_config_path = /etc/postfix/sasl
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_security_options = noanonymous

Уловка в приведенном выше conf заключается в том, что postfix + libsasl2 делает это: $ {cyrus_sasl_config_path} / $ {smtpd_sasl_path} .conf

Как только мы зашли так далеко, в /etc/postfix/sasl/smtpd.conf мы можем сообщить libsasl, что мы хотим поговорить с saslauthd:

pwcheck_method: saslauthd
mech_list: LOGIN PLAIN
saslauthd_path: private/saslauthd/mux

Поскольку smtpd привязан к корневому каталогу, saslauthd_path относится к / var / spool / postfix. Я использую привязку, чтобы сделать / var / run / saslauthd приватным.