1
<HEAD><TITLE>Servindo DNS recursivo</TITLE>
3
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso8859-1">
7
<!-- Copyright 2005 Sam Trenholme
11
Redistribution and use, with or without modification, are permitted
12
provided that the following condition is met:
14
1. Redistributions must retain the above copyright notice, this
15
list of conditions and the following disclaimer.
17
This documentation is provided 'as is' with no guarantees of
18
correctness or fitness for purpose.
22
<H1>Usando MaraDNS como um servidor de DNS recursivo</H1>
24
Este documento � um guia passo a passo para configurar MaraDNS
25
como um servidor de DNS recursivo. � assumido que o MaraDNS j� esteja<A
26
href=compile.html>compilado e installado</A>.
33
<li><A href=#basic>Configura��o b�sica</A>
34
<li><A href=#slow>Usando MaraDNS em uma rede lenta</A>
35
<li><A href=#upstream>Usando outros servidores de DNS recursivo</A>
36
<li><A href=#otherroot>Usando diferentes servidores raizes</A>
37
<li><A href=#private>Tendo nomes de host privado</A>
38
<li><A href=#custom>Customizando a resolu��o de alguns nomes<A>
42
<H2>Configura��o b�sica</H2>
45
Uma vez com o MaraDNS instalado, o arquivo <tt>mararc</tt> precisa ser configurado
46
antes do MaraDNS funcionar como um servidor recursivo. Este arquivo precisa somente
50
ipv4_bind_addresses = "127.0.0.1"
51
chroot_dir = "/etc/maradns"
52
recursive_acl = "127.0.0.1"
56
Este arquivo de tr�s linhas precisa ser chamado de <tt>/etc/mararc</tt>.
59
A primeira linha � o endere�o IP ou o endere�o que MaraDNS usar�.
60
Aqui, tem o endere�o 127.0.0.1, e significa que somente a m�quina que
61
executa o MaraDNS poder� ter acesso ao servidor MaraDNS -- outras
62
m�quinas n�o poder�o v�-lo.
66
Se a m�quina que executar MaraDNS for acessada por outras m�quinas,
67
este IP necessita ser mudado para um IP que as outras enxerguem.
70
� poss�vel ter o MaraDNS rodando em m�ltiplos endere�os IP:
73
ipv4_bind_addresses = "10.1.3.2, 192.168.0.1, 127.0.0.1"
76
A secunda linha, <tt>chroot_dir</tt> � o diret�rio da onde MaraDNS ser�
77
executado. Quando MaraDNS est� sendo usado como um servidor recursivo,
78
este apenas precisa ser um diret�rio vazio, idealmente com permiss�es do
83
A terceira linha, <tt>recursive_acl</tt>, determina a faixa
84
de IPs que podem acessar o servidor recursivo. Este � um
85
formato IP/netmask. Por exemplo, se alguem tem um escrit�rio
86
no qual utiliza os IPs na forma 192.168.1.1, 192.168.1.2, etc.,
87
e deseja ter somente <i>qualquer</i> 192.168.1. em ser
88
permitido fazer consultas recursivas:
91
recursive_acl = "<b>192.168.1.0/24</b>"</tt>
94
Aqui o "/24" indica que vamos ignorar o quarto n�mero do IP
95
quando determiamos quem contata o MaraDNS.
98
Uma vez feito isso, outras m�quinas podem contatar o servidor MaraDNS
99
para realizar consultas DNS. Por exemplo, MaraDNS � agora o servidor de DNS
100
que o Windows 98 pode usar no "painel controle - > rede - > TCP/IP - >
101
Configura��o DNS", ou um sistema UNIX podem apontar em
102
<tt>/etc/resolv.conf</tt >.
106
<h2>Usando MaraDNS em uma rede lenta</h2></A>
108
Quando o MaraDNS encontra-se em um rede lenta, ele pode
109
expirar o tempo. MaraDNS normalmente espera somente dois
110
segundos para responder a um servidor remoto. Isto n�o � um
111
tempo suficiente para procesar consultas em algumas redes lentas.
112
Pode-se mudar isso elevando o valor de <tt>timeout_seconds</tt>.
116
Aqui est� um arquivo mararc que espera seis segundos (inv�s dos dois
117
segundos padr�o) para responder um servidor remoto:
120
ipv4_bind_addresses = "127.0.0.1"
121
chroot_dir = "/etc/maradns"
122
recursive_acl = "127.0.0.1"
126
<!-- Guess what? All of the supported OSes that MaraDNS compiles on,
127
with the exception of the mingw32 semi-port (which has its own
128
workaround), have /dev/urandom support. So we don't need to tell
129
people how to set up a random_seed_file in the tutorial. -->
132
<h2>Usando outros servidores de DNS recursivo</h2>
135
� poss�vel ter o MaraDNS contatando outros servidores recursivos, em vez
136
de contatar os servidores raizes para processar as consultas recursivas. Para
137
essa situa��o usamos a vari�vel <tt>upstream_servers</tt> do arquivo
141
Ou seja, um usa o outro, digo, o servidor do provedor realiza as tradu��es e
142
o MaraDNS age como cache dessas tradu��es. Supondo que os servidores do
143
provedor tenham os IPs 10.66.77.88 e 10.99.11.22, o arquivo mararc ficar�
147
ipv4_bind_addresses = "127.0.0.1"
148
chroot_dir = "/etc/maradns"
149
recursive_acl = "127.0.0.1"
150
upstream_servers = {}
151
upstream_servers = "10.66.77.88, 10.99.11.22"
155
<h2>Usando diferentes servidores raizes</h2></A>
157
MaraDNS, por padr�o, usas os servidore de nomes ICANN como os
158
servidores raizes. A raz�o por este padr�o � pr�tico: Em minha
159
experi�ncia, os servidores de nomes raiz da ICANN s�o os que
160
menos freq�entemente mudam seus endere�os de IP.
161
S�o os melhores servidores de nomes para simplesmente
162
"configurar e esquecer" para ambientes recursivos.
165
There are a lot of legitimate objections to the ICANN name servers. I am
166
not happy that they blocked the existence of the <tt>.xxx</tt> top-level
167
domain. I also feel that they are too US-centric. We're commenting this
168
out because religious issues don't belong in a technical document.
172
� poss�vel, entretanto, mudar os servidores raizes usados ajustando a
173
vari�vel <tt>root_servers</tt > no arquivo mararc. Aqui � como uma
174
configura��o recursiva (este exemplo usa os servidores raizes da
175
ICANN; mude este exemplo para usar um outro conjunto de servidores
176
raizes como desejado) parece:
181
ipv4_bind_addresses = "127.0.0.1"
182
chroot_dir = "/etc/maradns"
183
recursive_acl = "127.0.0.1"
185
ipv4_alias["icann"] = "198.41.0.4,"
186
ipv4_alias["icann"] += "192.228.79.201,"
187
ipv4_alias["icann"] += "192.33.4.12,"
188
ipv4_alias["icann"] += "128.8.10.90,"
189
ipv4_alias["icann"] += "192.203.230.10,"
190
ipv4_alias["icann"] += "192.5.5.241,"
191
ipv4_alias["icann"] += "192.112.36.4,"
192
ipv4_alias["icann"] += "128.63.2.53,"
193
ipv4_alias["icann"] += "192.36.148.17,"
194
ipv4_alias["icann"] += "192.58.128.30,"
195
ipv4_alias["icann"] += "193.0.14.129,"
196
ipv4_alias["icann"] += "198.32.64.12,"
197
ipv4_alias["icann"] += "202.12.27.33"
198
root_servers["."] = "icann"
201
Este arquivo ir� fazer exatamente a mesma coisa que o arquivo
202
<tt>mararc</tt> abaixo:
205
ipv4_bind_addresses = "127.0.0.1"
206
chroot_dir = "/etc/maradns"
207
recursive_acl = "127.0.0.1"
210
Os servidores ICANN listados abaixo s�o os que MaraDNS usa quando servidores
211
raizes n�o s�o especificados.
214
Como a parte, a vari�vel <tt>ipv4_alias</tt > � uma maneira geral de dar
215
nomes a qualquer conjunto de IPs em um arquivo <tt>mararc</tt >.
216
N�s podemos usar atalhos como este:
220
ipv4_alias["localhost"] = "127.0.0.1"
221
ipv4_bind_addresses = "localhost"
222
chroot_dir = "/etc/maradns"
223
recursive_acl = "localhost"
224
ipv4_alias["icann-a"] = "198.41.0.4,"
225
ipv4_alias["icann-b"] = "192.228.79.201"
226
ipv4_alias["icann-c"] = "192.33.4.12"
227
ipv4_alias["icann-d"] = "128.8.10.90"
228
ipv4_alias["icann-e"] = "192.203.230.10"
229
ipv4_alias["icann-f"] = "192.5.5.241"
230
ipv4_alias["icann-g"] = "192.112.36.4"
231
ipv4_alias["icann-h"] = "128.63.2.53"
232
ipv4_alias["icann-i"] = "192.36.148.17"
233
ipv4_alias["icann-j"] = "192.58.128.30"
234
ipv4_alias["icann-k"] = "193.0.14.129"
235
ipv4_alias["icann-l"] = "198.32.64.12"
236
ipv4_alias["icann-m"] = "202.12.27.33"
237
ipv4_alias["icann"] = "icann-a,icann-b,icann-c,icann-d,icann-e,icann-f,"
238
ipv4_alias["icann"] += "icann-g,icann-h,icann-i,icann-j,icann-k,icann-l,"
239
ipv4_alias["icann"] += "icann-m"
240
root_servers["."] = "icann"
243
Isto trabalha do mesmo jeito que os dois exemplos acima. A raz�o porque n�s
244
n�o temos v�rgulas em qualquer um dos pseud�nimos al�m do icann � porque a
245
v�rgula antes das aspas � somente necess�rias em uma linha antes da linha que
246
usa o operador <tt>+=</tt >.
249
Aqui � o que um arquivo de configura��o que usa servidores raizes da
250
colagem OpenNIC como os servidores raizes. Esta lista � de 3 dezembro
251
de 2005; anote que OpenNIC muda freq�entemente estes IPs e voc�
252
necessita verificar que estes IPs est�o atuais
253
<em um href=http://www.opennic.unrated.net/>http://www.opennic.unrated.net/</A >.
254
Um n�mero alternativo de organiza��es de servidores raizes n�o existem mais;
255
certificam-se por favor que este povo ainda existe antes de usar esta lista.
258
ipv4_bind_addresses = "127.0.0.1"
259
chroot_dir = "/etc/maradns"
260
recursive_acl = "127.0.0.1"
262
# This ends with a comma because the next line is a += line
263
ipv4_alias["opennic"] = "131.161.247.232,"
264
ipv4_alias["opennic"] += "208.185.249.250,"
265
ipv4_alias["opennic"] += "66.227.42.140,"
266
ipv4_alias["opennic"] += "66.227.42.149,"
267
ipv4_alias["opennic"] += "64.81.44.251,"
268
ipv4_alias["opennic"] += "208.185.249.251,"
269
# This is the last line, so no comma at the end
270
ipv4_alias["opennic"] += "65.243.92.254"
271
# Considering how often alternate root DNS server lists change or disappear,
272
# we will have the ICANN list on hand as a backup.
273
ipv4_alias["icann"] = "198.41.0.4,"
274
ipv4_alias["icann"] += "192.228.79.201,"
275
ipv4_alias["icann"] += "192.33.4.12,"
276
ipv4_alias["icann"] += "128.8.10.90,"
277
ipv4_alias["icann"] += "192.203.230.10,"
278
ipv4_alias["icann"] += "192.5.5.241,"
279
ipv4_alias["icann"] += "192.112.36.4,"
280
ipv4_alias["icann"] += "128.63.2.53,"
281
ipv4_alias["icann"] += "192.36.148.17,"
282
ipv4_alias["icann"] += "192.58.128.30,"
283
ipv4_alias["icann"] += "193.0.14.129,"
284
ipv4_alias["icann"] += "198.32.64.12,"
285
ipv4_alias["icann"] += "202.12.27.33"
286
# Now, set the root servers; chance this to icann if you want to use the
287
# icann servers instead.
288
root_servers["."] = "opennic"
292
<h2>Tendo nomes de host privado</h2>
295
Alguem pode desejar ter nomes de hosts privados ao executar MaraDNS como um
296
servidor recursivo. Estes s�o os nomes que n�o s�o unidos aos servidores raizes,
297
mas ser�o resolvidos no servidor recursivo. Por exemplo, p�de fazer sentido
298
em ter "router.example.com." para resolve o IP de um router em um escrit�rio.
302
Isto � feito tendo vantagem do fato que MaraDNS pode agir como
303
um servidor de nomes recursivo e autoritativo no mesmo IP.
307
Os procedimentos para fazer isso s�o:
310
<li>Ter um servidor de DNS autoritativo e recursivo no mesmo IP.
311
Certifique-se que este servidor DNS n�o � acess�vel a Internet p�blica.
312
<li>Para este servidor autoritativo, ter arquivos de zona para as zonas
313
que querem ter informa��o n�o-publica. Consultas recursivas ser�o
314
resolvidas como de costume (desde que o servidor autoritativo tamb�m
315
seja um servidor recursivo); consultas autoritativas para zonas especiais
316
obter�o os dados especiais.
317
<li>O <A href=man.maradns.html>maradns man page</A> tem uma se��o
318
na configura��o de firewall no qual descreve como configurar um IP filter (regras
319
de firewall) para permitir que MaraDNS envie pacotes.
320
B�sicamente, n�o permite que IPs externos bater neste servidor
321
combinado na porta 53 (UDP); inv�s disso, permita a conex�es UDP
322
nas portas 15000-19095.
325
Aqui est� como a configura��o se parece:
328
ipv4_bind_addresses = "192.168.0.1"
329
chroot_dir = "/etc/maradns"
330
recursive_acl = "192.168.0.0/24"
332
csv2["example.com."] = "db.example.com"
335
Substitua 192.168.0.1 com o IP da m�quina que funciona o MaraDNS recursivo;
336
substitua 192.168.0.0/24 (isto significa "qualquer coisa que come�a com
337
192.168.0") com a faixa de IP permitida em acessar o servidor recursivo DNS.
341
O arquivo "db.example.com." ser� um arquivo de zona csv2 com registros
342
bogus para o dom�nio example.com, tal como router.example.com.
345
Se voc� quiser mandar alguns destes nomes privados ser CNAMES para
346
host names na Internet (por exemplo "google.example.com. CNAME
347
www.google.com."), leia por favor <o href=dangling.html>
348
dangling CNAME document</A >.
351
Mais informa��es em ter host nomes para uma rede interna est� dispon�vel
352
na se��o <A href=authoritative.html#network>se��o de rede do documento
356
<h2>Customizando a resolu��o de alguns nomes</h2>
358
Alguem pode desejar customizar a resolu��o de determinados nomes ao
359
usar MaraDNS tanto como um servidor autoritativo como recursivo. Por
360
exemplo, se um grande dom�nio � sequestrado (como o que
361
aconteceu com panix.com em janeiro de 2005), pode ser desej�vel ter
362
o correto nome para o dom�nio configurado temporariamente localmente.
363
Isto tamb�m � �til para uma lista de sites bloqueados (assim o usu�rio
364
obtem uma amig�vel p�gina "este site est� bloqueado" em vez de apenas
365
ser incapaz de conectar-se ao site em quest�o), e para as instala��es
366
onde algumas m�quinas necessitam uma resolu��o especial de DNS para
367
nomes que outras m�quinas n�o precisam de uma resolu��o de DNS.
370
O procedimento para fazer isto � quase ind�ntico ao procedimento para
371
ter nomes de host privados como descrito acima. Aqui est� um relevante
372
exemplo no arquivo <tt>mararc</tt>:
375
ipv4_bind_addresses = "192.168.0.1"
376
chroot_dir = "/etc/maradns"
377
recursive_acl = "192.168.0.0/24"
379
csv2["example.com."] = "db.example.com"
382
As �nicas coisas que precisam ser mudadas no arquivo mararc s�o os
383
par�metros <tt>ipv4_bind_addresses</tt> e <tt>recursive_acl</tt>.
384
O par�metro <tt>csv2["example.com."]</tt> <i>n�o</i> � mudado.
388
Agora, vamos supor que queremos ter os registros A para "www.phishsite.foo"
389
e "phishsite.foo" resolvendo para um endere�o IP que controla o web site.
390
Iremos adicionar os seguintes registros (linhas) ao arquivo
391
<tt>/etc/maradns/db.example.com</tt>
394
www.phishsite.foo. 192.168.0.2
395
phishsite.foo. 192.168.0.2
398
Tamb�m podemos adicionar um registro estrela (star):
401
*.phishsite.foo. 192.168.0.2