Não é possível obter o SASL auxprop / sasldb trabalhando com o postfix / Ubuntu 12.04

9

Eu tenho um sistema Ubuntu 8.04LTS executando o Postfix 2.5.1. Nesse sistema, o SMTP AUTH funciona bem . O conteúdo de /etc/postfix/sasl/smtpd.confsão:

pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: PLAIN

As propriedades relacionadas ao SASL são:

smtpd_sasl_type = cyrus
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = smtpd
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_local_domain = $myhostname

Quando sudo sasldblistusers2recebo:

[email protected]: userPassword

Como eu disse, tudo funciona bem no sistema 8.04LTS.

No entanto, estou tentando migrar isso para um sistema Ubuntu 12.04LTS executando o Postfix 2.9.3 e simplesmente não consigo fazê-lo funcionar. Estou fazendo o mesmo, mas o postfix sempre dá falhas de autenticação.

Não é o /etc/sasldb2arquivo. Eu tentei trazer o arquivo do sistema antigo e isso não funciona. E eu criei um novo arquivo usando:

saslpasswd2 -c -u mail.mydomain.com authusername

e que não funciona, embora vai trabalhar no sistema antigo se eu copiá-lo para o sistema antigo, que é como eu sei que não há nada de errado com o arquivo.

Da mesma forma, eu sei que o postfix está vendo o smtpd.confarquivo. Se eu adicionar mais mecanismos à mech_listlinha do arquivo, vejo esses mecanismos extras sendo anunciados quando eu me conecto ao daemon smtpd. E quando eu os retiro eles desaparecem novamente. Então, /etc/postfix/sasl/smtpd.confestá claramente se acostumando.

Estou testando usando um cliente de email real e conversando manualmente com o servidor depois de gerar um token com isso:

perl -MMIME::Base64 -e 'print encode_base64("\000authusername\000thePassword");'

então:

openssl s_client -quiet -starttls smtp -connect the.newsystem.com:587

A conversa resultante é:

250 DSN
EHLO example.com
250-the.newsystem.com
250-PIPELINING
250-SIZE 20971520
250-ETRN
250-AUTH PLAIN
250-AUTH=PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
AUTH PLAIN theBase64EncodedToken
535 5.7.8 Error: authentication failed: authentication failure

Mas, se eu me conectar the.oldsystem.com:587e fazer a mesma coisa, recebo:

235 2.7.0 Authentication successful

A saída do saslfinger na nova máquina é:

# sudoh saslfinger -s
saslfinger - postfix Cyrus sasl configuration Sat Jul 21 00:24:24 EDT 2012
version: 1.0.4
mode: server-side SMTP AUTH

-- basics --
Postfix: 2.9.3
System: Ubuntu 12.04 LTS \n \l

-- smtpd is linked to --
        libsasl2.so.2 => /usr/lib/i386-linux-gnu/libsasl2.so.2 (0xb76c5000)


-- active SMTP AUTH and TLS parameters for smtpd --
broken_sasl_auth_clients = yes
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_path = smtpd
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = cyrus
smtpd_tls_CAfile = /etc/ssl/certs/MyCA.pem
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /etc/postfix/ssl/server.crt
smtpd_tls_key_file = /etc/postfix/ssl/server.key
smtpd_tls_loglevel = 1
smtpd_tls_security_level = may
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_tls_session_cache_timeout = 3600s


-- listing of /usr/lib/sasl2 --
total 16
drwxr-xr-x  2 root root 4096 Jul 20 23:00 .
drwxr-xr-x 67 root root 8192 Jul 20 21:25 ..
-rw-r--r--  1 root root    1 May  4 00:17 berkeley_db.txt

-- listing of /etc/postfix/sasl --
total 20
drwxr-xr-x 2 root root 4096 Jul 20 21:29 .
drwxr-xr-x 5 root root 4096 Jul 20 23:58 ..
-rw-r--r-- 1 root root   64 Jul 20 21:29 smtpd.conf



-- content of /etc/postfix/sasl/smtpd.conf --
pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: PLAIN

-- content of /etc/postfix/sasl/smtpd.conf --
pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: PLAIN


-- active services in /etc/postfix/master.cf --
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (yes)   (never) (100)
smtp      inet  n       -       -       -       -       smtpd
submission inet n       -       -       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING

[snipping the rest of the services]

-- mechanisms on localhost --

-- end of saslfinger output --

O que eu poderia estar perdendo / fazendo errado? Tanto quanto pude dizer, toda a configuração é a mesma, mas não funcionará no novo sistema.

QuantumMechanic
fonte

Respostas:

15

A oferta está aqui:

-- active services in /etc/postfix/master.cf --
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (yes)   (never) (100)
smtp      inet  n       -       -       -       -       smtpd
submission inet n       -       -       -       -       smtpd

O smtpdprocesso na submissionporta está sendo executado no modo chroot (já que existe um -nessa coluna, o que significa que o padrão (que é yes) se aplica e, portanto, não pode ser visto /etc/sasldb2.

Quando eu copiei /etc/sasldb2para /var/spool/postfix/etcautenticação começou a funcionar bem.

QuantumMechanic
fonte
3
Este comentário pôs fim à loucura pós-fixada de hoje à noite. Lembre-se também de que usar esta configuração exigirá que o usuário de autenticação seja user @ $ myhostname, e não apenas "user". Isso é diferente entre isso e minha configuração similar do exim para retransmissão autenticada.
David Dombrowsky
5

chroot é definitivamente a razão, no entanto, no meu caso, copiar para /var/spool/postfix/etcnão funcionou.

Então, acabei de me livrar do chroot e isso funciona para mim.

Para fazer isso, você precisará editar o /etc/postfix/master.cf e localize a seguinte linha:

smtp      inet  n       -       -       -       -       smtpd

e modifique-o da seguinte maneira:

smtp      inet  n       -       n       -       -       smtpd
WawaBrother
fonte
4

Outra maneira de sincronizar o arquivo sasldb2 para a cadeia chroot padrão do postfix é adicionar um link físico a ele:

ln /etc/sasldb2 /var/spool/postfix/etc/

Observe que um link simbólico não funcionará porque os links simbólicos não podem ser acessados ​​de dentro da prisão, mas os links físicos podem. Isso tem a vantagem de simplesmente copiar o arquivo, porque futuros usuários e alterações de senha serão automaticamente sincronizados sem necessidade de recarregar o postfix.

Josh
fonte
Você beleza, eu consegui obter um servidor de teste Ubuntu 16 retransmitindo, então pensei em apenas reimplementar minhas alterações no servidor de produção Ubuntu 14 ... o dia todo tentando fazer coisas. Chroot foi o motivo, mas mudar para não chroot deu resultados piores, portanto, manter o chroot e implementar acima resolveu meus problemas.
Mrjamesmyers