55
DNS, DNSSEC e Boas Pr´ aticas David Robert Camargo de Campos Wilson Rogerio Lopes <[email protected]> Registro.br 21 de outubro de 2010 1 / 54

DNS,DNSSEC and Best Practices

Embed Size (px)

Citation preview

Page 1: DNS,DNSSEC and Best Practices

DNS, DNSSEC e Boas Praticas

David Robert Camargo de Campos

Wilson Rogerio Lopes

<[email protected]>

Registro.br

21 de outubro de 2010

1 / 54

Page 2: DNS,DNSSEC and Best Practices

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

Page 3: DNS,DNSSEC and Best Practices

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

Page 4: DNS,DNSSEC and Best Practices

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

Page 5: DNS,DNSSEC and Best Practices

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

Page 6: DNS,DNSSEC and Best Practices

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

Page 7: DNS,DNSSEC and Best Practices

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

Page 8: DNS,DNSSEC and Best Practices

Exemplo de requisicao de endereco

ResolverServico localizado

no cliente que tem

como

responsabilidade

resolver as

requisicoes DNS

para diversos

aplicativos

7 / 54

Page 9: DNS,DNSSEC and Best Practices

Exemplo de requisicao de endereco

Supondo que o

cache esta vazio ou

sem informacoes

relevantes

8 / 54

Page 10: DNS,DNSSEC and Best Practices

Exemplo de requisicao de endereco

9 / 54

Page 11: DNS,DNSSEC and Best Practices

Exemplo de requisicao de endereco

10 / 54

Page 12: DNS,DNSSEC and Best Practices

Exemplo de requisicao de endereco

11 / 54

Page 13: DNS,DNSSEC and Best Practices

Exemplo de requisicao de endereco

12 / 54

Page 14: DNS,DNSSEC and Best Practices

Exemplo de requisicao de endereco

13 / 54

Page 15: DNS,DNSSEC and Best Practices

Exemplo de requisicao de endereco

14 / 54

Page 16: DNS,DNSSEC and Best Practices

Exemplo de requisicao de endereco

15 / 54

Page 17: DNS,DNSSEC and Best Practices

Exemplo de requisicao de endereco

16 / 54

Page 18: DNS,DNSSEC and Best Practices

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

Page 19: DNS,DNSSEC and Best Practices

Vulnerabilidades

18 / 54

Page 20: DNS,DNSSEC and Best Practices

Exemplo de AtaquePoluicao de Cache

19 / 54

Page 21: DNS,DNSSEC and Best Practices

Exemplo de AtaquePoluicao de Cache

20 / 54

Page 22: DNS,DNSSEC and Best Practices

Exemplo de AtaquePoluicao de Cache

21 / 54

Page 23: DNS,DNSSEC and Best Practices

Exemplo de AtaquePoluicao de Cache

22 / 54

Page 24: DNS,DNSSEC and Best Practices

Exemplo de AtaquePoluicao de Cache

O atacante responde mais rapido, spoofando endereco do autoritativo

23 / 54

Page 25: DNS,DNSSEC and Best Practices

Exemplo de AtaquePoluicao de Cache

O atacante responde mais rapido, spoofando endereco do autoritativo

24 / 54

Page 26: DNS,DNSSEC and Best Practices

Exemplo de AtaquePoluicao de Cache

O atacante responde mais rapido, spoofando endereco do autoritativo

25 / 54

Page 27: DNS,DNSSEC and Best Practices

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

Page 28: DNS,DNSSEC and Best Practices

Parte II

Como configurar DNSSEC no servidor autoritativo

27 / 54

Page 29: DNS,DNSSEC and Best Practices

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

Page 30: DNS,DNSSEC and Best Practices

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

Page 31: DNS,DNSSEC and Best Practices

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

Page 32: DNS,DNSSEC and Best Practices

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

Page 33: DNS,DNSSEC and Best Practices

Passo 4 − Reiniciar o Bind

Reiniciar o Bind

32 / 54

Page 34: DNS,DNSSEC and Best Practices

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

Page 35: DNS,DNSSEC and Best Practices

Passo 6 − Aguardar nova publicacao

Aguardar nova publicacao no site do Registro.br

34 / 54

Page 36: DNS,DNSSEC and Best Practices

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

Page 37: DNS,DNSSEC and Best Practices

Parte III

Como configurar DNSSEC no servidor recursivo

36 / 54

Page 38: DNS,DNSSEC and Best Practices

Como configurar DNSSEC no servidor recursivo

Objetivo

Implamntar DNSSEC no servidor recursivo

Requisitos

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

37 / 54

Page 39: DNS,DNSSEC and Best Practices

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

Page 40: DNS,DNSSEC and Best Practices

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

Page 41: DNS,DNSSEC and Best Practices

Passo 3 − Reiniciar o Bind

Reiniciar o Bind

40 / 54

Page 42: DNS,DNSSEC and Best Practices

Parte IV

Boas Praticas

41 / 54

Page 43: DNS,DNSSEC and Best Practices

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

Page 44: DNS,DNSSEC and Best Practices

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

Page 45: DNS,DNSSEC and Best Practices

44 / 54

Page 46: DNS,DNSSEC and Best Practices

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

Page 47: DNS,DNSSEC and Best Practices

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

Page 48: DNS,DNSSEC and Best Practices

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

Page 49: DNS,DNSSEC and Best Practices

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

Page 50: DNS,DNSSEC and Best Practices

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

Page 51: DNS,DNSSEC and Best Practices

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

Page 52: DNS,DNSSEC and Best Practices

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

Page 53: DNS,DNSSEC and Best Practices

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

Page 54: DNS,DNSSEC and Best Practices

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

Envie suas duvidas para [email protected]

53 / 54

Page 55: DNS,DNSSEC and Best Practices

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