Dig para totós

Escrita · 24 mai 2019

Dig para totós

Explicação de uma ferramenta de rede utilíssima

Quando crias sites, apps ou serviços de e-mail, podes cruzar-te com nomes de domínio e as suas configurações. Quando tudo funciona como deve ser, quase tudo isto é invisível. Mas, ao resolver problemas na configuração de um nome de domínio, pode ser preciso escavar um pouco mais... lê e aprende como!

Sistema de Nomes de Domínio (DNS)

A internet funciona com endereços numéricos de protocolo de internet (IP) para localizar e identificar computadores, serviços (na nuvem) e dispositivos online. Em vez de memorizar todos esses endereços IP, o sistema de nomes de domínio tornou-se o serviço de diretório essencial da internet, que liga nomes a números.

Estás a ler isto em willem.com, mas na realidade este nome de domínio é apenas um apontador para uma máquina física, ligada à internet (com fios, a sério!). Um desses fios está ligado ao endereço IP 87.253.135.162. É responsabilidade do servidor DNS manter os números (endereços IP) certos associados aos nomes (de domínio).

O Sistema de Nomes de Domínio (DNS) liga nomes de domínio a endereços IP, que por sua vez são encaminhados por cabos. Estás a ler isto - a sério! - através do cabo ligado ao servidor que se vê nesta fotografia!
O Sistema de Nomes de Domínio (DNS) liga nomes de domínio a endereços IP, que por sua vez são encaminhados por cabos. Estás a ler isto - a sério! - através do cabo ligado ao servidor que se vê nesta fotografia!

Distribuído e descentralizado

Quando os americanos conceberam a ARPANET, no início dos anos setenta, um dos requisitos militares era que a rede sobrevivesse a ataques (de inimigos). Conseguiram-no com a comutação de pacotes, uma forma de partilhar e reutilizar os cabos de rede entre várias pessoas e de várias maneiras. Se uma parte da rede for danificada, os pacotes de informação são reencaminhados por outras partes da rede.

Um mapa da ARPANET em 1973... imagina mapear a internet de hoje!  (Domínio público)
Um mapa da ARPANET em 1973... imagina mapear a internet de hoje! (Domínio público)

Para conseguir a máxima capacidade de sobrevivência, não existe um único servidor DNS raiz. Em vez disso, o sistema de nomes de domínio delega a responsabilidade de atribuir nomes de domínio e os respetivos mapeamentos, designando um servidor de nomes autoritativo para cada nome de domínio.

É por isso que existem tantos servidores DNS e configurações diferentes. Com tantas formas e sítios onde as coisas podem correr mal, precisas de uma ferramenta para escavar.

dig (domain information groper)

O comando 'dig' é uma ferramenta para interrogar servidores de nomes DNS sobre endereços IP, nomes de anfitrião, servidores de e-mail e outras configurações de rede. O comando dig está disponível em Unix, macOS, GNU/Linux e Windows.

Usar o dig para interrogar servidores de nomes de domínio

Podes usar o dig para obter informações sobre um dado nome de domínio, escrevendo simplesmente: 'dig willem.com'. Vê a seguinte captura de ecrã com explicação:

Usar o dig para obter informações sobre um nome de domínio, willem.com
Usar o dig para obter informações sobre um nome de domínio, willem.com
  • 1) dig willem.com devolve toda a informação sobre a pergunta, a resposta, a autoridade (quem respondeu à pergunta) e estatísticas da consulta em si (como o tempo que demorou a obter resposta).
  • 2) dig +short willem.com omite toda a informação extra e devolve só a resposta. Aqui vês que willem.com aponta para o endereço IP 87.253.135.162.
  • 3) dig +short willem.com MX mostra os registos de troca de correio (MX). Os registos MX são cruciais para o e-mail chegar ao servidor certo. Basicamente, é a indicação da estação de correios responsável pelo e-mail associado ao nome de domínio. Para willem.com é um serviço de e-mail chamado online.lemmid.com. Outros serviços de e-mail populares são o Office365 e o Google Gmail. Com o dig podes descobrir que serviço de e-mail alguém usa.
  • 4) dig +short willem.com NS mostra os servidores de nomes responsáveis por tratar as consultas deste nome de domínio. Normalmente são os servidores operados pelo registo de nomes de domínio, o teu fornecedor de domínios. Com o dig podes descobrir que tipo de fornecedor de domínios alguém usa (no caso de willem.com, é a Lemmid).
  • 5) dig +short willem.com TXT devolve o registo de texto associado ao nome de domínio, onde encontras o chamado registo SPF. O registo SPF é outra peça crucial do e-mail, vale a pena escavar um pouco mais sobre o SPF.

Sender Policy Framework (SPF)

Para detetar endereços de remetente falsificados em e-mails (o chamado e-mail spoofing), a norma SPF foi definida em 2004. Chamava-se originalmente "Sender Permitted From" e é uma forma de verificar se alguém tem autorização para enviar e-mail em nome de um dado nome de domínio. O SPF permite ao dono de um nome de domínio especificar quais os computadores autorizados a enviar e-mail com endereços FROM desse domínio.

Se o dono de um nome de domínio publica um registo SPF, é menos provável que spammers e phishers (ab)usem o domínio para enviar e-mails falsificados, a fingir que vêm desse domínio. Um domínio protegido por SPF tem, por isso, menos probabilidade de ser posto em listas negras por filtros de spam, o que torna mais provável que o e-mail legítimo do domínio chegue ao destino. Um registo SPF mal configurado pode, no entanto, perturbar a entrega de e-mail.

Usar o dig para consultar registos SPF

Com o comando dig podes consultar um registo SPF e ver qual é exatamente a política de remetentes. Vê a seguinte captura de ecrã com explicação:

Usar o dig para obter informações sobre os registos SPF de um nome de domínio, google.com
Usar o dig para obter informações sobre os registos SPF de um nome de domínio, google.com
  • 1) dig +short TXT google.com mostra-nos o registo TXT configurado para google.com, o sítio onde encontras o registo SPF (entre outras coisas). O registo SPF de google.com é "v=spf1 include:_spf.google.com ~all". A parte include: significa que, para este nome de domínio, também devem ser carregados valores SPF externos.
  • 2) dig +short TXT _spf.google.com mostra quais são realmente esses valores SPF externos de google.com. Neste caso revela mais três includes: "_netblocks.google.com", "_netblocks2.google.com" e (que original..) "_netblocks3.google.com".
  • 3) dig +short TXT _netblocks.google.com (e as variantes 2 + 3) especificam os endereços IP que realmente podem enviar e-mail em nome de google.com. Como a Google é uma grande empresa de internet, há muitos endereços IP nestas listas. Se olhares com atenção, vais notar que alguns têm um sufixo "/", como "/24". É a forma de notar um bloco inteiro (por exemplo, uma rua) de endereços IP.

Blocos de IP explicados

A forma mais fácil de perceber a notação de blocos de endereços IP é através dos seguintes exemplos:

  • /8 = 255.0.0.0
  • /16 = 255.255.0.0
  • /24 = 255.255.255.0
  • /32 = 255.255.255.255

Onde vês '0' nos endereços acima, outros valores estão incluídos. Assim, por exemplo, 173.194.0.0/16 significa na verdade "todos os endereços que começam por '173.194' ". Com 255 posições possíveis em cada octeto, são 255x255=65025 endereços diferentes!

Conclusão

Para resolver problemas, tens de saber onde está o problema. Com o comando dig podes conhecer uma dada configuração de rede e de domínio.

As respostas de um comando para o outro permitem-te escavar fundo nas entranhas da fantástica interweb. Boa sorte!

← Mais textos