---
title: "Dig para totós"
date: 2019-05-24
language: pt
topics: ["cloud", "cyber-security", "data", "linux", "networking", "programming", "server", "web", "work"]
source_url: https://willem.com/pt/2019-05-24_dig-para-totos/
---
# 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!](https://willem.com/global/images/b02bcfa4dfab.webp)

## 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)](https://willem.com/global/images/0ecb8ad41dca.webp)

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](https://willem.com/global/images/35dfaed28848.webp)

- 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](https://willem.com/global/images/a865a4e8afcd.webp)

- 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!
