DNS,DNSSEC and Best Practices

Preview:

Citation preview

DNS, DNSSEC e Boas Praticas

David Robert Camargo de Campos

Wilson Rogerio Lopes

<tutorial-dnssec@registro.br>

Registro.br

21 de outubro de 2010

1 / 54

DNS - Domain Name System

O Sistema de Nomes de Domınio e um banco de dados distribuıdo. Issopermite um controle local dos segmentos do banco de dados global,embora os dados em cada segmento estejam disponıveis em toda a redeatraves de um esquema cliente-servidor.

- Arquitetura hierarquica

- Distribuıda eficientemente, sistema descentralizado e com cache

- O principal proposito e a resolucao de nomes de domınio emenderecos IP e vice-versa

exemplo.foo.eng.br ←→ 200.160.10.251www.cgi.br ←→ 200.160.4.2

www.registro.br ←→ 2001:12ff:0:2::3

2 / 54

Registro de domınios (.br)

Reserva o direito da pessoa fısica ou jurıdica sobre um determinadonome de endereco na Internet.

Domınios nao registrados nao podem ser encontrados na Internet.

Sistema WEB

A interface WEB permite de maneira pratica gerenciar os domınios dequalquer pessoa fısica ou jurıdica.− http://registro.br/suporte/tutoriais/novo-registro.html

3 / 54

Publicacao quasi-on-line

O que e uma Publicacao?

As modificacoes que sao realizadas pela interface de provisionamento naosao efetivadas imediatamente. A cada intervalo de tempo pre-determinadoocorre uma publicacao DNS a qual atualiza o sistema DNS.

4 / 54

Publicacao quasi-on-line

O que e uma Publicacao?

As modificacoes que sao realizadas pela interface de provisionamento naosao efetivadas imediatamente. A cada intervalo de tempo pre-determinadoocorre uma publicacao DNS a qual atualiza o sistema DNS.

As publicacoes DNS ocorrem a cada 30 minutos

No caso do registro de um novo domınio ele ja estara visıvel naInternet apos a proxima publicacao.

No caso da alteracao de dados de um domınio, apos a proximapublicacao, o domınio passara por um perıodo de transicao quepodera durar ate 24 horas.

4 / 54

Tipos de servidores

Servidor Autoritativo

Ao receber requisicoes de resolucao de nome, responde um endereco casopossua, uma referencia caso conheca o caminho da resolucao ou umanegacao caso nao conheca

Servidor Recursivo

Ao receber requisicoes de resolucao de nomes, faz requisicoes para osservidores autoritativos e conforme a resposta recebida dos mesmoscontinua a realizar requisicoes para outros servidores autoritativos ateobter a resposta satisfatoria

5 / 54

Tipos de dados que podem ser armazenados

Os dados associados com os nomes de domınio estao contidos emResource Records ou RRs (Registro de Recursos)

Atualmente existe uma grande variedade de tipos

Alguns Tipos Comuns de Records

SOA Indica onde comeca a autoridade a zona

NS Indica um servidor de nomes para a zona

A Mapeamento de nome a endereco (IPv4)

AAAA Mapeamento de nome a endereco (IPv6)

MX Indica um mail exchanger para um nome (servidor de email)

CNAME Mapeia um nome alternativo (apelido ou indirecao)

TXT Campo de texto livre

6 / 54

Exemplo de requisicao de endereco

ResolverServico localizado

no cliente que tem

como

responsabilidade

resolver as

requisicoes DNS

para diversos

aplicativos

7 / 54

Exemplo de requisicao de endereco

Supondo que o

cache esta vazio ou

sem informacoes

relevantes

8 / 54

Exemplo de requisicao de endereco

9 / 54

Exemplo de requisicao de endereco

10 / 54

Exemplo de requisicao de endereco

11 / 54

Exemplo de requisicao de endereco

12 / 54

Exemplo de requisicao de endereco

13 / 54

Exemplo de requisicao de endereco

14 / 54

Exemplo de requisicao de endereco

15 / 54

Exemplo de requisicao de endereco

16 / 54

Fluxo de dados

1 Resolver faz consultas no Recursivo2 Recursivo faz consultas no Autoritativo (Master ou Slave)3 Master tem os dados originais4 Slave recebe os dados do Master

17 / 54

Vulnerabilidades

18 / 54

Exemplo de AtaquePoluicao de Cache

19 / 54

Exemplo de AtaquePoluicao de Cache

20 / 54

Exemplo de AtaquePoluicao de Cache

21 / 54

Exemplo de AtaquePoluicao de Cache

22 / 54

Exemplo de AtaquePoluicao de Cache

O atacante responde mais rapido, spoofando endereco do autoritativo

23 / 54

Exemplo de AtaquePoluicao de Cache

O atacante responde mais rapido, spoofando endereco do autoritativo

24 / 54

Exemplo de AtaquePoluicao de Cache

O atacante responde mais rapido, spoofando endereco do autoritativo

25 / 54

DNSSEC

Domain Name System SECurity extensions

Extensao da tecnologia DNS(o que existia continua a funcionar)

Possibilita maior seguranca para o usuario na Internet(corrige falhas do DNS)

Garantias do DNSSEC

Origem (Autenticidade)

Integridade

26 / 54

Parte II

Como configurar DNSSEC no servidor autoritativo

27 / 54

Como configurar DNSSEC no servidor autoritativo

Objetivo

Implantar DNSSEC no servidor autoritativo para determinado dominio

Todas as operacoes serao executadas no servidor principal (Master)

Requisitos

Bind 9.7 − http://www.isc.org/downloads

28 / 54

Passo 1 − Criacao de Chaves

Utilizacao do comando dnssec-keygen para geracao de chaves:$ dnssec-keygen -r /dev/urandom -f KSK -a RSASHA1 -b 1024 -n ZONE dominio.com.br

Onde, dominio.com.br deve ser substituido pelo seu dominio.

- O comando ira gerar dois arquivos com extensoes .key e .private

29 / 54

Passo 2 − Assinar o dominio (arquivo de zona)

Utilizacao do comando dnssec-signzone para assinatura

$ dnssec-signzone -S -z -o dominio.com.br db.dominio.com.br

Onde, dominio.com.br deve ser substituido pelo nome do dominio edb.dominio.com.br pelo nome do arquivo de zona.

- O comando ira gerar um novo arquivo de zona com a extensao .signed

30 / 54

Passo 3 − Atualizacao do named.conf

Alteracao da referencia para o arquivo de zona

zone "dominio.com.br" {auto-dnssec maintain;

type master;

file "/etc/namedb/db.dominio.com.br";

key-directory "/etc/namedb/dominio.com.br/";

...

};

Onde, dominio.com.br deve ser substituido pelo nome do domino edb.dominio.com.br deve ser substituido pelo nome do arquivo de zona.

31 / 54

Passo 4 − Reiniciar o Bind

Reiniciar o Bind

32 / 54

Passo 5 − Adicionar o DS no site do Registro.br

Copiar os dados de KeyTag e Digest do arquivo dsset-dominio.com.br para a

interface no site do Registro.br.

Exemplo: $ cat dsset-dominio.com.br.| head -1

KeyTag Digest

dominio.com.br IN DS 15469 5 1 5EC0184678E0B7DC3AACFFA5D0EB9DBA1F3F6C37

- Onde, dominio.com.br deve ser substituido pelo nome do domino

33 / 54

Passo 6 − Aguardar nova publicacao

Aguardar nova publicacao no site do Registro.br

34 / 54

Roteiro − Configurar um Servidor Autoritativo

1 Criar chave (dnssec-keygen) (slide 30)

2 Assinar a zona (dnssec-signzone) (slide 31)

3 Modificar o named.conf (slide 32)

4 Restartar o BIND (named) no servidores Master

5 Adicionar o DS no site do Registro.br (slide 34)

6 Aguardar nova publicacao

35 / 54

Parte III

Como configurar DNSSEC no servidor recursivo

36 / 54

Como configurar DNSSEC no servidor recursivo

Objetivo

Implamntar DNSSEC no servidor recursivo

Requisitos

Bind 9.7 − http://www.isc.org/downloads

37 / 54

Passo 1 − Obtendo a chave a da raiz da Internet

Como obter a chave da raiz no formato do Bind

https://registro.br/dominio/root-anchor.html

Exemplo de resultado:

. initial-key 257 3 8 "AwEAAagAIKlVZrpC6Ia7gEzahOR+9W29euxhJhVVLOyQbSEW0O8gcCjF

FVQUTf6v58fLjwBd0YI0EzrAcQqBGCzh/RStIoO8g0NfnfL2MTJRkxoX

bfDaUeVPQuYEhg37NZWAJQ9VnMVDxP/VHL496M/QZxkjf5/Efucp2gaD

X6RS6CXpoY68LsvPVjR0ZSwzz1apAzvN9dlzEheX7ICJBBtuA6G3LQpz

W5hOA2hzCTMjJPJ8LbqF6dsV6DoBQzgul0sGIcGOYl7OyQdXfZ57relS

Qageu+ipAdTTJ25AsRTAoub8ONGcLmqrAmRLKBP1dfwhYB4N7knNnulq

QxA+Uk1ihz0=";

38 / 54

Passo 2 − Inclusao no arquivo de configuracao

Habilitar a opcao dnssec-validation

Colar a chave da raiz (obtida no slide anterior)

named.confoptions {

...

dnssec-validation yes;

...

};

managed-keys {. initial-key 257 3 8

"AwEAAagAIKlVZrpC6Ia7gEzahOR+9W29euxhJhVVLOyQbSEW0O8gcCjF

FVQUTf6v58fLjwBd0YI0EzrAcQqBGCzh/RStIoO8g0NfnfL2MTJRkxoX

bfDaUeVPQuYEhg37NZWAJQ9VnMVDxP/VHL496M/QZxkjf5/Efucp2gaD

X6RS6CXpoY68LsvPVjR0ZSwzz1apAzvN9dlzEheX7ICJBBtuA6G3LQpz

W5hOA2hzCTMjJPJ8LbqF6dsV6DoBQzgul0sGIcGOYl7OyQdXfZ57relS

Qageu+ipAdTTJ25AsRTAoub8ONGcLmqrAmRLKBP1dfwhYB4N7knNnulq

QxA+Uk1ihz0=";

};

...

39 / 54

Passo 3 − Reiniciar o Bind

Reiniciar o Bind

40 / 54

Parte IV

Boas Praticas

41 / 54

DNS Reverso

Motivacao

Identificacao do host − domınio de origem

Servicos consultam DNS reverso − Ex. smtp

Maior facilidade no tratamento de incidentes e comunicacao comoutros provedores

42 / 54

Recursivos abertos

Riscos

Ser vıtima de ataques de envenenamento de cache

Uso do servidor para desferir ataques DoS

Consultas/Respostas indevidas acarretam consumo de banda erecursos computacionais

Possibilidade de ser responsabilizado por ataques

43 / 54

44 / 54

Separar Recursivo do Autoritativo

Servidor fisicamente separado

Configuracao simplificada

ACLs e Regras de firewall especıficas

Dimensionamento especıfico de recursos

Mesmo servidor fısico − Views

Configuracao de maior complexidade

Consultas recursivas/autoritativas usando mesmo recursos

45 / 54

Recursivo proprio

1 Controle sobre a infraestrutura

2 Possibilidade de habilitar validacao DNSSEC3 Garantia de uso da estrutura regional

◮ Alguns autoritativos respondem de acordo com o IP do cliente

46 / 54

Servico DNS do google − 8.8.8.8

Maquina nos EUA

$ traceroute -q1 8.8.8.8

traceroute to 8.8.8.8 (8.8.8.8), 64 hops max, 40 byte packets

1 vrrp1-hosting.lax.dns.icann.org (199.4.28.210) 2.477 ms

2 ge0-0-3.J6352.lax.dns.icann.org (199.4.30.50) 2.709 ms

3 67.17.195.233 (67.17.195.233) 1.709 ms

4 72.14.197.161 (72.14.197.161) 1.711 ms

5 216.239.46.40 (216.239.46.40) 30.448 ms

6 209.85.253.178 (209.85.253.178) 14.208 ms

7 209.85.251.94 (209.85.251.94) 17.329 ms

8 google-public-dns-a.google.com (8.8.8.8) 12.707 ms

47 / 54

Maquina nos EUA

Maquina nos EUA

$ dig @8.8.8.8 google.com +short

72.14.213.105

72.14.213.103

72.14.213.104

72.14.213.147

72.14.213.99

72.14.213.106

48 / 54

Traceroute local para IP recebido na consulta nos EUA

traceroute -q1 72.14.213.105

traceroute to 72.14.213.105 (72.14.213.105), 30 hops max, 60 byte packets

1 xxx.REGISTRO.BR (200.160.xx.xx) 0.228 ms

2 xxx.registro.br (200.160.xx.xx) 1.570 ms

3 xxx.registro.br (200.160.xx.xx) 1.182 ms

4 as15169.sp.ptt.br (200.219.130.55) 1.197 ms

5 209.85.250.246 (209.85.250.246) 1.277 ms

6 209.85.243.198 (209.85.243.198) 1.167 ms

7 72.14.238.49 (72.14.238.49) 46.466 ms

8 209.85.249.229 (209.85.249.229) 171.007 ms

9 72.14.232.85 (72.14.232.85) 194.361 ms

10 209.85.250.144 (209.85.250.144) 197.207 ms

11 64.233.174.101 (64.233.174.101) 197.476 ms

12 209.85.253.6 (209.85.253.6) 203.432 ms

13 pv-in-f105.1e100.net (72.14.213.105) 197.467 ms

49 / 54

Maquina no Brasil

$ traceroute -q1 8.8.8.8

traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets

1 xx.REGISTRO.BR (200.160.xx.xx) 0.135 ms

2 xx.registro.br (200.160.xx.xx) 1.181 ms

3 xx.registro.br (200.160.xx.xx) 0.992 ms

4 as15169.sp.ptt.br (200.219.130.55) 1.143 ms

5 209.85.250.246 (209.85.250.246) 1.253 ms

6 209.85.243.200 (209.85.243.200) 1.615 ms

7 72.14.233.93 (72.14.233.93) 1.900 ms

8 64.233.175.62 (64.233.175.62) 13.092 ms

9 google-public-dns-a.google.com (8.8.8.8) 2.087 ms

50 / 54

Maquina no Brasil

$ dig @8.8.8.8 google.com +short

64.233.163.104

$traceroute -q1 64.233.163.104

traceroute to 64.233.163.104 (64.233.163.104), 30 hops max, 60 byte packets

1 xx.REGISTRO.BR (200.160.xx.xx) 0.301 ms

2 xx.registro.br (200.160.xx.xx) 1.258 ms

3 xx.registro.br (200.160.xx.xx) 1.168 ms

4 as15169.sp.ptt.br (200.219.130.55) 1.175 ms

5 209.85.250.246 (209.85.250.246) 1.396 ms

6 209.85.243.200 (209.85.243.200) 1.773 ms

7 72.14.233.93 (72.14.233.93) 1.995 ms

8 64.233.175.18 (64.233.175.18) 5.963 ms

9 bs-in-f104.1e100.net (64.233.163.104) 2.217 ms

51 / 54

Implementacao de um recursivo estavel e escalavel

S.O. Unix-like

BIND

Quagga − OSPF+ECMP

ftp://ftp.registro.br/pub/gter/gter23/05-DNSrecEstavelEscalavel.pdf

52 / 54

Perguntas?http://registro.br/suporte/tutoriais/dnssec.html

Envie suas duvidas para tutorial-dnssec@registro.br

53 / 54

Referencias

Como configurar DNSSEC no seu dominio (servidor autoritativo)

ftp://ftp.registro.br/pub/doc/configuracao dnssec dominio.pdf

Como configurar DNSSEC no servidor recursivo

ftp://ftp.registro.br/pub/doc/configuracao dnssec servidor recursivo.pdf

Tutorial de DNSSEC

https://registro.br/suporte/tutoriais/dnssec.html

Recomendacoes para Evitar o Abuso de Servidores DNS Recursivos Abertos

http://www.cert.br/docs/whitepapers/dns-recursivo-aberto/

RFC 5358 / BCP 140: Preventing Use of Recursive Nameservers in Reflector Attacks

http://www.ietf.org/rfc/rfc5358.txt

54 / 54

Recommended