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.
options {
default-key "rndc-key";
default-server 127.0.0.1;
default-port 953;
};
# End of rndc.conf
# Use with the following in named.conf, adjusting the allow list as needed:
# key "rndc-key" {
# algorithm hmac-md5;
# secret "Omr8iA0t9KOuW4jankgInQ==";
# };
#
# controls {
# inet 127.0.0.1 port 953
# allow { 127.0.0.1; } keys { "rndc-key"; };
# };
# End of named.conf
O comando irá gerar dois conteúdos, um que vamos utilizar em /chroot/named/etc/rndc.conf e o outro para adicionar em /chroot/named/etc/named.conf.
LEMBRANDO QUE O SECRET MUDA DE GERAÇÃO PARA GERAÇÃO, PORTANDO SEU SECRET SERÁ DIFERENTE DO ACIMA.
2 - Crie o arquivo /chroot/named/etc/named.conf e coloque o conteúdo abaixo nele.
REPARE QUE EU COLOQUEI O CONTEÚDO QUE GERAMOS ACIMA, RETIRANDO SOMENTE AS TRALHAS
options {
directory "/conf";
pid-file "/var/run/named.pid";
statistics-file "/var/run/named.stats";
dump-file "/var/run/named.db";
transfer-format many-answers;
# hide our "real" version number
version "[secured]";
};
# Use with the following in named.conf, adjusting the allow list as needed:
key "rndc-key" {
algorithm hmac-md5;
secret "Omr8iA0t9KOuW4jankgInQ==";
};
controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { "rndc-key"; };
};
# End of named.conf
# The root nameservers
zone "." {
type hint;
file "db.rootcache";
};
# localhost - forward zone
zone "localhost" {
type master;
file "db.localhost";
notify no;
};
# localhost - inverse zone
zone "0.0.127.in-addr.arpa" {
type master;
file "db.127.0.0";
notify no;
};
zone "meudomínio.com.br" in {
type master;
file "meudomínio.com.br.domain";
};
3 - Vamos criar o conteúdo do /chroot/named/etc/rndc.conf com o conteúdo gerado:
5 - Crie o arquivo /chroot/named/conf/db.localhost e coloque o conteúdo abaixo nele:
;
; db.localhost
;
$TTL 86400
@ IN SOA @ root (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS @
IN A 127.0.0.1
6 - Crie o arquivo /chroot/named/conf/db.127.0.0.0 e coloque o conteúdo abaixo nele:
;
; db.127.0.0
;
$TTL 86400
@ IN SOA localhost. root.localhost. (
1 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS localhost.
1 IN PTR localhost.
7 - Crie o arquivo /chroot/named/conf/meudomínio.com.br.domain e coloque o conteúdo abaixo nele, lembrando que se você for criar um domínio com outro nome por exemplo.: uol.com.br, você deverá substituir meudomínio.com.br por uol.com.br, mesmo no nome do arquivo que estamos criando agora.
$TTL 86400
; Authoritative data for meudomínio.com.br
;
@ IN SOA localhost. root.meudomínio.com.br. (
2005011297 ; Serial (yymmddxx)
10800 ; Refresh 3 hours
3600 ; Retry 1 hour
36000 ; Expire 10 hours
86400 ) ; Minimum 24 hours
IN NS ns1.meudomínio.com.br.
IN NS ns2.meudomínio.com.br.
;
;Recebimento de mensagens de mail
;
meudomínio.com.br. IN MX 0 mx
meudomínio.com.br. IN MX 10 mx
localhost IN A 127.0.0.1
IN HINFO INTEL/110 LINUX
ns1 IN A 100.100.100.100
ns2 IN A 100.100.100.100
mx IN A 100.100.100.100
smtp IN A 100.100.100.100
pop IN A 100.100.100.100
www IN A 100.100.100.100
ftp IN A 100.100.100.100
OBS: Substitua o IP 100.100.100.100 para o IP correto.
[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