Nesse artigo explico como configurar um servidor DNS utilizando o BIND de uma maneira segura. Criei esse novo artigo atualizando o antigo e adicionando o CHROOT para melhor segurança do nosso sistema.
Todas as informações contidas nesse documento foram testadas no Slackware 10.1.
Não me responsabilizo por qualquer problema que essas informações possam causar ao seu servidor.
Todos estão autorizados a publicar esse artigo, desde que preserve minha autoridade.
Antes vou explicar o que é um servidor DNS (Domain Name Server).
Um servidor DNS é responsável em responder pelo(s) domínio(s) e
direcionar tudo que é relacionado à ele, nele por exemplo você
vai apontar onde fica o www.domínio.com.br, vai apontar também
quais são os servidores de entrada de email e por aí vai. Ele
também possui outras utilidades, como por exemplo em uma rede
interna, com ele configurado em um servidor de sua rede, você
não precisará informar o servidor DNS do seu provedor, basta somente apontá-lo para ele e até fazer com que sua empresa toda responda por hosts, por exemplo: maquina-1.domínio.com.br, maquina-2.domínio.com.br.
Usaremos o BIND para ser responsável em servir o DNS, e vamos utilizar o CHROOT para colocar mos o BIND em "jauling", ou seja, vamos prender o bind para que mesmo que o invasor consiga entrar na maquina ele não consiga fazer nada, nem mesmo derrubar próprio BIND.
Sabemos que nosso bom e velho BIND tem algumas falhas de segurança e eu pude constatar isso quando fui invadido 2 vezes em menos de 3 dias, administro um server que hospeda mais de 3 mil domínios e o mesmo acabou virando alvo de vários ataques.
Então tive que estudar mais um pouquinho para aprender a fazer dessa forma a instalação e configuração do BIND.
[2] Comentário enviado por agk em 17/03/2005 - 11:31h
Parabéns, está muito bom o artigo, apesar de ser para Slackware está bem explicado e fornece uma ótima base de conhecimento para poder instalar em outras distribuições.
[4] Comentário enviado por foxrcesar em 24/05/2005 - 20:37h
parabens pelo artigo, mas gostaria se possivel tirar algumas duvidas, por exemplo, para configurar um dns secundario, instalaria como no primario e copiaria os arquivos de configuração? qnd criasse um novo dominio vi em outros artigos sobre o alow transfer ip_secundario, como no secundario iria permitir essa transferencia? grato.
[5] Comentário enviado por Escadinha em 27/01/2006 - 21:55h
Gostei do artigo principalmente por tratar de um Slackware. Nunca tinha encontrado um tutorial passo a passo de bind para Slackware.
Segui todos os passos sem problemas.
O único problema que tive foi na hora de testar o bind.
Iniciei ele com o script rc.bind que criamos mas não houve nenhuma mensagem confirmando nada.
Dei um ps aux | grep bind e a mensagem que veio não foi nada parecida com a que devia aparecer.
Se alguem puder me ajudar eu agradeço.
Mas fora isso, provavelmente o erro foi meu mesmo, gostei muito do tutorial !!
[6] Comentário enviado por julinhoramones em 03/04/2006 - 15:56h
Ótimo artigo !!!!
Em relacao ao nosso amigo do VOL, Escadinha, saliento que:
o comando utilizado para realizar a filtragem da saida do comando ps aux, não irá retornar a palavra, pois simplesmente o daemon não possui este nome, e sim named.
Outra forma invés da listagem de processos ativos no sistema, seria a verificacao do status de portas em listen no sistema:
netstat -l -t -n -p |grep 53
[11] Comentário enviado por renancortes em 15/06/2007 - 00:10h
aeee
mto blz o artigo parabens
soh q eu uso bsd fiz td no freebsd fazendo as mudancas e tal
mais ta ocorrendo um erro queria saber se algum de vcs
me ajuda...
olha quando vou colocar as permissoes da um erro na permissao chown root:root var/ invalid argument
ae do start no /etc/rc.d/rc.bind start
ae no fala assim
starting BIND 9.3.4 -t /chroot/named -u named -c /etc/named.conf
Jun 15 00:07:33 router named[33441]: command channel listening on 127.0.0.1#953
Jun 15 00:07:33 router named[33441]: errno2result.c:109: unexpected error:
Jun 15 00:07:33 router named[33441]: unable to convert errno to isc_result: 45: Operation not supported
Jun 15 00:07:33 router named[33441]: running
espero respostas obrigado =)
[12] Comentário enviado por rspaiva em 08/08/2007 - 12:18h
Excelente!! Instalei aqui no meu slack e foi tranquilo.... so que to com um probleminha quando consulto o DNS la pelo o registro, acusa falha no DNS (diz que o DNS não aceitou uma conexão DNS) e o status ta CREFUSED.... poderia me dar alguma dica ai.Grato
Ricardo Paiva. rspaiva@hotmail.com
[13] Comentário enviado por prgs.linux em 11/08/2007 - 11:24h
cara descobri uma forma bem parecida com essa sua de enjaular
assim que vc instala o dns pelo installpkg ele ja cria o diretorio dentro do /etc
entao vamos ao passo que fiz!!!!.............salientando que seu post fikou 10 e eu particulamente teste ele ...rsrsr
[16] Comentário enviado por r0ckst4r em 18/12/2007 - 15:33h
#
# named.start
#
# Note: the path given to the "-c" parameter is relative
# to the jail's root, not the system root.
#
# Add "-n2" if you have multiple CPUs
#
# usage: named [-c conffile] [-d debuglevel] [-f|-g] [-n number_of_cpus]
# [-p port] [-s] [-t chrootdir] [-u username]
cd /chroot/named
# make sure the debugging-output file is writable by named
touch named.run
chown named:named named.run
chmod ug=rw,o=r named.run
PATH=/usr/local/sbin:$PATH named \
-t /chroot/named \
-u named \
-c /etc/named.conf
----------------
Lembrem-se, caso o endereço de instalação do named estiver diferente é necessário modificar o PATH...
[17] Comentário enviado por malombrado em 26/12/2007 - 18:33h
Ola. gostaria de saber se e normal alguma lentidao... pois apos eu colocar o dns.. parece que a rede morreu xO... n presiza de nenhuma config de iptables?
[21] Comentário enviado por diony em 24/04/2008 - 22:17h
Meus Parabéns!!!
Excelente Tutorial. Segui Seus Passos para configurar esse Servidor DNS e funcionou que é uma beleza!!!!
O Servidor DNS que configurei mudou totalmente... O Acesso SSH era muito lento acessando de outro link... Tipo entre o link IP Dedicado e o Speedy. Depois de configurar e ativar o BIND o Servidor mudou totalmente!!!! Ficou um avião!!!!!
[24] Comentário enviado por Marcelo_Reis em 12/09/2008 - 20:37h
Olá amigos.
Eu configurei o bind no meu server de firewall (Iptables), e minha duvida é qual o IP que eu devo colocar em "/chroot/named/conf/meudomínio.com.br.domain" substituindo ns1, n2 etc...?
Meu modem adsl, é roteado, e possui IP de internet fixo, para a rede externa ele usa 192.168.0.1, para o firewall na placa de rede externa ele está em dhcp 192.168.0.0/24, na placa de rede interna 10.0.0.1.
e qual dos Ip´s eu deveria colocar em resolv.conf? no momento está:
nameserver 192.168.0.1
No momento não faço muita questão de ter um dominio, seria mais para desafogar o trafego e agilizar o serviço, tipo um cache.
[27] Comentário enviado por rensga em 14/05/2009 - 16:22h
Olá pessoal...
Pra mim funcionou tudo tranquilamente...
Entretanto, eu só consigo startar o bind na mao (/etc/rc.d/rc.bind start).
Quando eu tento automatizar a inicializacao do servidor colocando essa linha no /etc/rc.d/rc.local
Ele me aparece o seguinte erro:
"Starting named: named: chroot(): Permission denied"
Alguma sugestao???
[28] Comentário enviado por diony em 30/05/2009 - 11:57h
Sim, Caro Amigo...
já deu permissão de execução ao script rc.bind dentro de /etc/rc.d/ ???
Caso não faça esses procedimentos...
# cd /etc/rc.d
# chmod +x rc.bind
Feito isso, você não precisará incluir o rc.bind dentro do arquivo rc.local para execução no boot.
Todos os arquivos que estiverem dentro da pasta rc.local será carregado no boot durante a inicialização do linux.
Obs: Somente serão carregados os arquivos na cor verde (arquivos com permissão de execução) caso sua distro seja slackware.
Remova a linha que você colocou no rc.local e digite os comando que eu passei acma e reinicie o linux.
[30] Comentário enviado por henriquefc em 07/01/2013 - 01:23h
Opa galera, gostaria de saber nessa configuração se consigo efetua-la com dns dinâmico, se consigo ao invés dos números, usar um endereço no-ip, ou melhor ainda, conseguir utilizar algum script que altera meu endereço ip automaticamente