O postfix smtpd não vai falar com saslauthd

1

Eu tenho uma configuração do saslauthd para autenticar no PAM. Parece fazer o seu material:

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

Eu tenho libsasl 2.1.23, postfix 2.7.1.

Eu tenho um postfix configurado assim:

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

Com um master.cf assim:

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

No entanto, tentar autenticar neste postfix apresenta a seguinte mensagem de erro:

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

autenticação falhou: falha de autenticação

Enquanto isso, não há saída do meu saslauthd de log de depuração.

Eu interpreto isso como significando que o libsasl2 tenta usar a autenticação sasldb ao invés de tentar falar com o saslauthd. O que eu não consigo descobrir como dizer à libsasl que eu quero falar com o saslauthd.

Várias instruções informam você para criar um arquivo /etc/sasl2/smtpd.conf ou /etc/postfix/sasl/smtpd.conf. Eu tentei criar esses arquivos contendo:

pwcheck_method: saslauthd
mech_list: LOGIN PLAIN

Mas sem efeito.

Como eu instruo a libsasl a usar a autenticação saslauthd?

(Eu posso, claro, criar o / var / spool / postfix / etc / sasldb2, mas isso ainda não resultará em conexões com o saslauthd.)

    
por Bittrance 23.01.2013 / 23:35

1 resposta

1

Este post da lista de discussão cyrus-sasl acabou por me colocar o caminho certo.

Para a posteridade, uma tentativa de produzir uma configuração razoavelmente explícita. /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

O truque acima conf é que o postfix + libsasl2 faz isto: $ {cyrus_sasl_config_path} / $ {smtpd_sasl_path} .conf

Uma vez que chegamos tão longe, em /etc/postfix/sasl/smtpd.conf podemos dizer ao libsasl que queremos falar com o saslauthd:

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

Como o smtpd é chrooted, saslauthd_path é relativo a / var / spool / postfix. Eu uso bind mount para colocar / var / run / saslauthd em privado.

    
por 24.01.2013 / 20:06