Escolar Documentos
Profissional Documentos
Cultura Documentos
DNS
DNS
3 PTT Forum
David Robert Camargo de Campos <david@registro.br>
Rafael Dantas Justo <rafael@registro.br>
Wilson Rogerio Lopes <wilson@registro.br>
Registro.br
Dezembro de 2009
1 / 135
Objetivos
2 / 135
Cronograma
DNS
Conceitos
Arquitetura
DNSSEC
Vulnerabilidades do DNS
Conceito
Configuraca
o do Autoritativo
Configuraca
o do Recursivo
Firewalls
DNS
EDNS0
Configuraca
o
Testes de Performance
Recursivo
Autoritativo
Escalabilidade de Recursivos
Monitoramento
Autoritativo
Recursivo
3 / 135
Parte I
Conceitos DNS
4 / 135
exemplo.foo.eng.br
www.cgi.br
www.registro.br
200.160.10.251
200.160.4.2
2001:12ff:0:2::3
5 / 135
Hierarquia
DNS
database
"."
br
eng
foo
tutorial
tutorial.foo.eng.br
UNIX
lesystem
usr
local
bin
imake
/usr/local/bin/imake
6 / 135
Domnio Vs Zona
"."
com
Delegao
br
org
Zona br
eng
nom
Zona eng.br
silva
Zona foo.eng.br
foo
Zona nom.br
Delegacao
gov
Zona gov.br
joao
fazenda
tutorial
Zona tutorial.foo.eng.br
Zona joao.silva.nom.br
Zona fazenda.gov.br
Domnio br
7 / 135
Resource Records
Os dados associados com os nomes de domnio est
ao contidos em
Resource Records ou RRs (Registro de Recursos)
Sao divididos em classes e tipos
Atualmente existe uma grande variedade de tipos
O conjunto de resource records com o mesmo nome de domnio,
classe e tipo e denominado RRset
(IPv4)
AAAA
(IPv6)
MX
CNAME
PTR
(servidor de email)
(apelido)
Tipos de servidores
Servidor Recursivo
Ao receber requisicoes de resoluc
ao de nomes, faz requisicoes para os
servidores autoritativos e conforme a resposta recebida dos mesmos
continua a realizar requisic
oes para outros servidores autoritativos ate
obter a resposta satisfatoria
Servidor Autoritativo
Ao receber requisicoes de resoluc
ao de nome, responde um endereco caso
possua, uma referencia caso conheca o caminho da resolucao ou uma
negacao caso nao conheca
9 / 135
Resolver
Servico localizado
no cliente que tem
como
responsabilidade
resolver as
requisicoes DNS
para diversos
aplicativos
10 / 135
11 / 135
12 / 135
13 / 135
14 / 135
15 / 135
Servidor DNS
Autoritativo
em
ex
n
o.e
.fo
plo
r
g.b
"."
?
s
re
ido
.br
rv
n
re
se
cia
fe
Re
Servidor DNS
Recursivo
exemplo.foo.eng.br ?
Referencia servidores foo.eng.br
Servidor DNS
Autoritativo
BR
ENG
ex
em
exemplo.foo.eng.br ?
plo
.fo
o.e
n
g.b
r?
Servidor DNS
Autoritativo
FOO
TUTORIAL
Resolver
16 / 135
Servidor DNS
Autoritativo
em
ex
n
o.e
.fo
plo
r
g.b
"."
?
s
re
ido
.br
rv
n
re
se
cia
fe
Re
Servidor DNS
Recursivo
exemplo.foo.eng.br ?
Referencia servidores foo.eng.br
Servidor DNS
Autoritativo
BR
ENG
ex
em
exemplo.foo.eng.br ?
20
0.1
plo
.fo
o.e
n
60
.10
g.b
r?
.25
Servidor DNS
Autoritativo
FOO
TUTORIAL
Resolver
17 / 135
Servidor DNS
Autoritativo
em
ex
n
o.e
.fo
plo
r
g.b
"."
?
s
re
ido
.br
rv
n
re
se
cia
fe
Re
Servidor DNS
Recursivo
exemplo.foo.eng.br ?
Referencia servidores foo.eng.br
Servidor DNS
Autoritativo
BR
ENG
ex
em
exemplo.foo.eng.br ?
200.160.10.251
20
0.1
plo
.fo
o.e
n
60
.10
g.b
r?
.25
Servidor DNS
Autoritativo
FOO
TUTORIAL
Resolver
18 / 135
Servidor DNS
Autoritativo
em
ex
n
o.e
.fo
plo
r
g.b
"."
?
s
re
ido
.br
rv
n
re
se
cia
fe
Re
Servidor DNS
Recursivo
exemplo.foo.eng.br ?
Referencia servidores foo.eng.br
Servidor DNS
Autoritativo
BR
ENG
ex
em
exemplo.foo.eng.br ?
200.160.10.251
20
0.1
plo
.fo
o.e
n
60
.10
g.b
r?
.25
Servidor DNS
Autoritativo
FOO
TUTORIAL
Resolver
19 / 135
Fluxo de dados
Parte II
Configurando Servidores DNS Autoritativos
21 / 135
Cenario
Organizacao Foo Engenharia Ltda.
Possui o domnio foo.eng.br registrado no Registro.br;
Possui o bloco 200.160.0/24 designado de um provedor;
Possui o bloco 2001:12ff::/32 alocado pelo Registro.br.
Cliente A
Possui o domnio a.foo.eng.br delegado pela organizacao Foo;
Possui o bloco 200.160.0.127/28 designado pela organizacao Foo.
Cliente B
Possui o domnio b.foo.eng.br delegado pela organizacao Foo;
Possui o bloco 200.160.0.191/26 designado pela organizacao Foo.
22 / 135
Cenario
Organizao Foo Engenharia Ltda.
foo.eng.br
2001:12::/32
200.160.0/24
200.160.0.127/28
200.160.0.191/26
a.foo.eng.br
b.foo.eng.br
Cliente A
Cliente B
23 / 135
Cenario
Alocados
Livres
200.160.0.0/25
200.160.0.143/28
200.160.0.127/28
200.160.0.159/27
200.160.0.191/26
200.160.0/24
24 / 135
db.foo.eng.br
foo.eng.br. 86400 IN SOA
2009120200 ;
3600
;
3600
;
3600
;
900 )
;
ns1.foo.eng.br. hostmaster.foo.eng.br. (
serial
refresh
retry
expire
minimum
86400 IN NS ns1.a.foo.eng.br.
86400 IN NS ns2.a.foo.eng.br.
;; Cliente B
b.foo.eng.br.
b.foo.eng.br.
86400 IN NS ns1.b.foo.eng.br.
86400 IN NS ns2.b.foo.eng.br.
25 / 135
db.foo.eng.br
;; Traduc
ao nomes IPs (GLUEs)
ns1.foo.eng.br.
86400 IN A 200.160.0.1
ns2.foo.eng.br.
86400 IN A 200.160.0.2
ns1.foo.eng.br.
86400 IN AAAA 2001:12ff::1
ns2.foo.eng.br.
86400 IN AAAA 2001:12ff::2
ns1.a.foo.eng.br.
ns2.a.foo.eng.br.
ns1.b.foo.eng.br.
ns2.b.foo.eng.br.
;; Web server
www.foo.eng.br.
www.foo.eng.br.
86400
86400
86400
86400
IN
IN
IN
IN
A
A
A
A
200.160.0.128
200.160.0.129
200.160.0.192
200.160.0.193
86400 IN A 200.160.0.3
86400 IN AAAA 2001:12ff::3
26 / 135
hostmaster.foo.eng.br.
172800 IN NS ns1.foo.eng.br.
172800 IN NS ns2.foo.eng.br.
172800 IN NS ns1.a.foo.eng.br.
172800 IN NS ns2.a.foo.eng.br.
128.0.160.200.in-addr.arpa.
129.0.160.200.in-addr.arpa.
...
142.0.160.200.in-addr.arpa.
27 / 135
db.0.160.200.in-addr.arpa (continuacao...)
;; Cliente B (200.160.0.191 200.160.0.255 = 200.160.0.191/26)
191/26.0.160.200.in-addr.arpa.
191/26.0.160.200.in-addr.arpa.
172800 IN NS ns1.b.foo.eng.br.
172800 IN NS ns2.b.foo.eng.br.
192.0.160.200.in-addr.arpa.
193.0.160.200.in-addr.arpa.
...
254.0.160.200.in-addr.arpa.
;; Enderecos reversos
1.0.160.200.in-addr.arpa.
2.0.160.200.in-addr.arpa.
3.0.160.200.in-addr.arpa.
...
86400
86400
86400
IN PTR ns1.foo.eng.br.
IN PTR ns2.foo.eng.br.
IN PTR www.foo.eng.br.
28 / 135
29 / 135
hostmaster.foo.eng.br.
$ORIGIN 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.f.f.2.1.1.0.0.2.ip6.arpa.
1
86400 IN PTR ns1.foo.eng.br.
2
86400 IN PTR ns2.foo.eng.br.
3
86400 IN PTR www.foo.eng.br.
Dificuldade
A inviabilidade de listar todos os reversos dos hosts de um bloco IPv6
gerou diversas discuss
oes. O draft draft-howard-isp-ip6rdns-01 aborda este
tema.
30 / 135
Publicacao de Reverso
Informacao
Para as delegacoes informadas diretamente na interface do Registro.br
(/24 ou maior) as publicac
oes das alterac
oes ocorrem a cada 4 horas com
nicio as 2hs.
31 / 135
db.a.foo.eng.br
a.foo.eng.br. 86400 IN
2009120200
3600
3600
3600
900 )
86400 IN A 200.160.0.142
32 / 135
db.127.0.160.200.in-addr.arpa
127/28.0.160.200.in-addr.arpa. 172800 IN SOA ns1.a.foo.eng.br.
2009120200 ; serial
3600
; refresh
3600
; retry
3600
; expire
900 )
; minimum
hostmaster.a.foo.eng.br.
172800 IN NS ns1.a.foo.eng.br.
172800 IN NS ns2.a.foo.eng.br.
;; Enderecos reversos
128.127/28.0.160.200.in-addr.arpa.
129.127/28.0.160.200.in-addr.arpa.
...
142.127/28.0.160.200.in-addr.arpa.
33 / 135
db.b.foo.eng.br
b.foo.eng.br. 86400 IN
2009120200
3600
3600
3600
900 )
86400 IN A 200.160.0.254
34 / 135
db.191.0.160.200.in-addr.arpa
191/26.0.160.200.in-addr.arpa. 172800 IN SOA ns1.b.foo.eng.br.
2009120200 ; serial
3600
; refresh
3600
; retry
3600
; expire
900 )
; minimum
hostmaster.b.foo.eng.br.
172800 IN NS ns1.b.foo.eng.br.
172800 IN NS ns2.b.foo.eng.br.
;; Enderecos reversos
192.191/26.0.160.200.in-addr.arpa.
193.191/26.0.160.200.in-addr.arpa.
...
254.191/26.0.160.200.in-addr.arpa.
35 / 135
36 / 135
37 / 135
38 / 135
39 / 135
41 / 135
43 / 135
44 / 135
Observacao
O NSD quando utilizado como master n
ao envia IXFR para os slaves. Mas
caso o NSD seja utilizado como slave, ele entende requisicoes IXFR.
45 / 135
46 / 135
47 / 135
48 / 135
49 / 135
50 / 135
Parte III
Configurando Servidores DNS Recursivos
51 / 135
Cenario
52 / 135
Aviso
N
ao utilizem a opcao query-source. Ao fixar uma porta de origem o
servidor DNS fica muito mais vulner
avel a ataques de poluicao de cache.
Principalmente aos ataques descritos por Dan Kaminsky.
53 / 135
54 / 135
unbound.conf
server:
port: 53
interface: 127.0.0.1
interface: 200.160.0.6
interface: 2001:12ff::6
access-control: 0.0.0.0/0 refuse
access-control: 200.160.0.0/24 allow
access-control: 127.0.0.0/8 allow
access-control: ::0/0 refuse
access-control: 2001:12ff::/32 allow
directory: /usr/local/unbound/etc/unbound
chroot: /usr/local/unbound/etc/unbound
username: unbound
logfile: unbound.log
do-ip4: yes
do-ip6: yes
55 / 135
Efeito
Aceitam consultas DNS vindas de qualquer computador da Internet.
Possibilita ataques de amplificac
ao de respostas DNS e uso de banda por
terceiros.
Solucao
Configuracao correta do firewall.
BIND:
NSD:
access-control:
access-control:
access-control:
0.0.0.0/0 refuse
200.160.0.0/24 allow
127.0.0.0/8 allow
56 / 135
57 / 135
Parte IV
Importancia da Separacao de Autoritativo e Recursivo
58 / 135
Explicando...
Recursivo e autoritativo possui configurac
oes de acesso diferentes;
As regras de firewalls s
ao distintas;
59 / 135
Parte V
O que muda com DNSSEC?
60 / 135
Vulnerabilidades do DNS
61 / 135
62 / 135
O que e DNSSEC?
Extensao da tecnologia DNS
(o que existia continua a funcionar)
Possibilita maior seguranca para o usu
ario na Internet
(corrige falhas do DNS)
O que garante?
Origem (Autenticidade)
Integridade
A nao existencia de um nome ou tipo
garante?
O que NAO
Confidencialidade
Protecao contra ataques de negac
ao de servico (DOS)
63 / 135
O que e DNSSEC?
O que e DNSSEC?
O que e DNSSEC?
O resolver recursivo ja
possui a chave publica
da zona .br
ancorada.
66 / 135
O que e DNSSEC?
Nesta simulacao de
resolucao supomos que
a raiz nao esta
assinada.
67 / 135
O que e DNSSEC?
Retorna sem resposta,
mas com referencia
para os Records: NS
do .br.
68 / 135
O que e DNSSEC?
O servidor recursivo
requisita a DNSKEY
ao verificar que o nome
da zona e igual ao
nome da zona que
consta em sua
trusted-key.
69 / 135
O que e DNSSEC?
O servidor DNS
responde enviando
DNSKEY e o RRSIG
70 / 135
O que e DNSSEC?
Compara a trusted-key
com a DNSKEY, caso
for valida continua
com as requisicoes
71 / 135
O que e DNSSEC?
72 / 135
O que e DNSSEC?
Retorna sem resposta,
mas com referencia
para os Records:
- NS do foo.eng.br
73 / 135
O que e DNSSEC?
O servidor DNS
recursivo utiliza a
DNSKEY para checar
a assinatura (RRSIG)
do Record DS
74 / 135
O que e DNSSEC?
75 / 135
O que e DNSSEC?
76 / 135
O que e DNSSEC?
O servidor DNS
recursivo verifica
atraves do DS e da
DNSKEY, se este
servidor DNS e valido.
77 / 135
O que e DNSSEC?
Servidor DNS
Autoritativo
r?
em
ex
n
o.e
.fo
plo
g.b
s
re
ido
.br
rv
n
re
se
cia
fe
Re
Servidor DNS
Recursivo
exemplo.foo.eng.br ?
Referencia servidores foo.eng.br
ex
em
exemplo.foo.eng.br ?
plo
.fo
o.e
n
Servidor DNS
Autoritativo
g.b
r?
Servidor DNS
Autoritativo
Autoritativo sobre o FOO.ENG.BR
e TUTORIAL.FOO.ENG.BR
Resolver
78 / 135
O que e DNSSEC?
Retorna o Record A e
sua assinatura RRSIG.
Servidor DNS
Autoritativo
r?
em
ex
n
o.e
.fo
plo
g.b
s
re
ido
.br
rv
n
re
se
cia
fe
Re
Servidor DNS
Recursivo
exemplo.foo.eng.br ?
Referencia servidores foo.eng.br
ex
em
exemplo.foo.eng.br ?
20
0.1
plo
.fo
o.e
n
60
.10
Servidor DNS
Autoritativo
g.b
r?
.25
Servidor DNS
Autoritativo
Autoritativo sobre o FOO.ENG.BR
e TUTORIAL.FOO.ENG.BR
Resolver
79 / 135
O que e DNSSEC?
Servidor DNS
Autoritativo
r?
em
ex
n
o.e
.fo
plo
g.b
s
re
ido
.br
rv
n
re
se
cia
O servidor DNS
recursivo utiliza a
DNSKEY para checar
a assinatura (RRSIG)
do Record A
fe
Re
Servidor DNS
Recursivo
exemplo.foo.eng.br ?
Referencia servidores foo.eng.br
ex
em
exemplo.foo.eng.br ?
20
0.1
plo
.fo
o.e
n
60
.10
Servidor DNS
Autoritativo
g.b
r?
.25
Servidor DNS
Autoritativo
Autoritativo sobre o FOO.ENG.BR
e TUTORIAL.FOO.ENG.BR
Resolver
80 / 135
O que e DNSSEC?
81 / 135
Startup
Gerar a chave assimetrica;
Incluir a chave na zona;
Assinar a zona;
Mudar a referencia para o arquivo de zona nas configuracoes;
Incluir o DS na interface do Registro.br.
Manutencao
Reassinar periodicamente a zona.
82 / 135
Manutencao
1
Execute o comando:
dnssec-signzone -z -o foo.eng.br -e 20100102120000 db.foo.eng.br
83 / 135
Publico Alvo
Provedores de hospedagem ou qualquer outra instituicao responsavel por
administrar servidores DNS autoritativos para muitas zonas
84 / 135
Startup
Ancorar a chave p
ublica do.BR
Manutencao
Para servidores DNS com suporte a RFC 5011:
Nada!
Para servidores DNS sem suporte a RFC 5011:
Trocar a chave ancorada todas as vezes em que ocorrer um rollover
no .BR
85 / 135
Unbound (unbound.conf):
trust-anchor:
br.
DS 18457 5 1 1067149C134A5B5FF8FC5ED0996E4E9E50AC21B1
Manutencao
1
86 / 135
Parte VI
Firewalls
87 / 135
DNS
88 / 135
DNS
89 / 135
90 / 135
91 / 135
92 / 135
Configurando o Firewall
93 / 135
Configurando o Firewall
Autoritativos
Consultas com destino `a porta 53 UDP e TCP do servidor autoritativo e
respectivas respostas devem ser permitidas.
Recursivos
Consultas do servidor recursivo com destino `
a porta 53 UDP e TCP de
qualquer outro servidor e respectivas respostas devem ser permitidas;
Consultas vindas de clientes autorizados com destino `a porta 53 UDP
e TCP do servidor recursivo e respectivas respostas devem ser
permitidas;
Bloqueio `as demais consultas DNS direcionadas ao servidor recursivo.
94 / 135
Configurando o Firewall
Firewalls e DNS/UDP > 512 bytes
Se seu servidor recursivo suporta EDNS0, verifique se seu firewall permite
datagramas UDP/DNS com mais de 512 bytes. Um teste pode ser feito
atraves da seguinte consulta (935 bytes de payload DNS):
dig @a.dns.br br ns +dnssec +bufsize=1000
95 / 135
Configurando o Firewall
Firewalls e DNS/UDP > 512 bytes
Se seu servidor recursivo suporta EDNS0 e o firewall suporta mensagens
DNS maiores que 512 bytes, verifique se seu firewall e capaz de fazer o
correto reassembly de datagramas UDP fragmentados. Um teste pode ser
feito atraves da seguinte consulta (2185 bytes de payload DNS):
dig @a.dns.br br dnskey +dnssec +bufsize=2500
96 / 135
Parte VII
Testes de Performance
97 / 135
98 / 135
Responde `a consultas
consultas ja em cache
consulta servidores autoritativos
Aviso
Exatidao de uma simulacao depende da comunicac
ao com os autoritativos
99 / 135
Testes Propostos
Consultas em cache
Algumas dezenas de consultas
repetidas por 5 minutos
!Cache
Servidor com cache limpo
Consultas u
nicas durante 5 minutos
Todas as consultas v
alidas
100 / 135
101 / 135
-s:
-r:
102 / 135
103 / 135
104 / 135
105 / 135
106 / 135
107 / 135
Teste Proposto
Servidor autoritativo com 1000 zonas configuradas
Dois clientes consultam aleatoriamente registros existentes nessas
zonas
108 / 135
109 / 135
-s:
-l:
110 / 135
111 / 135
112 / 135
Parte VIII
Escalabilidade de Recursivos
113 / 135
Escalabilidade de Recursivos
Motivacao
DNS recursivo instavel e foco de reclamac
oes constantes
114 / 135
Escalabilidade de Recursivos
Escalabilidade e Estabilidade
Suporte a alto trafego
Suporte a muitos usu
arios
Facil upgrade caso a demanda aumente
Manutencao sem parada do sistema
Alta disponibilidade
Balanceamento de carga
115 / 135
Escalabilidade de Recursivos
Cluster
116 / 135
Escalabilidade de Recursivos
Flexibilidade
Mais de um roteador
Mais de um switch
117 / 135
Escalabilidade de Recursivos
Solucao
Roteador + [UNIX + Quagga + BIND]
Endereco do servico roda na loopback dos servidores
Anycast dentro do cluster
Protocolo de roteamento din
amico com suporte a ECMP - OSPF
118 / 135
Escalabilidade de Recursivos
Topologia
119 / 135
Escalabilidade de Recursivos
Anycast na Rede
Redundancia
IBGP entre os clusters
120 / 135
Escalabilidade de Recursivos
ECMP
Assimetria de trafego
O balanceamento de carga n
ao e exato
Incoerencia de cache entre os servidores
O cache dos servidores n
ao s
ao identicos, pois o trafego que eles
recebem tambem nao e
N
ao h
a problema!
121 / 135
Escalabilidade de Recursivos
Detalhes do BIND
BIND rodando nas duas interfaces
Queries chegam para a loopback
Monitoracao pelo endereco individual
acl
Max-cache-size
recursive-clients
122 / 135
Escalabilidade de Recursivos
Controle
1
Tirar o servidor do ar
Enviar LSA removendo a rota
ifconfig lo1 down
123 / 135
Escalabilidade de Recursivos
Recursos
Exemplo:
Rede com 1M de usuarios simultaneos
Media de 50 q/h (por usuario)
50 x 1M = 50M q/h
14k q/s
Um
unico servidor (com hardware robusto) e capaz de suportar esta carga
Sugestao para atingir alta disponibilidade:
- cluster com 3 ou 4 servidores
124 / 135
Escalabilidade de Recursivos
Monitoracao
Processo do BIND est
a no ar?
Monitorar endereco unicast de cada servidor
Qual servidor que est
a respondendo?
dig @192.168.1.1 chaos txt hostname.bind +short
Watchdog
Caso o BIND pare de responder
ifconfig lo1 down
125 / 135
Parte IX
Monitoramento
126 / 135
Monitoramento
Autoritativos
Disponibilidade
Autoridade sobre as zonas
Versao da zona (serial)
DNSSEC - validacao
Recursos
127 / 135
Monitoramento - Autoritativo
128 / 135
Monitoramento - Autoritativo
CGI plota as
129 / 135
Monitoramento - Autoritativo
130 / 135
Monitoramento - Autoritativo
Query Types
131 / 135
Monitoramento
Recursivos
Disponibilidade
Recursos
132 / 135
Monitoramento - Recursivo
Custom Plugins
133 / 135
Perguntas?
134 / 135
Referencias
RFC 2317
Classless IN-ADDR.ARPA delegation
Recomendaco
es para Evitar o Abuso de Servidores DNS Recursivos Abertos
http://www.cert.br/docs/whitepapers/dns-recursivo-aberto
Au
ltima vers
ao do tutorial de DNSSEC pode ser encontrada em
ftp://ftp.registro.br/pub/doc/tutorial-dnssec.pdf
135 / 135