Instalação BIND

Sobre:

BIND (Berkeley Internet Name Domain ou, como chamado previamente, Berkeley Internet Name Daemon ) é o servidor para o protocolo DNS mais utilizado na Internet, especialmente em sistemas do tipo Unix.

Detalhes:

Instalação do BIND 9 no CentOS 6.5:

Os principais arquivos do são:

named.conf – Arquivo de configuração geral;
named.ca – Arquivo que contém os root hints;
named.local – Arquivo que define todos os endereços do localhost;
named – Serviço daemon do serviço DNS.

Preparando o sistema (Opcional):
Atualização dos pacotes já instalados:

# yum -y update rpm
# yum -y -v update

Instalando o BIND 9

Instalação com a segurança do chroot e inicialização automática:

# yum –y install bind-chroot

Colocar na inicialização do sistema:

# chkconfig named on

Edição do arquivo de configuração “named.conf”

# vim /etc/named.conf

Altere e/ou adicione as linhas abaixo:

Option {
listen-on port 53 { any; };
allow-query { any; };
allow-transfer { none; };
version “[null]”;

Inicie o serviço named e verifique se está rodando dentro da jail chroot:

Inicia o serviço de DNS

# service named start

Pede o Process ID do serviço named (o exemplo retornou o 1234)

# pidof named

Exemplo de output do comando pidof: 1234

# ls -ld /proc/1234/root

Configurando zonas

Neste ponto, seu servidor já está funcionando como um Caching DNS e já está resolvendo nomes de forma não-autoritativa.

Você pode testar com o nslookup:

# nslookup

> server 127.0.0.1
> www.registro.br

Inserção da zona no named.conf

Imagine que você é dono de um domínio www.xpto.com.br, e o hospedo dentro do meu bloco de IPs: 192.168.1.1/24 (estes são nomes e números fictícios):

# vim /etc/named.conf

Adicione as linhas abaixo ao arquivo “named.conf”:

; // Final do arquivo named.conf

// DNS Zonas

zone “xpto.com.br” {
type master;
file “xpto.zone.db”; //entre aspas coloque qualquer nome de arquivo, mas lembre-se dele
};

// DNS Reversos

zone “1.168.192.in-addr.arpa” IN {
type master;
file “reverse.1.168.192”; //entre aspas coloque qualquer nome de arquivo, mas lembre-se dele
};

Fabricação dos arquivos das zonas

Zona principal

# cd /var/named/
# vim xpto.zone.db

Exemplo mais simples do arquivo:

$TTL 86400
@ IN SOA server.xpto.com.br. root.server.xpto.com.br. (
2011071001 ;Serial
3600 ;Refresh
1800 ;Retry
604800 ;Expire
86400 ;Minimum TTL
)
@ IN NS server.xpto.com.br.
@ IN NS www.xpto.com.br.
server IN A 192.168.1.1
www IN A 192.168.1.1

Exemplo mais complexo do arquivo:

$ORIGIN xpto.com.br.
$TTL 1H

xpto.com.br. IN SOA ns1.xpto.com.br. suporte.xpto.com.br. (
2012091902; serial
12H; refresh
1H; retry
1W; expire
6H); minimum
;
IN NS ns1
TXT v=spf1 include:spf.xpto.com.br ~all
MX 5 mail
localhost IN A 127.0.0.1
@ IN A 192.168.1.1
www IN A 192.168.1.1
mail IN A 192.168.1.1
pop IN CNAME mail
smtp IN CNAME mail
imap IN CNAME mail
ns1 IN A 192.168.1.1
ftp IN CNAME www

Zona reversa

# cd /var/named
# vim reverse.1.168.192

Insira as linhas abaixo, alterando para a realidade da sua rede (explicação abaixo):

$TTL 1H
@ IN SOA server.xpto.com.br. root.server.xpto.com.br.(
2014080100; serial
12H; refresh
1H;retry
1W;expire
6H);minimum
;
128.98.200.in-addr.arpa. IN NS 200-98-128-51.nsdt.in.
;
213 IN PTR www.xpto.com.br.
251 IN PTR server.xpto.com.br.
50 IN PTR mail.xpto.com.br.

Observe que dentro dos arquivos de configuração, há um ” . ” (ponto) no final de cada domínio digitado.
Caso este ponto não esteja presente, o BIND vai adicionar a parte “xpto.com.br” após cada domínio.

Ex.:
213 IN PTR www.xpto.com.br (sem ponto no final)

Onde:
; – Marcador de linha que não será lida. Funciona igual a “//”.
TTL – Time To Live, quanto tempo os dados solicitados ficarão gravados no cache do solicitante.
SERIAL – Baseado nesse número, um servido slave sincronizará ou não sua base. Pode ser escrito em qualquer formato, mas como padrão da indústria, utiliza-se ANOmêsDIAnúmerodaalteração.
REFRESH – O tempo que o servidor slave verificará se teve alguma modificação em algum arquivo de zona.
RETRY – Caso a comunicação de refresh falhe, tentará novamente neste tempo.
EXPIRE – Caso o slave não receba atualização neste tempo, também irá parar de responder solicitações.
MINIMUM – Quanto tempo o slave vai guardar os registros.

@ – Onde está localizado este domínio.
IN – Endereço da Internet.
SOA – Start of Authority, define o servidor DNS que pode responder com autoridade.
A – Address, é o registro de busca de endereços IP.
NS – Name Server, é o registro de servidores DNS.
MX – Mail Exchange, é o registo de servidor de e-mail.
PTR – Pointer, é o registro de busca reversa. Somente utilizado em arquivos de zona reversa.
CNAME – Canonical Name, é o registro que dá um apelido a um recurso “A” já registrado.
TXT – Text, arquivo necessário para servidores de e-mail não serem classificados, como spammers.

Como dito anteriormente, atente que, dentro dos arquivos de configuração há um ” . ” (ponto) no final de cada domínio digitado.

Caso este ponto não esteja presente, o BIND vai adicionar a parte “xpto.com.br” após cada domínio, repetindo-o.

Veja modelo acima como exemplo.

Dicas:

Verificar versão do pacote BIND instalado da seguinte maneira:

# dpkg -l bind

Ou

# rpm -qa bind

Fontes:
http://www.vivaolinux.com.br/artigo/Instalando-o-BIND-9-no-CentOS-6?pagina=3
http://www.vivaolinux.com.br/artigo/BIND-9-DNS-Master-e-Slave-CentOS-64-Minimal
http://www.vivaolinux.com.br/artigo/Bind-Explorando-e-evitando-falhas?pagina=2

Maiores detalhes:
http://www.cert.br/docs/whitepapers/dns-recursivo-aberto/
http://blog.nexthop.com.br/2008/07/qual-verso-do-seu-bind.html