O que há de errado com o meu roteamento de configuração do postfix através da Amazon / SES? (smtp_sender_dependent_authentication)

3

Estou tentando usar o Amazon SES como um gateway SMTP para o meu servidor 'preciso' do EC2 Ubuntu, usando diferentes contas SES para diferentes domínios de e-mail de origem. A documentação do postfix parece indicar que isso é possível, mas o SES sempre alega que estou usando as credenciais erradas ("535 Credenciais de Autenticação". Inválido"). As credenciais funcionam se eu direcionar todos os emails por meio da diretiva relayhost para a mesma conta do SES.

Aqui está o que eu tenho.

main.cf (seções relevantes):

relayhost =
sender_dependent_relayhost_maps = regexp:/etc/postfix/sender_dependent_relayhost_map
smtp_sender_dependent_authentication = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtp_sasl_password_maps = regexp:/etc/postfix/smtp_sasl_password_map
smtp_use_tls = yes
smtp_tls_security_level = encrypt
smtp_tls_note_starttls_offer = yes
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt

sender_dependent_relayhost_map:

/.*@example\.com/   [email-smtp.us-east-1.amazonaws.com]:25

smtp_sasl_password_map:

/.*@example\.com/   AK...:34.../...

onde AK ... é o AWSAccessKeyId e 34 ... / ... é o AWSSecretKey.

A mensagem de erro em /var/log/mail.log é:

Aug 20 21:47:39 example postfix/smtp[18496]: DE1E14218D: SASL authentication failed; server email-smtp.us-east-1.amazonaws.com[23.23.139.32] said: 535 Authentication Credentials Invalid

Existe alguma maneira de ver quais credenciais ele está tentando usar?

-

Atualização: Para depurar, substituí meus mapas regexp por mapas mysql e liguei o log de consultas SQL. Desta forma, posso ver como esses mapas são avaliados. É meio interessante. Primeiro, estou chegando:

SELECT host FROM sender_dependent_relayhost_map WHERE sender='[email protected]'

Se isso retornar localhost: 11111, posso executar o netcat nessa porta e obter uma conexão SMTP de entrada. Então essa parte parece estar funcionando bem.

Então, estou recebendo consultas repetidas do tipo:

SELECT userpass FROM smtp_sasl_password_map WHERE sender=...

primeiro avaliado com '[email protected]', então (se não encontrado) com '@ example.com' (não é algo que eu encontrei nos documentos), e então, surpreendentemente, com o servidor smtp encontrado a partir do anterior Consulta sender_dependent_relayhost_map. e finalmente com '< >' (presumivelmente o padrão global).

Mas se eu retornar 'AK ...: 34 ... / ...' (a credencial do Amazon SES) dessa segunda tabela, ainda recebo o mesmo erro de autenticação da Amazon. Portanto, há progresso, mas ainda não há resolução.

    
por Johannes Ernst 20.08.2012 / 23:59

2 respostas

2

Eu suspeito que o regexp está de alguma forma falhando. Você pode tentar o seguinte, que liga o usuário: passar para o relayhost.

/ etc / postfix / sasl_pass

[email-smtp.us-east-1.amazonaws.com] AKAAAA:AAAAAAAAA

/etc/posfix/main.cf

smtp_sasl_password_maps = hash:/etc/postfix/sasl_pass

É claro que você precisa executar o sudo postmap / etc / postfix / sasl_pass (ou qualquer outro nome do arquivo que você usa.

    
por 10.01.2013 / 02:44
2

Para as credenciais do sasl no postfix, onde você tem 'AK ...: 34 ... / ...', é necessário usar nome de usuário e senha SMTP, não AWSAccessKeyId e AWSSecretKey.

Consulte "Como obter suas credenciais SMTP do Amazon SES" no link

    
por 31.08.2015 / 03:32