Pergunte a um servidor DNS que sites ele hospeda - e como possivelmente evitar o uso indevido

2

Eu tenho um servidor que eu hospedo o site da minha empresa, bem como alguns dos meus clientes. Eu notei um domínio que eu criei, mas nunca usei, estava sendo atacado por um cutucão e espero hacker. Eu imagino que o hacker tenha coletado o domínio, seja acessando meu servidor DNS e solicitando quais domínios estão hospedados.

Assim, no interesse da prevenção e do melhor gerenciamento do servidor, como eu perguntaria ao meu próprio servidor DNS (Linux CentOS 4) quais sites estão sendo hospedados nele?

Além disso, existe uma maneira de evitar esses tipos de ataques, ocultando essas informações? Eu suponho que os servidores DNS precisariam manter algumas informações públicas, mas não tenho certeza se há algo que a maioria dos hosts faz para ajudar a evitar que esses desperdícios de largura de banda provoquem ataques e esperem ataques.

Obrigado antecipadamente.

UPDATE Eu percebi algo em rever isso ainda mais, vi que, neste caso específico, o ataque não foi trazido por consultas DNS (o que nunca seria chamado), em vez de um IP dedicado. A conta em que me preocupei hospeda um banco de dados para um site principal, mas não contém mais nada. Eu originalmente dei à conta um IP dedicado e, obviamente, isso permitiu que os walkers de IP cutucassem e esperassem.

A questão atual (e agora melhor esclarecida) permanece, como alguém (que não tem acesso ao servidor) pode coletar os sites que seu servidor DNS representa?

    
por Exit 17.04.2010 / 08:08

3 respostas

3

Como é o seu próprio servidor, você pode ver os arquivos de configuração e ver os domínios que hospeda:

O programa do servidor de nomes deve ser Bind, e o arquivo de configuração para ele normalmente seria:

/etc/named.conf

Esse arquivo, named.conf, contém algumas linhas para cada domínio que você está hospedando. Procure por algo como:

zone "example.com" IN {
  type master;
  file "example.com.zone";
  allow-update { none; };
};

Quanto à prevenção dos ataques, ocultando as informações, isso provavelmente não funcionará. Se um hacker puder descobrir seu nome de domínio, ele poderá encontrar o endereço IP do seu servidor de nomes - afinal, esse é o objetivo do DNS.

Se você remover (ou comentar) as entradas de zona no named.conf para seus domínios não utilizados, você bloqueará parcialmente esses ataques.

    
por 17.04.2010 / 08:47
1

I imagine that the hacker collected the domain from either hitting my DNS server and requesting what domains are hosted.

Por que você imagina isso? Quero dizer, eu acho que primeiro o atacante pegou o DNS da lista de DNS oficial publicada no banco de dados whois no registro, perguntando "ok, quem é o proprietário do domínio" e "quais servidores dns estão registrados para ele".

    
por 17.04.2010 / 08:54
1

Muitos se concentraram na informação de fundo e a separaram em vez de tentar responder às perguntas reais. Eu tenho procurado ativamente uma resposta ao invés de sentar e esperar e ter respostas parciais.

The actual (and now better clarified) question remains though, how would or could someone (that doesn't have server access) gather the sites which your DNS server represents?

Resposta parcial: Se a configuração do BIND (etc / named.conf) tiver 'allow-transfers' definida como 'any', é possível que fontes externas obtenham uma lista completa de zonas (domínios). Como isso é executado ainda é desconhecido.

Also, is there a way to prevent these types of attacks by hiding this information?

Sim, garantindo que apenas um grupo confiável tenha acesso a "permitir transferências". No named.conf, use um bloco acl (Lista de Controle de Acesso / Declaração de Controle de Acesso) para definir quais endereços IP devem receber acesso para bloquear o acesso não autorizado. Para configurar uma acl:

acl <acl-group-name> {
<ip-address>;
[<ip-address-2>; ...]
};

Substitua por um nome como confiável e liste os intervalos IP ou IP (formato de bloco CIDR [/ 20]) terminando com dois pontos e separados por uma linha final. Normalmente, uma lista confiável conteria o IP de loopback (127.0.0.1), os endereços IP atribuídos em seu resolv.conf e quaisquer endereços IP dedicados alocados para seu servidor.

Depois de criar o acl, você pode aplicá-lo às opções escolhidas. Para isso, seria 'permitir transferências':

options {
allow-transfers { <acl-group-name>; };
...
}

Se você quiser impedir que um endereço IP específico acesse seu servidor DNS, você pode adicionar um novo bloco acl e adicionar 'blackhole' no topo do seu bloco de opções em named.conf:

options {
blackhole { <acl-blackhole-name>; };
...
}

Esta é uma resposta parcial, mas a parte mais importante foi garantir que alguém não possa consultar o servidor de nomes e recuperar uma lista completa de zonas (domínios). Eu ainda estaria interessado em saber como executar uma transferência de zona DNS.

    
por 18.04.2010 / 05:27