O blog da AWS

Usando o Route 53 como serviço de DNS para um domínio com DNSSEC

Por Luciano Guanaz, arquiteto de infraestrutura Cloud, AWS;

e Rubens Macegossa Dias, Arquiteto de Infraestrutura Cloud, AWS.

Introdução

Amazon Route 53, serviço global de DNS (Sistema de Nomes de Domínios) altamente disponível e escalável, possui diversos recursos dos quais os clientes AWS podem se beneficiar.

O Amazon Route 53 é um serviço robusto que oferece resolução de nomes e registro de domínios. Muitas empresas, embora já possuam seus domínios registrados, buscam migrar apenas a gestão de resolução de nomes para o Route 53, a fim de aproveitar todos os benefícios que ele oferece. Entre esses benefícios estão a alta disponibilidade, escalabilidade automática e integração com outros serviços da AWS, além disso, o Route 53 oferece suporte a geolocalização e balanceamento de carga baseado em DNS, melhorando significativamente a performance e a confiabilidade das aplicações web.

Em certos domínios, como “B.BR”, “DEF.BR”, “JUS.BR”, “LEG.BR”, “MP.BR” e “TC.BR”, o uso do DNSSEC (Domain Name System Security Extensions) é obrigatório. No entanto, a migração desses serviços para o Route 53 pode gerar dúvidas, especialmente em relação à implementação do DNSSEC. É importante que as empresas entendam o processo de migração e configuração para garantir a segurança e integridade de seus domínios, aproveitando ao máximo as vantagens do Amazon Route 53 sem comprometer a conformidade com as exigências de segurança.

Solução

Este post demonstra como estabelecer o Amazon Route 53 como serviço de DNS de um domínio em uso, considerando a implementação ou substituição do DNSSEC, camada de segurança que protege o domínio contra ataques conhecidos como DNS spoofing ou main-in-the-middle.

Pré-requisitos

  • Acesso ao register onde o domínio se encontra registrado para posterior alteração de registros “NS” e “DS” durante o cutover
  • Acesso ao atual servidor de DNS para export das Zonas e suas respectivas entradas (CNAMES, MX, A, etc)
  • Acesso à conta da AWS na qual o serviço Route 53 será utilizado e permissão para configuração das Hosted Zones e DNSSEC

Passo 1 – Preparação:  Obtenha as configurações das entradas de DNS do seu atual provedor. As entradas de DNS poderão ser criadas manualmente ou importadas quando houver uma grande quantidade de entradas, desde que seu atual provedor permita o export das configurações de DNS para um arquivo.

Algumas informações importantes sobre a ação de import:

  • O arquivo de DNS deve estar no formado RFC.
  • O domínio das entradas no arquivo deve ter mesmo nome da Hosted Zone criada no Route 53.
  • O Route 53 suporta as palavras $ORIGIN e $TTL. Se o arquivo de zonas incluir as palavras $GENERATE ou $INCLUDE, o import irá falhar.
  • As entradas do tipo SOA e NS que tem o mesmo nome da Hosted Zone, são ignorados durante o import.
  • O limite de import é de 1000 entradas.
  • Se a Hosted Zone já conter entradas presente no arquivo de DNS, o import irá falhar.
  • O Route 53 não suporta o export de entradas para um arquivo.

 

Passo 2 – Preparação: Crie a Hosted Zone 

Para dizer ao Amazon Route 53 como você quer rotear o tráfego para o seu domínio, é necessário criar uma Hosted Zone com o mesmo nome do seu domínio, e depois disso as entradas na Hosted Zone.

  1. Faça o login no AWS Management Console e abra o serviço Route 53
  2. No menu, selecione Hosted Zones → Create hosted zones

Figura 1: criar uma nova Hosted Zone

  1. Preencha o nome de domínio, opcionalmente uma descrição e em Type, mantenha o default que é a criação de uma Public Zone

Figura 2: parâmetros para a criação de uma nova Hosted Zone

Passo 3 – Preparação : Crie as entradas

Você pode criar as entradas de 2 formas:

Importando um arquivo de DNS, descrito no passo 1

  1. Faça o login no AWS Management Console e abra o serviço Route 53
  2. No menu, escolha Hosted Zones → Selecione a Hosted Zone → Import zone file

Figura 3: importar zone file para criação de entradas na Hosted Zone

  1. No painel Import Zone file, cole o conteúdo do arquivo com as entradas do domínio e depois escolha Import

Figura 4: inserir conteúdo que será importado para a criação de entradas na Hosted Zone

 

O Amazon Route 53 não consegue prever quando criar registro de alias ou tipos de roteamentos especiais, como weighted ou failover. Por padrão, ao importar um arquivo com as entradas do domínio, o Route 53 cria registros DNS padrão utilizando a política de roteamento simples.

Criando as entradas individualmente na console

Se não for possível obter um arquivo de DNS e for necessário criar somente algumas entradas com o tipo de roteamento simples, você pode criar o registro pela console, acessando a Hosted Zone, e selecionando a opção Create record.

Figura 5: criar entrada na Hosted Zone manualmente.

Criando as entradas de forma programática

Também é possível criar as entradas usando AWS SDK’s, AWS CLI or AWS Tools para o Windows PowerShell. Para mais informações consulte AWS Documentation 

Passo 4 – Preparação : Diminua as configurações de TTL

A configuração de TTL (time to live) especifica por quanto tempo os resolvedores de DNS vão manter as informações de resolução em cache. Quando este tempo expira, o resolvedor envia uma nova query para o provedor de DNS do domínio para acessar as ultimas informações de resolução.
Diminuir o TTL para as entradas NS, tanto no atual provedor quanto no Amazon Route 53, reduz o downtime do domínio se houver um problema durante a migração.

Para diminuir o TTL da entrada NS no seu provedor atual, siga o método dado pelo próprio provedor

Para diminuir o TTL da entrada NS no Route 53:

  1. Faça o login no AWS Management Console e abra o serviço Route 53
  2. No menu, escolha Hosted Zones → Selecione a Hosted Zone
  3. Faça o login no AWS Management Console e abra o serviço Route 53
  4. Selecione a entrada NS → Edit
  5. Altere o valor do TTL (segundos). Recomendamos um valor entre 60 segundos e 900 segundos.
  6. Save Changes

Figura 6: editar entradas NS para diminuir TTL


Figura 7: diminuir TTL das entradas NS

Passo 5 – Preparação: DNSSEC, Criação de chave e configuração no Route 53 Hosted Zone

  1. Faça o login no AWS Management Console e abra o serviço Route 53
  2. No menu, escolha Hosted Zones → Selecione a Hosted Zone
  3. No menu DNSSEC signing, selecione Enable DNSSEC signing

Figura 8: habilitar DNSSEC para a Hosted Zone

  1. Na sessão Key-signing key (KSK) creation, defina um nome para a chave KSK que o Route 53 irá criar para você
  2. Em Customer managed CMK, você pode selecionar uma chave já criada, ou selecionar Create customer managed CMK

Figura 9: configurar parâmetros para criação da chave do DNSSEC

A chave será criada no serviço KMS na região de Virginia, além disso, outras especificações são requisitos para uma CMK a ser usada para o DNSSEC.

Figura 10: DNSSEC habilitado para a Hosted Zone

Neste momento o DNSSEC está configurado na Hosted Zone do Route 53, a configuração do estabelecimento da cadeia de confiança ainda é necessária, porém deverá ser realizada durante a migração,

Passo 6 – Migração: Aguarde a expiração do TTL antigo

Para garantir que a migração do DNS para o Route 53 aconteça de imediato, aguarde 2 dias após o TTL ter sido reduzido. Depois disso, os resolvedores vão solicitar os servidores de domínio (NS) novamente, irão obter os NS’s atuais porém com o novo TTL especificado no passo 4.

Passo 7- Migração: Atualize as entradas NS e DNSSEC para utilização do Route53

Para começar a utilizar o Route 53 como o serviço de DNS para um domínio, deve ser realizado o procedimento fornecido pelo register para substituir os servidores de nomes atuais do registro NS pelos servidores de nomes do Route 53, e registro DS para os valores de DNSSEC também fornecidos pelo Route 53.

Importante: Anote os valores atuais de servidores de dominios (NS) e DNSSEC (DS) configurados no register para possível necessidade de Rollback.

Neste post, usaremos como exemplo a atualização em um dominio que está registrado no GoDaddy:

  1. Selecione o dominio → Servidores de nomes → Mudar servidor de nomes
  2. No menu de Edição, Insira os servidores NS obtidos da Hosted Zone criada no Amazon Route 53

Figura 11: Editar servidores de nomes no register

Figura 12: Inserir servidores de nomes do Route 53 no register

  1. Para o DNSSEC, obtenha os valores no Route53:
    1. Navegue até a Hosted Zone → DNSSEC signing → View information to create DS record

Figura 13: Visualizar informação sobre a criação de registro DS

  1. Expanda a opção Establish a chain of trust Another domain registar

Figura 14: Obter informações do registro DS para estabelecimento de cadeia de confiança

 

  1. Copie os valores que são requeridos pelo register, no nosso caso, GoDaddy.No GoDaddy vá até o menu Registros DS e substitua pelos valores obtidos no Route53

Figura 15: Inserir valores do registro DS no register

Passo 8 – Validações

  1. Aguarde a expiração do TTL configurado no passo 4
  2. Valide que o dominio esteja respondendo através do Route 53 (registros NS e DS), para isso alguns métodos podem ser utilzados:

Sites recomendados para validações:
https://www.whatsmydns.net/
https://dnsviz.net/

Comandos linux recomendados para validações:

NS:

% dig NS domain +short

% dig NS domain (para visualizar também o TTL configurado)

DS

% dig DS domain +short

O output deste comando deverá ser o mesmo configurado no register e obtido na opção DS record no menu Hosted Zone → DNSSEC → Establish chain of trust → DS record )

Monitore o tráfego para o domínio, incluindo os websites, aplicações e e-mail. 

  1. Caso ocorram lentidões ou o tráfego seja interrompido, altere novamente as entradas NS e DS para os valores anteriores que foram anotados e então faça um troubleshooting para entendimento do problema.
  2. Se o tráfego não foi afetado, retorne os valores de TTL na Hosted Zone do Route 53 para os valores desejados.

Recomendações

  • Criação de Monitoramento através do CloudWatch para métricas de DNSSEC:
    • DNSSECInternalFailure
    • DNSSECKeySigningKeysNeedingAction
  • Configuração dos logs através do CloudWatch Logs: Hosted Zone Query Logs

Sobre os Autores

Luciano Guanaz é arquiteto de infraestrutura Cloud e atua no time do setor público da AWS. Trabalha na área de tecnologia há mais de 10 anos, tendo experiências com clientes nacionais e da América Latina em projetos de Cloud, DevOps e Monitoramento.

 

 

 

Rubens Macegossa Dias é Arquiteto de Infraestrutura Cloud na AWS e atua no time de Public Sector apoiando clientes em sua jornada para a nuvem. Possui mais de 18 anos de experiência na área de T.I. onde atuou em multinacionais nos setores Alimentício, Industrial e de Tecnologia.