[GTER] Re: DNS, era Re: Luta contra SPAM

Adriano Nagelschmidt Rodrigues anr at estadao.com.br
Fri Jan 10 09:53:00 -02 2003


Frederico A C Neves writes:
> Não tenho tanta certeza assim. O trecho da RFC acima me parece muito
> claro em relação a este aspecto. Ele não diz exatamente qual das
> respostas enviar para este tipo de problema mas está muito claro que
> deve-se responder.

Esse é um detalhe acadêmico. Vamos deixá-lo assim?

  Felix von Leitner <leitner at fefe.de> writes:
  > tinydns does not answer at all.
  > Isn't that a violation of RFC 1034?

  If it is, you can easily fix it by adding &::a.root-servers.net to
  your data.  IOW, tinydns leaves the choice up to you: do you want to
  be RFC-compliant, or do you want the simplest thing that works?

  paul

[snip]

> O ponto aqui é que ele não precisa nem responder como as outras
> implementações, basta que dele retorne uma resposta com o "answer
> section" zerado e o bit aa não marcado, ou uma outra variação qualquer
> disto e pronto, vai ser "standard compliant" e atende ao problema da
> detecção de lame delegation. O que não pode é não responder.

Acho que responder com um empty answer section e aa bit ! set, isso sim seria
complicado. Como reagiriam os clientes? Existe algum exemplo disso no RFC
1034?

E falando em problemas de configuração, o dnstrace parece ser uma ferramenta
interessante para encontrá-los:

  http://cr.yp.to/djbdns/debugging.html

  dnstrace uses the standard DNS resolution algorithm, but follows all possible
  paths in the algorithm. It prints all responses it receives from DNS servers;
  it also prints warnings about slow servers, dead servers, misdelegated
  (``lame'') servers, and misformatted packets. dnstrace is similar in spirit to
  DOC and dnswalk but is much more effective than those tools at debugging
  resolution problems.

> Não disse que um debate baseado em fatos é algo que deva parar. O
> problema aqui é a sua aparente motivação em advogar a versão A em
> detrimento a B de um software.

Ou a minha aparente paranóia com segurança e estabilidade.

>  A lá Linux x BSD, Postgres x Mysql, Java x C++ e por ai vai.... Este tipo
> de debate em geral é "religioso" , cheio de argumentos ad nauseum e não
> produz resultado prático.

DNS é infraestrutura básica da Internet. O bom funcionamento e a segurança da
Rede são importantes. Não concordo com as suas analogias e muito menos com
o adjetivo "religioso".

> Toda minha argumentação, é baseada na interpretação do standard de
> problemas reais que enfrentamos diariamente.

Você levantou algumas curiosidades sobre o tinydns que eu não conhecia. Em
compensação, imagino que entre seus problemas reais diários estejam coisas
como:

IQUERY buffer overflow in BIND before 8.1.2-T3B (1998); NXT bufer overflow in
BIND before 8.2.2-P4 (1999); nslookupcomplain buffer overflow in BIND before
4.9.8 (2001); TSIG buffer overflow in BIND before 8.2.3 (2001); CNAME buffer
overflow in libresolv before 4.9.9/8.2.6/8.3.3/9.2.2 (2002); SIG buffer
overflow in BIND before 4.9.11/8.3.4 (2002); getnetbyname buffer overflow in
libresolv before 4.9.11 (2002). All of these allowed attackers around the
Internet to seize control of the program.

Ou como:

That's six hundred seventy-two bugs. Many of the recent bugs, like many of the
earlier bugs, indicate serious problems. For example, bug 1252 (``dig, host
and nslookup were not checking the address the answer was coming from'') means
that the BIND 9.2.1 lookup utilities were vulnerable to completely trivial
forgeries, and bug 1310 (``rndc stop failed to cause zones to be flushed
sometimes'') means that BIND 9.2.1 would sometimes destroy addresses.

> Não estou falando em gosto por forma de operação e muito menos não estou me
> baseando em citações [...]

Citações & referências são fundamentais.

> [...] ou simpatia.

Usei "simpatia" como um eufemismo. Eu não queria dizer com todas as letras,
mas não gosto muito da tática usada pelo pessoal do bind para promover o
produto, que não se baseia em argumentos técnicos e procedimentos totalmente
abertos.

[snip]

> Bem desculpe pelo desvio, voltando ao ponto do SOA,
> 
> Aparentemente a implementação do tinydns pega esta informação da date
> de modificação do db de zona no file system.

O serial number usado é o mtime do arquivo 'data'. Mas também é possível
definir um serial number manualmente.

O procedimento normal é espelhar o arquivo data.cdb, o que faz com que zonas
iguais tenham serial numbers iguais.

Mas isso não é uma regra.

> > dig @a.ns.yp.to. cr.yp.to soa
> yp.to.  42m40s IN SOA a.ns.yp.to. hostmaster.yp.to. (
>                                         1033711957      ; serial
> 
> > dig @b.ns.yp.to. cr.yp.to soa
> yp.to.  42m40s IN SOA a.ns.yp.to. hostmaster.yp.to. (
>                                         1033711959      ; serial

Pela diferença de dois segundos, imagino que ele esteja espelhando o arquivo
'data' e recriando o cdb. Prerrogativa dele.

> Um problema muito comum e grave é o de erros intermitentes na
> resolução DNS. Isto em geral ocorre devido a não sincronização entre
> servidores autoritativos para uma zona. O serial do SOA é a forma que
> existe para se verificar a sincronização entre servidores, e se
> notificar o detentor da delegação para providenciar a correção.

A configuração padrão sugerida faz com que os serial numbers sejam
iguais. Isso pode não ser importante, veja abaixo.

> Não me venha com o argumento de que com a solução utilizada por esta
> versão de software para a sua replicação de zona este problemas não
> existe pois ele existe.

Uma solução melhor não é argumento válido?

O master faz um push dos dados para o slave assim que eles são modificados, é
uma solução robusta. Em caso de problemas, você fica sabendo na hora.

O Makefile padrão é simples:

     remote: data.cdb
             rsync -az -e ssh data.cdb 1.8.7.201:/service/tinydns/root/data.cdb

     data.cdb: data
             /usr/local/bin/tinydns-data

É claro que um slave fazendo polling do master para atualizar seus dados é uma
solução muito mais frágil, que precisa de cuidadoso monitoramento.

> Qualquer software pode e é comumente configurado de forma errada !

E, no caso do bind, isso chega a ser um problema de uso. Atualizar um zone
file e esquecer de incrementar o serial number é um acontecimento freqüente.

[snip]

> Se vc vislumbra como resolver estes dois problemas, de alguma outra
> forma que seja deterministica, por favor me indique, isto vai ser
> muito bem vindo e ai este thread vai ter valido algo.

O problema do SOA não existe.

Abraço,

--
Adriano



More information about the gter mailing list