Estou tentando configurar meu servidor doméstico para retransmitir e-mails dos iPhones da família. Para este fim, criei uma única conta de "usuário" no banco de dados SASL do servidor e configurei o sendmail para usar o CRAM-MD5 como o único mecanismo SASL. No log (em alto nível de detalhamento) o sendmail diz:
AUTH: available mech=CRAM-MD5, allowed mech=EXTERNAL GSSAPI KERBEROS_V4 DIGEST-MD5 CRAM-MD5
Quando um iPhone se conecta, sua tentativa de autenticação parece ter sucesso (veja a troca abaixo). No entanto, o e-mail é rejeitado de qualquer maneira, e isso me deixa completamente perplexo ...
<-- EHLO [192.168.1.171]
--- 250-symbion.example.com Hello ... [...], pleased to meet you
--- 250-ENHANCEDSTATUSCODES
--- 250-PIPELINING
--- 250-8BITMIME
--- 250-SIZE
--- 250-DSN
--- 250-AUTH CRAM-MD5
--- 250-STARTTLS
--- 250-DELIVERBY
--- 250 HELP
<-- AUTH CRAM-MD5
--- 334 PDEzOT....dG1hbi5jb20+
--- 235 2.0.0 OK Authenticated
<-- MAIL FROM:<[email protected]>
Authentication-Warning: symbion.example.com: Host ... [...] claimed to be [192.168.1.171]
--- 403 4.7.0 authentication required
ruleset=check_mail, arg1=<[email protected]>, relay=... [...], reject=403 4.7.0 authentication required
<-- RCPT TO:<info@......>
--- 503 5.0.0 Need MAIL before RCPT
<-- DATA
--- 503 5.0.0 Need MAIL command
<-- QUIT
--- 221 2.0.0 symbion.example.com closing connection
Meu access
banco de dados não é grande:
CERTISSUER:/MY/OWN/Certificate/Authority RELAY
TLS_Clt:127.0.0.1 OK
TLS_Clt:192.168.1 OK
TLS_Clt: VERIFY:112
Try_TLS:127.0.0.1 NO
Try_TLS:192.168.1 NO
Connect:192.168.1 RELAY
Connect:127.0.0.1 RELAY
Srv_Features:127.0.0.1 S A V
Srv_Features:192.168.1 S A V
Srv_Features: s a v
O mesmo com o sendmail invocado localmente:
% sendmail -O LogLevel=14 -bs -Am
220 symbion.example.com ESMTP Sendmail 8.15.2/8.15.2; Fri, 27 Oct 2017 01:02:25 -0400 (EDT)
AUTH CRAM-MD5
334 PDEwM....vbT4=
cmlvc0BzeW1ia...JhYjU5
235 2.0.0 OK Authenticated
MAIL FROM: mi@meow
403 4.7.0 authentication required
Ok, este é o culpado:
Não é necessário e, de fato, prejudicial, porque os estúpidos iPhones não podem ser configurados para apresentar certificados de clientes. Depois de remover a linha acima, a autenticação começou a funcionar tanto para os peers, que apresentam os certificados satisfatórios, quanto para aqueles que fornecem credenciais pré-compartilhadas
CRAM-MD5
.(A
AUTH_OPTIONS
parte se mostrou irrelevante.)