Uma coisa bem comum entre administradores de sistemas que iniciam atividades relacionadas a email é achar que ter um endereço IP com a porta 25 aberta é sinal de que tudo irá funcionar. Ok… esse administrador está 100% errado.

Uma coisa que acho interessante em grupos que participo é a quantidade de “Administradores de sistemas” perguntado sobre manual ou documento de “Boas Práticas”. Antes de qualquer coisa, você tem que saber onde e com o que você está trabalhando. No caso de um serviço de e-mail, tente responder as perguntas abaixo:

  • Sei o que é um serviço de email e como ele funciona de verdade?
  • Sei como é o correto funcionamento do DNS básico?
  • Sei como é o correto funcionamento e requisitos do DNS para trabalhar com serviço de e-mail (rDNS, DKIM, SPF, DMARC)?
  • Sei como funciona um servidor de e-mails – MTA (Postfix, Qmail, Exim, Sendmail, Ms Exchange, IBM Notes)?
  • Sei sobre os fundamentos de redes de computadores (roteamento, firewall, ips/ids, etc)?
  • Sei o que é ANTISPAM? ANTIVIRUS? GATEWAY ou PROXY de SMTP/MTA Externo?
  • Blacklists e Whitelists e seu funcionamento?
  • Se você utiliza algum Groupware ou Collaboration Suite como o Expresso mail, Zimbra, Zarafa ou outro, você conhece as ferramentas externas da solução como OpenLDAP, MySQL/MariaDB, PostgreSQL, Amavis, Samba, ActiveDirectory, PolicyD, Nginx, Apache, HA-Proxy, RabbitMQ ou outros serviços que fazem o conjunto da solução?

Se você ficou em dúvida quanto algum dos itens acima, recomendo ler sobre o assunto que te colocou uma pulga atrás da orelha!

Porque falei pra você ler sobre o assunto?  No primeiro problema que surgir, você irá a alguma lista ou grupo de discussão e irá perguntar sobre o problema sem ao menos compreender o que o log informa -se é que você sabe onde ficam os logs! – verdade!!!!! tem muita gente que pergunta em qual lugar fica o arquivo de log do postfix!!! olha o tanto de exclamação!!!

Há diversos lugares onde você pode fazer a tradução dos códigos de erros dos serviços de e-mail como este aqui: https://serversmtp.com/smtp-error/

Mas vamos ao que interessa. Nessa primeira parte, irei abordar algumas verificações de DNS para o correto funcionamento do serviço de e-mails.

1 – Verificando as configurações de DNS

1.1 – Ping no smtp.gmail.com

root@zimbra:~# ping -c3 smtp.gmail.com
PING gmail-smtp-msa.l.google.com (108.177.15.109) 56(84) bytes of data.
64 bytes from wr-in-f109.1e100.net (108.177.15.109): icmp_seq=1 ttl=44 time=5.29 ms
64 bytes from wr-in-f109.1e100.net (108.177.15.109): icmp_seq=2 ttl=44 time=5.31 ms
64 bytes from wr-in-f109.1e100.net (108.177.15.109): icmp_seq=3 ttl=44 time=5.29 ms

— gmail-smtp-msa.l.google.com ping statistics —
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 5.295/5.304/5.319/0.010 ms

1.2 – Pergunte ao seu DNS quais os servidor MX do Gmail.

root@zimbra:~# dig MX gmail.com

; <<>> DiG 9.10.3-P4-Ubuntu <<>> MX gmail.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31174
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;gmail.com. IN MX

;; ANSWER SECTION:
gmail.com. 3540 IN MX 30 alt3.gmail-smtp-in.l.google.com.
gmail.com. 3540 IN MX 10 alt1.gmail-smtp-in.l.google.com.
gmail.com. 3540 IN MX 20 alt2.gmail-smtp-in.l.google.com.
gmail.com. 3540 IN MX 5 gmail-smtp-in.l.google.com.
gmail.com. 3540 IN MX 40 alt4.gmail-smtp-in.l.google.com.

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Tue Aug 07 09:14:18 -03 2018
;; MSG SIZE rcvd: 161

1.3 – verifique o hostname do seu servidor de email

root@zimbra:~# hostname –fqdn
zimbra.dominio.com.br

1.4 – verifique qual o ip do seu servidor de email

root@zimbra:~# ping -c3 zimbra.dominio.com.br
PING zimbra.dominio.com.br (10.1.171.29) 56(84) bytes of data.
64 bytes from zimbra.dominio.com.br (10.1.171.29): icmp_seq=1 ttl=64 time=0.051 ms
64 bytes from zimbra.dominio.com.br (10.1.171.29): icmp_seq=2 ttl=64 time=0.033 ms
64 bytes from zimbra.dominio.com.br (10.1.171.29): icmp_seq=3 ttl=64 time=0.034 ms

— zimbra.dominio.com.br ping statistics —
3 packets transmitted, 3 received, 0% packet loss, time 1998ms
rtt min/avg/max/mdev = 0.033/0.039/0.051/0.009 ms

1.5 – Pergunte ao seu dns se ele conhece o seu servidor de email

root@zimbra:~# dig zimbra.dominio.com.br

; <<>> DiG 9.10.3-P4-Ubuntu <<>> zimbra.dominio.com.br
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49477
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1280
;; QUESTION SECTION:
;zimbra.dominio.com.br. IN A

;; ANSWER SECTION:
zimbra.dominio.com.br. 0 IN A 10.1.171.29

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Tue Aug 07 09:18:08 -03 2018
;; MSG SIZE rcvd: 63

1.6 – Verifique o rDNS (DNS Reverso)

root@zimbra:~# host 10.1.171.29
29.171.1.10.in-addr.arpa domain name pointer zimbra.dominio.com.br.

1.7 – Pergunte ao DNS do google se o ip do seu servidor está autorizado a enviar emails – SPF

root@zimbra:~# dig @8.8.8.8 TXT dominio.com.br

; <<>> DiG 9.10.3-P4-Ubuntu <<>> @8.8.8.8 TXT dominio.com.br
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6843
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;dominio.com.br. IN TXT

;; ANSWER SECTION:
dominio.com.br. 599 IN TXT “v=spf1 mx include:zimbra.dominio.com.br ip4:10.1.171.29 -all”

;; Query time: 230 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Tue Aug 07 09:21:43 -03 2018
;; MSG SIZE rcvd: 283

1.8 – Verifique se o seu servidor é capaz de conectar a porta 25 do gmail ou outlook

# Teste com gmail

root@zimbra:~# telnet gmail-smtp-in.l.google.com 25
Trying 108.177.15.27…
Connected to gmail-smtp-in.l.google.com.
Escape character is ‘^]’.
220 mx.google.com ESMTP z13-v6si932936wrg.240 – gsmtp
ehlo gmail-smtp-in.l.google.com
250-mx.google.com at your service, [10.1.171.29]
250-SIZE 157286400
250-8BITMIME
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-CHUNKING
250 SMTPUTF8
quit
221 2.0.0 closing connection z13-v6si932936wrg.240 – gsmtp
Connection closed by foreign host.

# Teste com outlook

root@zimbra:~# telnet hotmail-com.olc.protection.outlook.com 25
Trying 104.47.32.33…
Connected to hotmail-com.olc.protection.outlook.com.
Escape character is ‘^]’.
220 SN1NAM01FT051.mail.protection.outlook.com Microsoft ESMTP MAIL Service ready at Tue, 7 Aug 2018 12:24:51 +0000
ehlo hotmail-com.olc.protection.outlook.com
250-SN1NAM01FT051.mail.protection.outlook.com Hello [10.1.171.29]
250-SIZE 49283072
250-PIPELINING
250-DSN
250-ENHANCEDSTATUSCODES
250-STARTTLS
250-8BITMIME
250-BINARYMIME
250-CHUNKING
250 SMTPUTF8
quit
221 2.0.0 Service closing transmission channel
Connection closed by foreign host.

1.9 – Verifique de outro servidor ou conexão se você conesegue conectar na porta 25 do seu servidor de email.(Detalhe: conexões residenciais geralmente tem essa porta de saída bloqueada).

ubuntu@srv-teste:~$ telnet zimbra.dominio.com.br 25
Trying 10.1.171.29…
Connected to zimbra.dominio.com.br.
Escape character is ‘^]’.
220 zimbra.dominio.com.br ESMTP Postfix
ehlo zimbra.dominio.com.br
250-zimbra.dominio.com.br
250-PIPELINING
250-SIZE 30720000
250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
quit
221 2.0.0 Bye
Connection closed by foreign host.

1.10 – Verificando o ip de saida do seu servidor

Quando temos mais de um endereço IP público configurado no servidor ou no gateway/firewall de saída, é comum acontecer um erro básico de NAT. Achar que o ip de redirecionamento de entrada é o mesmo da saída. Neste caso, vamos supor que minha rede tem 2 endereços de IP público. São eles: 10.1.171.29 e 10.1.171.30.

Supondo que a NAT de entrada no firewall na porta 25 seja o 10.1.171.29 assim como o reverso, precisamos ter certeza que a saída é o mesmo configurado para entrada. Podemos testar com um verificador de ip qualquer.

root@zimbra:~# curl ifconfig.io

10.1.171.29

Nesse caso está correto! Porém, se o resultado for o ip 10.1.171.30, teremos que verificar no Firewall/Gateway a regra que realiza a saída.

Os finalmentes

Bom, se você conseguiu executar todos os comandos acima com sucesso, ou seja, com resultados parecidos com os que demonstrei. Seu servidor deve estar apto a enviar e receber e-mails.

Mesmo assim, antes de começar a enviar e receber emails, vale a pena utilizar alguma ferramenta de checagem do serviços como o https://mxtoolbox.com/ e quando você conseguir enviar e receber emails, verifique o score básico utilizando a ferramenta https://www.mail-tester.com/ ele te dará uma ideia do que você pode melhorar nas configurações do servidor de e-mail e no serviço de DNS.

Se você está encontrando dificuldades para enviar emails para os serviços Microsoft como Outlook e Hotmail, segue a dica do Samir Patrice – Grupo de Usuário Zimbra do Brasil:

Se você tem problemas com a MS pra enviar e-mails tente fazer ou troubleshooting por esse link https://sendersupport.olc.protection.outlook.com/pm/troubleshooting.aspx ou entre em contato com eles por esse outro link http://go.microsoft.com/fwlink/?LinkID=614866

Nesse link se cadastra para os dois serviços: https://postmaster.live.com/snds/JMRP.aspx

Dicas enviadas pelo Werneck no Grupo ZimBrasil do Telegram – https://t.me/zimBrasil:

# O que é SPF?
http://www.antispam.br/admin/spf/# Precisa ver como está a saúde do seu MX?
http://multirbl.valli.org# Precisa testar se uma conta existe no destino?
https://anonmails.de/email-check.php# Como removo/limpo meu MX?
Cada lista tem um método. A dica é saber quais as listas, e ir nos “www” de cada uma, verificando a forma correta: www.antispam.br

Quando tiver um tempo livre, irei dar continuidade no assunto!