O blog da AWS

Como utilizar uma zona reversa de DNS com o Amazon Route 53 e o Registro.br

Alguns clientes usam uma zona de pesquisa reversa para ajudar na solução de problemas, filtragem de spam e detecção de bots, especialmente para serviços de e-mail que dependem de tal configuração para garantir a entrega confiável de mensagens. Por exemplo, muitos servidores de e-mail na internet são configurados para rejeitar mensagens originárias de endereços IP que não possuem uma zona reversa registrada. Isso torna crucial para as organizações terem um DNS reverso corretamente configurado para manter a reputação e o funcionamento correto de suas comunicações por e-mail. Além disso, hospedar a zona reversa no Amazon Route 53 oferece benefícios como alta disponibilidade, melhoria de desempenho, escalabilidade e integração com outros serviços da AWS, aumentando ainda mais a confiabilidade e segurança geral da infraestrutura de DNS.

Neste blog, vamos explorar como utilizar uma zona reversa de DNS do Registro.br no Amazon Route 53, incluindo a configuração de segurança do DNSSEC (Domain Name System Security Extensions) e as configurações no Registro.br.

O que é uma zona de pesquisa de DNS reversa?

Uma zona de pesquisa reversa, ou DNS reverso, é uma parte fundamental da infraestrutura de DNS que opera inversamente a zona de pesquisa direta. Enquanto a zona de pesquisa direta mapeia nomes de domínio para endereços IP, a zona reversa contém registros de endereços IP associados aos nomes de domínio correspondentes, permitindo a conversão de endereços IP em nomes de domínio. Esta zona é identificada por um sufixo especial “in-addr.arpa”, conforme definido na RFC 1035.

Quando um cliente envia uma consulta DNS reversa para um servidor DNS, fornecendo um endereço IP, o servidor verifica a zona reversa correspondente ao IP fornecido e retorna o registro DNS PTR (domain name pointer) associado, que contém o nome de domínio correspondente. Uma zona reversa precisa ser adequadamente configurada e mantida para garantir o bom funcionamento das comunicações na Internet. A falta de uma configuração correta pode resultar na rejeição de mensagens de e-mail ou marcá-las como spam, afetando a entregabilidade e a reputação do remetente.

Solução

Seguindo as diretrizes do Registro.br, a delegação DNS reversa para blocos IPv4 são restritas pelos octetos, ou seja, a cada 8 bits. Isso significa que a estrutura da zona reversa depende do tamanho do bloco IP delegado. Portanto é possível fazer delegações DNS de blocos IPv4 de prefixos /8, /16 e /24.

Se você tiver a delegação de um bloco /22, por exemplo, serão necessárias quatro zonas hospedadas no Route 53, uma para cada bloco /24. Se a sua delegação for de um bloco /16, será necessário apenas uma zona hospedada no Route 53.

Por exemplo, se a sua delegação é do bloco 192.168.0.0/22, serão necessárias as zonas hospedadas abaixo:

  • 0.168.192.in-addr.arpa
  • 1.168.192.in-addr.arpa
  • 2.168.192.in-addr.arpa
  • 3.168.192.in-addr.arpa

Para o bloco 192.168.0.0/16, será necessário a zona hospedada abaixo:

  • 168.192.in-addr.arpa

Nota: usamos um exemplo de um bloco de endereços privado, definido pela RFC 1918. Em um caso real deve ser um range de IPs roteável na internet.

Com as zonas reversas hospedadas criadas no Route 53, é necessário fazer a delegação de DNS no Registro.br. No site do Registro.br devem ser indicados quais são os servidores de DNS para o bloco como um todo, ou seja, no exemplo do bloco /22 acima vamos indicar os servidores DNS que vão ser utilizados para as quatro zonas hospedadas. Portanto é necessário ter os mesmos servidores DNS em cada uma das zonas hospedadas. Usando conjuntos de delegações reutilizáveis do Route 53 podemos atingir este objetivo.

Zona hospedada utilizando conjuntos de delegações reutilizáveis

Imagem 1: Zona hospedada utilizando conjuntos de delegações reutilizáveis

Passos necessários

Abaixo temos os passos necessários para fazer a configuração da zona hospedada no Route 53 e também as configurações necessárias no Registro.br.

  • Criar conjuntos de delegações reutilizáveis
  • Criar a zona hospedada
  • Criar registros
  • Alterar a delegação DNS no Registro.br
  • Habilitar a assinatura de DNSSEC (Opcional)
  • Configurar DNSSEC no Registro.br (Opcional)

Pré-requisitos

Para seguir os passos necessários, você deve ter os seguintes pré-requisitos:

Criar conjuntos de delegações reutilizáveis

As delegações reutilizáveis são um conjunto de quatro servidores de nome autoritativos que você pode usar com mais de uma zona hospedada. Por padrão, o Route 53 atribui uma seleção aleatória de servidores de nome a cada nova zona hospedada. Como precisamos criar mais de uma zona hospedada e só temos uma delegação de bloco IP no Registro.br, você pode criar um conjunto de delegações reutilizáveis e associar esse conjunto a novas zonas hospedadas.

Você cria um conjunto de delegações reutilizáveis e o associa a uma zona hospedada de forma programática, via CLI. Não há suporte para o uso do console do Route 53.

$ aws route53 create-reusable-delegation-set --caller-reference 'blog-post'

Veja abaixo um exemplo da resposta do comando acima que vai gerar os conjuntos de delegações reutilizáveis. Tome nota do atributo Id pois ele será necessário nos passos seguintes.

{
    "Location": "https://route53.amazonaws.com/2013-04-01/delegationset/N02698603VTYJUR2DM1FI",
    "DelegationSet": {
        "Id": "/delegationset/N02698603VTYJUR2DM1FI",
        "CallerReference": "blog-post",
        "NameServers": [
            "ns-360.awsdns-45.com",
            "ns-943.awsdns-53.net",
            "ns-1505.awsdns-60.org",
            "ns-1745.awsdns-26.co.uk"
        ]
    }
}

Criar a zona hospedada

É necessário criar uma zona hospedada pública para cada range /24 do bloco de IP delegado no Registro.br. No exemplo deste blog post estamos usando o bloco de IP 192.168.0.0/22, que é composto por quatro blocos /24.
Cada zona hospedada deve utilizar os conjuntos de delegações reutilizáveis criados anteriormente.

Você cria uma zona hospedada utilizando conjuntos de delegações reutilizáveis de forma programática, via AWS CLI. Não há suporte para o uso do console do Route 53.

Abaixo temos a lista de zonas hospedadas que deverão ser criadas:

  • 0.168.192.in-addr.arpa
  • 1.168.192.in-addr.arpa
  • 2.168.192.in-addr.arpa
  • 3.168.192.in-addr.arpa

Nos comandos abaixo, o argumento --delegation-set-id deve ser o Id retornado no passo anterior que você tomou nota. O argumento --caller-reference precisa ser único, portanto, estamos usando um valor diferente em cada execução.

$ aws route53 create-hosted-zone \
>     --name 0.168.192.in-addr.arpa \
>     --caller-reference 'blog-post-zona-0' \
>     --hosted-zone-config Comment="Blog post" \
>     --delegation-set-id "/delegationset/N02698603VTYJUR2DM1FI"
$ aws route53 create-hosted-zone \
>     --name 1.168.192.in-addr.arpa \
>     --caller-reference 'blog-post-zona-1' \
>     --hosted-zone-config Comment="Blog post" \
>     --delegation-set-id "/delegationset/N02698603VTYJUR2DM1FI"
$ aws route53 create-hosted-zone \
>     --name 2.168.192.in-addr.arpa \
>     --caller-reference 'blog-post-zona-2' \
>     --hosted-zone-config Comment="Blog post" \
>     --delegation-set-id "/delegationset/N02698603VTYJUR2DM1FI"
$ aws route53 create-hosted-zone \
>     --name 3.168.192.in-addr.arpa \
>     --caller-reference 'blog-post-zona-3' \
>     --hosted-zone-config Comment="Blog post" \
>     --delegation-set-id "/delegationset/N02698603VTYJUR2DM1FI"

As zonas hospedadas criadas podem ser visualizadas na console do Route 53, conforme abaixo.

Console do Route 53 com as zonas hospedadas

Imagem 2: Console do Route 53 com as zonas hospedadas

Criar registros

Depois de criar uma zona hospedada, crie registros do tipo PTR na zona hospedada que define onde você deseja mapear um nome de domínio para um endereço de IP correspondente. Por exemplo, se você deseja mapear o domínio mail.exemplo.com para o endereço de IP 192.168.0.10, crie um registro chamado 10.0.168.192.in-addr.arpa com o valor mail.exemplo.com.

Para criar um registro usando o console do Route 53

  1. Faça login no AWS Management Console e abra a página do serviço do Route 53 em https://console.thinkwithwp.com/route53/.
  2. No painel de navegação, escolha Zonas hospedadas.
  3. Na página Hosted zones (Zonas hospedadas), escolha o nome da zona hospedada na qual deseja criar os registros. No nosso exemplo é 0.168.192.in-addr.arpa.
  4. Escolha Create record (Criar registro).
  5. Escolha o Tipo de registro, PTR.
  6. Preencha os campos nome do registro e valor.
  7. Escolha Create records (Criar registros).

Criar registro DNS tipo PTR

Imagem 3: Criar registro DNS tipo PTR

Habilitar a assinatura de DNSSEC (Opcional)

Quando você configura o DNSSEC para o seu domínio, um resolvedor de DNS estabelece uma cadeia de confiança para respostas de resolvedores intermediários. A cadeia de confiança começa com o registro do TLD do domínio (a zona principal do domínio) e termina com os servidores de nome autorizados no seu provedor de serviços de DNS.

A habilitação da assinatura de DNSSEC tem duas etapas:

  • Etapa 1: Habilitar a assinatura de DNSSEC para o Route 53 e solicitar que o Route 53 crie uma chave de assinatura da chave (KSK) com base em uma chave gerenciada pelo cliente no AWS Key Management Service (AWS KMS).
  • Etapa 2: Criar uma cadeia de confiança para a zona hospedada adicionando um registro DS (Delegation Signer) a zona pai, para que as respostas DNS possam ser autenticadas com assinaturas criptográficas confiáveis.

Para obter instruções, consulte Como habilitar a assinatura de DNSSEC e estabelecer uma cadeia de confiança.

No exemplo deste blog post é necessário habilitar o DNSSEC em cada uma das quatro zonas hospedadas criadas anteriormente. Deve ser utilizado a mesma chave KSK, utilizando o customer managed CMK ARN.

Habilitando DNSSEC signing

Imagem 4: Habilitando DNSSEC signing

Configurar DNSSEC no Registro.br (Opcional)

Depois que o DNSSEC for habilitado nas 4 zonas hospedadas no Route 53, é necessário configurar o DNSSEC no Registro.br. O valor a ser configurado para o registro tipo DS (Delegation Signer) deve ser o mesmo que foi criado em uma das zonas hospedadas.

Você irá notar que o valor do Registro DS será diferente em cada uma das zonas hospedadas, porém note que a chave pública é a mesma, portanto pode ser utilizado qualquer valor do Registro DS de uma das quatro zonas hospedadas.

Removendo recursos

Para evitar gerar custo com os recursos criado neste blog post, é necessário removê-los, caso não vá deixar a alteração permanente.

Veja a documentação para excluir uma zona hospedada pública. Você deve excluir todas as zonas hospedadas criadas neste post através da console do Route 53. No nosso exemplo criamos quatro zonas hospedadas.

Para excluir conjuntos de delegações reutilizáveis é necessário fazer de forma programática, via AWS CLI. Neste caso não há suporte para o uso da console do Route 53. Veja abaixo um exemplo do comando para excluir. É necessário usar o Id dos conjuntos de delegações reutilizáveis criados anteriormente, o qual você tomou nota.

$ aws route53 delete-reusable-delegation-set --id "/delegationset/N02698603VTYJUR2DM1FI"

É necessário que os conjuntos de delegações reutilizáveis não estejam associados com nenhuma zona hospedada, caso contrário não será possível excluir.

Conclusão

Neste blog post explicamos como utilizar zona de DNS reversa no Route 53 em conjunto com o Registro.br. Este processo vai melhorar sua postura de segurança em relação ao DNS e também ajudará a manter uma boa reputação para os seus blocos de IP, permitindo a verificação do seu nome de domínio conforme o bloco de endereços IP.

Você pode obter mais detalhes sobre esse processo na página de suporte do Registro.br. Você também pode encontrar mais detalhes sobre os conceitos do Amazon Route 53.

Sobre os autores

Leonardo Azize Martins é Arquiteto de Soluções na AWS Brasil
Silvio Nunes Junior é Arquiteto de Soluções na AWS Brasil
Andre Mello é Arquiteto de Soluções na AWS Brasil