Um servidor web do CentOS 7 tem postfix, dovecot e mailx instalados. Eu tenho sido capaz de fazer uma conexão IMAP para o servidor, a fim de ler e-mail caixa de entrada usando um cliente remoto do Thunderbird, mas eu não sou capaz de fazer uma conexão SMTP para enviar e-mail do Thunderbird. Quando faço a análise forense, descubro que a conexão SMTP tentada atinge o tempo limite. Como posso resolver esse problema do tempo limite da conexão, para que eu possa enviar e-mails do Thunderbird através do servidor?
Meus forenses até agora resultaram em:
Digitar hostname
no terminal no servidor retorna mydomain.com
.
nano /usr/lib/firewalld/services/smtp.xml
indica que a porta smtp é 25
O serviço smtp é ativado na zona pública porque firewall-cmd --list-all
resulta em:
public (default, active)
interfaces: enp3s0
sources:
services: dhcpv6-client imaps openvpn smtp
ports:
masquerade: yes
forward-ports:
icmp-blocks:
rich rules:
Mas quando tento fazer telnet do meu devbox para o servidor remoto do CentOS 7, obtenho os seguintes resultados. Digitar telnet mydomain.com 25
resultou em:
Trying my.SERVER.ip.addr...
telnet: connect to address my.SERVER.ip.addr: Connection timed out
Em seguida, digitar telnet smtp.mydomain.com 25
resultou em:
Trying my.SERVER.ip.addr...
telnet: connect to address my.SERVER.ip.addr: Connection timed out
Além disso, digitar openssl s_client -CApath /etc/ssl/certs -starttls smtp -port 25 -host smtp.mydomain.com
resulta em:
socket: Connection timed out
connect:errno=110
Da mesma forma, digitar openssl s_client -CApath /etc/ssl/certs -starttls smtp -port 25 -host mydomain.com
também resultou em:
socket: Connection timed out
connect:errno=110
Eu digitei nano /etc/postfix/main.cf
para começar a examinar a configuração, mas não encontrei nada relacionado a portas.
EDITAR:
De acordo com o conselho de FaheemMitha, tentei telnet mydomain.com 587
do cliente e recebi No route to host
em resposta. Eu acho que isso é porque apenas a porta 25 está aberta no firewalld para smtp.
Por isso, pensei em experimentar o telnet a partir do servidor remoto mydomain.com. Quando eu entrei no meu servidor remoto via ssh e digitei telnet localhost 25
, o resultado foi:
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mydomain.com ESMTP Postfix
Isso me faz suspeitar que o postfix está sendo executado na porta 25, mas que de alguma forma não é capaz de aceitar conexões externas.
EDIT # 2
Como por sugestão @ RedCricket, eu corri iptables -L
. Como os resultados foram detalhados, os enviei para um site de compartilhamento de arquivos, que você pode visualizar clicando neste link.
Eu também tentei iptables --flush
seguido por firewall-cmd --reload
e, em seguida, repeti os testes telnet e thunderbird acima, mas ainda estou recebendo o erro de tempo limite da conexão.
O que mais eu posso experimentar?
Carreguei todo o /etc/postfix/main.cf
em um site de compartilhamento de arquivos. Você pode ler clicando neste link.
EDIT # 3
Um endereço de e-mail válido, someone.else@some_other_domain.com, envia um e-mail para [email protected] sem problemas. Portanto, como teste, solicitei que meu cliente remoto do Thunderbird tentasse enviar um email para someone.else@algum_dominio.com como parte do trabalho documentado acima neste OP. Esta manhã, recebi um retorno à mensagem do remetente no meu Thunderbird como resultado do email de teste. Eu interpreto esta mensagem retornada para significar que pelo menos uma das minhas mensagens de teste do Thunderbird entrou no SMTP em mydomain.com, mas que mydomain.com não pôde procurar ou se conectar a some_other_domain.com. Aqui está a mensagem:
This is the mail system at host mydomain.com.
I'm sorry to have to someone.elserm you that your message could not
be delivered to one or more recipients. It's attached below.
For further assistance, please send mail to postmaster.
If you do so, please include this problem report. You can
delete your own text from the attached returned message.
The mail system
<someone.else@some_other_domain.com>: Host or domain name not found. Name service error for
name=some_other_domain.com type=MX: Host not found, try again
Reporting-MTA: dns; mydomain.com
X-Postfix-Queue-ID: 2C915811BD1C
X-Postfix-Sender: rfc822; [email protected]
Arrival-Date: Mon, 23 Feb 2015 16:46:34 -0500 (EST)
Final-Recipient: rfc822; someone.else@some_other_domain.com
Action: failed
Status: 4.4.3
Diagnostic-Code: X-Postfix; Host or domain name not found. Name service error
for name=some_other_domain.com type=MX: Host not found, try again
ForwardedMessage.eml
Subject: key enclosed
From: [email protected]
Date: 02/23/2015 01:46 PM
To: someone.else@some_other_domain.com
this is the body of the email
Assim, parece que às vezes a conexão do meu devbox remoto para mydomain.com é fechada e, em outros casos, a conexão de mydomain.com para o resto da internet é fechada.
EDIT # 4
Seguindo o conselho do @ derobert, eu primeiro tentei os dois comandos telnet do devbox para o servidor, então eu tentei enviar um email do
[email protected] usando o cliente Thunderbird no meu devbox, e então eu executei o comando tcpdump tanto no devbox quanto no servidor. Digitar
tcpdump port 25
no terminal devbox resultou no seguinte:
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
ouvindo em tun0, RAW (Raw IP), tamanho de captura 65535 bytes
^ C
0 pacotes capturados
0 pacotes recebidos pelo filtro
0 pacotes descartados pelo kernel
Em seguida, digitar tcpdump
no servidor resultou em tanta saída que os resultados rolaram indefinidamente até que eu digitei Ctrl-C. Então eu digitei tcpdump port 25
e obtive os seguintes resultados:
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun0, link-type RAW (Raw IP), capture size 65535 bytes
^C
0 packets captured
0 packets received by filter
0 packets dropped by kernel
Como curiosidade, digitei tcpdump port 25
novamente no devbox e no servidor simultaneamente e deixei-o aberto sem digitar Ctrl-C
, e tentei enviar manualmente um email de [email protected] usando o cliente Thunderbird meu devbox. Ainda tenho a mesma falha de tempo limite de conexão, mas não houve atividade relatada pelos comandos tcpdump port 25
abertos. E os totais também chegaram a zero quando digitei Ctrl-C
nos dois terminais posteriormente.