sexta-feira, 29 de novembro de 2013

Instalando o Pacote BIND9 no Debian ( Linux )


Instalando o pacote: 

# apt-get install bind9 

Serão instaladas automaticamente as seguintes dependências:
  • libisccc0;
  • libisccfg0
Importante: após a instalação e antes de começar as configurações é necessário parar o serviço DNS, caso contrário, poderá ocorrer um erro com a chave rndc-key. Para parar o serviço faça o seguinte: 

# /etc/init.d/bind9 stop 

Criando os diretórios necessários ao funcionamento do Bind9 em chroot. Crie os seguintes diretórios em /var/lib: 

# mkdir -p /var/lib/named/etc
# mkdir -p /var/lib/named/dev
# mkdir -p /var/lib/named/var/cache/bind
# mkdir -p /var/lib/named/var/run/bind/run
 

Em seguida mova o diretório de configuração de /etc para /var/lib/named/etc: 

# mv /etc/bind /var/lib/named/etc 

Para evitar problemas futuros com atualizações, crie um link simbólico de /etc/bind9 para /var/lib/named/etc/bind9: 

# ln -s /var/lib/named/etc/bind /etc/bind 

Criando os dispositivos null e random e dando as permissões aos diretórios e dispositivos: 

# mknod /var/lib/named/dev/null c 1 3
# mknod /var/lib/named/dev/random c 1 8
# chmod 666 /var/lib/named/dev/null
# chmod 666 /var/lib/named/dev/random
# chown -R nobody:nogroup /var/lib/named/var/*
# chown -R nobody:nogroup /var/lib/named/etc/bind
 

Pronto, a parte comum a maioria das distribuições está concluída. Agora vem a parte que é específica do Debian. 

Com os diretórios e dispositivos criados e as permissões setadas, temos que configurar o Bind9 para trabalhar em chroot e configurar o sysklogd para capturar os logs do seu servidor de DNS. 

Esse passo é extremamente simples se você estiver utilizando Debian. Edite o arquivo/etc/init.d/bind9, procure pela linha OPTS="" e deixe ela assim: 
OPTS="-u nobody -t /var/lib/named"

Onde:
  • -u = especifica o usuario, que no caso é nobody.
  • -t = especifica o diretório onde vai ser montado o chroot, no nosso caso /var/lib/named.
Bastante simples, não é? 

Para capturar os log's do nosso servidor DNS dentro do chroot: 

Edite o arquivo /etc/init.d/sysklogd, procure pela linha SYSLOGD="" e deixe ela assim: 
SYSLOGD="-a /var/lib/named/dev/log"

Abra outro terminal e edite: 

# tail -f /var/log/syslog 

Para poder monitorar os log's e saber o que está acontecendo se algo estiver dando errado. 

Reinicie os serviços sysklogd e bind9: 

# /etc/init.d/sysklogd restart
# /etc/init.d/bind9 start
 

Para saber se o serviço iniciou corretamente: 

# ps aux | grep named 

O resultado deverá aparecer mais ou menos assim: 

root      3622  0.0  0.1  2468  904 ?        Ss   Apr13   0:00 /sbin/syslogd -a /var/lib/named/dev/log
nobody    4085  0.0  0.5 29448 2648 ?        
Ss   Apr13   0:00 /usr/sbin/named -u nobody -t /var/lib/named
root      5508  0.0  0.1  1844  704 pts/3    S+   16:19   0:00 grep named 

Observe que agora seu Bind está rodando com o usuario nobody e em chroot no diretório /var/lib/named. 

Teste básico para verificar se o servidor está funcionando: 

Edite o arquivo/etc/resolv.conf e altere a linha nameserver para: 
nameserver 200.200.200.200

Onde 200.200.200.200 é o endereço IP do seu servidor DNS recém criado. 

Agora tente pingar em algum endereço da internet, por exemplo: 

# ping www.uol.com.br 

Se obtiver resposta, seu servidor DNS já está funcionando como cache-only (consultas), agora basta configurar o seu domínio nele. 

Agradecimentos a toda a comunidade linux, que não mede esforços e sempre auxilia seus usuários quando estes necessitam. 

Críticas, dúvidas e sugestões são bem vindas, espero que tenham gostado do artigo. 

Manual do Bind9 - Bind9-doc 

Para quem quiser instalar a documentação do Bind: 

# apt-get install bind9-doc 

Nessa documentação você encontra a informação necessária para colocar seu Bind9 para funcionar, realmente foi a melhor fonte que eu encontrei, apesar de estar todo em inglês (alguém se habilita a traduzir ela?) e são cerca de 112 páginas somente sobre Bind9. 

Nenhum comentário:

Postar um comentário