O postfix não pode receber correio externo

5

Estou tentando configurar um servidor de e-mail para receber e-mails e estou trabalhando com o Postfix em uma instância do Ubuntu EC2 com um Elastic IP e os pontos de pesquisa reversa de DNS no meu domínio.

Eu posso enviar e receber e-mails entre contas locais, mas não consigo receber e-mails externos.

Configurei meus registros MX e consegui fazer o telnet para a porta 25 sem problemas, embora ainda tenha dúvidas se meus registros MX estão corretos



A   mail.example.in     123.123.3.11 (delete)       300         2010-10-12 03:37:24
A   example.in          123.123.3.11 (delete)       300         2010-10-11 04:34:53
MX  example.in          mail.example.in (delete)    300     10  2010-10-12 02:03:03
A   www.example.in      123.123.3.11 (delete)       300         2010-10-11 04:34:15
MX  www.example.in      mail.example.in (delete)    300     10  2010-10-12 02:12:51

netstat -nl me dá

 
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 127.0.0.1:3306             0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:110                0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:143                0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:2000               0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:80                 0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:22                 0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:25                 0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:993                0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:995                0.0.0.0:*               LISTEN     
tcp6       0      0 :::22                            :::*                          LISTEN     
tcp6       0      0 :::25                            :::*                          LISTEN     
udp        0      0.0.0.0:68                   0.0.0.0:*

Meu /etc/postfix/main.cf tem a seguinte aparência


smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = no

# TLS parameters
smtpd_tls_cert_file = /etc/ssl/certs/ssl-mail.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-mail.key
smtpd_use_tls = yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

myhostname = www.example.in
mydomain = example.in
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = $mydomain
mydestination = $myhostname,localhost.$mydomain, localhost, $mydomain
relayhost =
#mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mynetworks_style = host
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all

local_recipient_maps =
virtual_alias_domains =  www.example.in

virtual_alias_maps = hash:/etc/postfix/virtual
inet_protocols = all
home_mailbox = Maildir/
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/dovecot-auth
smtpd_sasl_authenticated_header = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_unauth_pipelining, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_sender_restrictions = reject_unknown_sender_domain
mailbox_command = /usr/lib/dovecot/deliver -c /etc/dovecot/conf.d/01-dovecot-postfix.conf -n -m "${EXTENSION}"
smtp_use_tls = yes
smtpd_tls_received_header = yes
smtpd_tls_mandatory_protocols = SSLv3, TLSv1
smtpd_tls_mandatory_ciphers = medium
smtpd_tls_auth_only = yes
tls_random_source = dev:/dev/urandom

Não vejo nenhum log do email realmente chegando ao meu servidor e não há detalhes em / var / log / syslog

Tenho certeza de que estou sentindo falta de algo básico e gostaria de receber ajuda sobre como configurá-lo.

Eu configurei um catch all id em / etc / postfix / virtual que funciona para e-mails locais. Eu pretendo processar e-mails recebidos usando um ruby, mas estou tendo problemas para colocar isso em prática.

Minhas mensagens continuam recebendo a seguinte mensagem

This is an automatically generated Delivery Status Notification

THIS IS A WARNING MESSAGE ONLY.

YOU DO NOT NEED TO RESEND YOUR MESSAGE.

Delivery to the following recipient has been delayed:

Message will be retried for 2 more day(s)

Technical details of temporary failure:
The recipient server did not accept our requests to connect. Learn more at http://mail.google.com/support/bin/answer.py?answer=7720
[mail.example.in. (10): Connection timed out]

Obrigado antecipadamente

    
por sid__ 12.10.2010 / 13:28

2 respostas

6

Se você puder acessar o servidor de fora de sua rede por IP, então deve haver algo errado com seu registro MX. Google para um testador de retransmissão aberto e colocar o seu IP lá e ver se ele é capaz de se conectar ao servidor.

O tempo limite de conexão geralmente é causado por uma das duas coisas: um firewall comendo a conexão (pode estar no próprio servidor ou no firewall da rede) ou o endereço IP errado e apontando para um endereço não usado onde nada pode rejeitar a conexão . Observe que, se você acabou de alterar a configuração do DNS, dependendo de quanto tempo seus registros DNS informam a todos para armazenar em cache os resultados da pesquisa, eles ainda podem estar usando as informações antigas por algum tempo.

Se o IP funcionar de fora da sua rede e já é tempo suficiente desde que você o configurou para atualizar os caches DNS, descobrir o que está errado com o seu registro MX não vai seja fácil sem informações reais. As únicas regras para um registro MX é que você 1) O registro MX deve conter um nome de host (não um IP) e um 2) O nome do host deve ter um registro A contendo seu IP (não um CNAME)
A maioria dos servidores de e-mail identifica um registro MX completamente inválido e retorna com uma mensagem dizendo isso.

Sua melhor aposta é usar dig MX example.in , que deve produzir algo como

;; ANSWER SECTION:
example.in.      6400    IN    MX   mail.example.in.

Em seguida, dig A mail.example.in deve dizer algo como

;; ANSWER SECTION:
mail.example.in.   6400  IN    A    xxx.xxx.xxx.xxx

A única outra coisa em que consigo pensar é que, na configuração anônima de DNS do exemplo que você colou, a terminação "." está faltando a partir dos nomes de host, mas eu não sei se isso foi por causa de sua pesquisa e substituição ou porque essa pasta veio de algum tipo de editor da web que pode estar escondendo aqueles "." s terminados de você. A mensagem devolvida que você colou usou "mail.example.in". então eu suspeito que é apenas escondido.

Se o IP não funcionar de fora da sua rede , você precisará verificar o firewall do servidor (iptables no Linux) para ter certeza de que ele não está bloqueando as conexões. Se você puder se conectar a partir de outra máquina em sua rede, a porta será bloqueada pelo firewall / roteador da rede ou o ISP estará bloqueando o SMTP.

Além disso, verifique se o seu Elastic IP está associado corretamente à sua instância. Isso parece uma operação bastante complexa, de acordo com os documentos aqui: link

    
por 12.10.2010 / 14:38
2

Você diz que tem dúvidas sobre seus registros MX. Não é fácil verificá-las sem conhecer o domínio, mas tente dig MX yourdomain.com para ver o que surge. Se esse não é o IP do seu servidor, existe o seu problema.

Se você sabe que seu MX está correto, a próxima coisa que eu tentaria não é apenas telnetting para a porta 25, mas, na verdade, empurrar uma mensagem de e-mail usando o telnet. O protocolo SMTP é bastante indulgente de geeks digitando os comandos diretamente. RFC 821 tem os detalhes do protocolo; você apenas envia EHLO, diz para quem está enviando, de que endereço é a mensagem e depois DATA para começar a enviar o texto; fechar com um. em uma linha por si só, e deve aceitar a mensagem ou dar uma mensagem de erro.

Eu mesmo estou apostando nos registros MX.

    
por 12.10.2010 / 14:39

Tags