Configurando BIND 9 + chroot sem mistérios

Cansado de procurar como fazer uma coisa tão baba como esta e não encontrar? Acabou seu martírio, este artigo ensina como fazer configurar seu servidor DNS.

[ Hits: 370.072 ]

Por: Alexandre de Jesus Marcolino em 12/02/2003 | Blog: http://blog.marcolino.com.br/wordpress/


Tudo instalado, agora vamos ENGAIOLAR !



Isso mesmo, vamos engaiolar o bind. Devido ao sua larga utilização na internet, o Bind também é sujeito à detecção de falhas por hackers que ficam o dia inteiro tentando detonar a rede dos outros. Por conta disto se inventou um jeito de limitar o acesso de um determinado serviço dentro do servidor que é chamado de chroot.

Este sistema tem o objetivo de criar um mini-ambiente contendo apenas o necessário para aquele executável rodar com o propósito de minimizar uma possível invasão ao servidor. Este conceito chama-se Jail ( engaiolar mesmo ) o serviço.

Para começar, vamos aos passos para a criação da Gaiola ! Tudo continua sendo executado como root.

Criando usuário e grupo

groupadd named
useradd -g named -d /chroot/named -s /bin/true named
passwd -l named
# Comentário - Isto bloqueia (lock ) a conta para login.

Removendo qualquer configuração de bind que exista

rm -rf /chroot/named

Criando a Gaiola

mkdir -p /chroot/named
cd /chroot/named


Criando os diretório filhos

mkdir dev
mkdir etc
mkdir logs
mkdir -p var/run
mkdir - p conf/secondaries


Criando os devices

mknod dev/null c 1 3
mknod dev/zero c 1 5
mknod dev/random c 1 8


Copiando o arquivo de Timezone

cp /etc/localtime etc

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. O ambiente
   3. Compilando o BIND
   4. Tudo instalado, agora vamos ENGAIOLAR !
   5. Construindo os arquivos de configuração
   6. Verificando as permissões dentro da gaiola
   7. Inicializando o servidor NAMED
   8. Controlando o daemon com rndc
   9. Inicializando o named quando a máquina da BOOT !!!
   10. Consideracões finais
Outros artigos deste autor

Criando VPNs entre servidores Linux sem mistérios (parte I)

Tutorial de Instalação do ClamAV - Anti-vírus open Source

openSUSE 12.1 - Instalando Oracle Java

Autenticando o Speedy Business automaticamente em firewalls Linux

Configurando um arquivo de zona

Leitura recomendada

Configurando roteador com USB 3G

Apache Kafka

N2N: Layer Two Peer-to-Peer VPN

Como bloquear anúncios indesejados durante sua navegação pela web

Rodando aplicações nativas de Windows em Linux pela Web

  
Comentários
[1] Comentário enviado por rsouza em 29/08/2003 - 13:11h

Meus parabéns o arquivo é muito BOM......

[2] Comentário enviado por gustavo_marcon em 04/09/2003 - 18:18h

configurei um server DNS master, mas p/ registrar dominios preciso de um master e no minimo um slave não é?
ñ posso configurar só c/ um né?

então como faço p/ criar um DNS secundário?

Preciso valida-lo em alguma organização??

[3] Comentário enviado por L1nuxer em 26/03/2004 - 12:16h

O cara explico uma configuracao de DNS de uma forma que nao precisa disso tudo, ja que explicou dessa forma explica-se detalhadamente. e mesmo assim explique de uma forma configurando um dominio, vamos dizer que 40% desse artigo e aproveitavel!

Gustavo_marcon sim vc precisa de outra maquina para fazer o slave que seria o secundario.

[4] Comentário enviado por crildo em 11/06/2004 - 15:11h

Muito bom o seu artigo...

[5] Comentário enviado por cmarcelo em 05/07/2004 - 22:58h

Muito útil o chroot!

Segui os passos e está funcionado legal

Porém estou com uma dúvida, qual a utilizade do diretório log, já que ele sempre está vazio?

Carlos Marcelo

[6] Comentário enviado por reimassupilami em 04/08/2004 - 11:20h

Olá, eu estava seguindo todos os passos mas me ferrei na hora de executar aquele script que trata das permissões. Nem root conseguia acessar mais nada, daí até a inicialização ferrou. Resumindo, tive q reinstalar o sistema. O que posso ter feito de errado?

[7] Comentário enviado por rbn_jesus em 19/11/2004 - 09:59h

Help!
cara estou seguindo o teu tutorial para o fedora 2, apos a configuração do bind tentei executar o ./make, entretanto apareceu o seguinte erro:

[root@localhost bind-9.2.1]# ./make
bash: ./make: is a directory

como posso contornar isto, já tentei executar o cdm make detro do diretorio make, e outras tentativas inuteis...

agradeço a compreenção


[8] Comentário enviado por ace rush em 24/11/2004 - 01:22h

Poutz muito bom!!!

mas eu achei que realmetne ia rolar um #chroot /chroot/named...

mas vi que se faz de oturo modo (setando permissoes).... e nao tem jeito se alguem der um buffer overflow e cair de shell ali dentro, de poder subir pro filesystem ?

[9] Comentário enviado por icasol em 17/01/2005 - 15:45h

Cara,


Le seu artigo...estou da pra vc mandar uma dica para do DNS secundario no Slakware 10....o DNS primario eu fiz usando seu DOC...muito bom...

Valew

Rubens Andrade

[10] Comentário enviado por jehpy em 05/04/2005 - 23:34h

Oi é o seguinte... tentei instalar o servidor conforme suas dicas, mas na hora de executar o named.start ele da um erro: bash: PATH: command not found.

Estou usando o CL10...

[11] Comentário enviado por leandroalmeida em 18/11/2005 - 11:20h

Excelente artigo...
mas quando executo o rndc status ele apresenta o seguinte erro..

rndc: Couldn't find server 'localhost': Name or service not known

outra pergunta de iniciante.. o dns server para resolucionar nomes? por exemplo
transformar 200.171.171.171 em www.meudominio.com.br?

[12] Comentário enviado por gustavo_marcon em 18/11/2005 - 15:26h

leandroalmeida, é ao contrário que o DNS funciona, ele transporma nome para ip e não ip para nome.

Ou seja ela faz vc ir de www.seudominio.com.br para 200.171.171.171 mas não ir de 200.171.171.171 para www.seudominio.com.br, até porque é por IP diretamente que a internet trabalha, então nem faria sentido essa ordem.

[13] Comentário enviado por julinhoramones em 16/03/2006 - 21:40h

Caro gustavo_marcon, o uso básico do DNS a priori é para realizar a resolução de nomes para endereços IP. Mas há casos onde necessitamos utilizar o servidor DNS para realizar resolução reversa, onde através do IP é possível obter o nome.
Sendo assim, você pode criar base de dados para resolução comum e reversa.

[14] Comentário enviado por Tyreon em 11/07/2006 - 19:29h

Vlw!! Me ajudou mto!!

[15] Comentário enviado por guga_osicom em 10/08/2006 - 13:06h

A configuração proposta pelo artigo foi implementada. Os resultados usando o nslookup foram aceitaveis. Porém quando uso o ping em outra máquina da rede para acessar o servidor DNS ele não encontra. Alguma sugestão será bem vinda.

[16] Comentário enviado por scristina4 em 24/09/2006 - 16:07h

Gostaria de ler o artigo, mas não consegui ainda, preciso dele para efetuar um trabalho de faculdade, sou novata na área de rede principalmente preciso configurar o servidor DNS linux mas não encontrei nenhum material apropriado, tipo passo a passo, porque em linux sou leiga, sei pouca coisa. Então depois faço meus comentários sobre o artigo.
Atenciosamente,
Sogeamfe

[17] Comentário enviado por alexandrecorrea em 25/09/2006 - 03:19h

gustavo_marcon:

o bind/named converte tanto nome.com.br para ip e ip para nome.com.br !!

veja um exemplo de ip para nome:

supondo que temos o bloco 200.200.200.1.0/24

named.conf

zone "1.200.200.in-addr.arpa" IN {
type master;
notify yes;
file "reverso.200.200.200.1.zone";
};


arquivo reverso.200.200.200.1.zone

$TTL 14400
$ORIGIN 1.200.200.IN-ADDR.ARPA.
@ 14440 IN SOA ns1.dominio.com.br. hostmaster.dominio.com.br. (
2006061404
1H
15M
1W
20M
)

@ 7200 IN NS ns1.dominio.com.br.
@ 7200 IN NS ns2.dominio.com.br.


1 7200 IN PTR ip01.dominio.com.br.
2 7200 IN PTR ip02.dominio.com.br.

$GENERATE 10-254 $ PTR ip$.dominio.com.br.



-------

esse ultimo ai.. $GENERATE gera automaticamente.... do 10 ao 254 :)





[18] Comentário enviado por maickelpc em 26/11/2007 - 17:36h

bacana...enfim conclui meu dns

[19] Comentário enviado por peace em 04/12/2007 - 16:56h

show de bola o artigo. Botei meu dns pra rodar rapidinho. como é útil, vou linkar o aritigo no meu blog, ok?

abraço.

Tiago Lima

[20] Comentário enviado por edivaldocaj em 19/12/2007 - 15:39h

parabéns, otimo tutorial...

[21] Comentário enviado por linuxss em 25/06/2008 - 22:05h

Quando configuro este script e mando executar o teste através do comando descrito acima, sou informado que os paramentros:

[root@localhost chroot]# sh -x /chroot/named.perms
+ cd /chroot/named
+ chown -R root.named
chown: operando em falta após `root.named'
Tente `chown --help' para mais informação.
+ find .-type f -print
+ xargs chmod u=rw,og=r
find: .-type: Arquivo ou diretório não encontrado
find: f: Arquivo ou diretório não encontrado
chmod: operando em falta após `u=rw,og=r'
Tente `chmod --help' para mais informação.
+ find .-type d -print
find: .-type: Arquivo ou diretório não encontrado
find: d: Arquivo ou diretório não encontrado
++ u=rwx,og=rx
+ xargs chmod
chmod: operando em falta
Tente `chmod --help' para mais informação.
+ chmod 'o=etc/*.conf'
chmod: operando em falta após `o=etc/*.conf'
Tente `chmod --help' para mais informação.
+ touch conf/secondaries/.empty
+ find conf/secondaries/ -type f -print
+ xargs chown named.named
+ find conf/secondaries/ -type f -print
+ xargs chmod ug=r,o=
+ chown root.named conf/secondaries/
++ ug=rwx,o
+ chmod = conf/secondaries/
+ chown root.root var/
+ chmod u=rwx,og=x var/
+ chown root.named var/run/
+ chmod ug=rwx,o=rx var/run/
+ chown root.named logs/
+ chmod ug=rwx,o=rx logs/

Ja tentei colocar aspas de todas as maneiras mas naum funciona, por favor preciso de ajuda obrigado.

[22] Comentário enviado por aurelio.silva em 30/06/2008 - 15:21h

Se tenho um server com dois IPs, como posso fazer o master e slave na mesma maquina?

[23] Comentário enviado por cpaynes em 22/07/2009 - 16:03h

velhoo .. bom tutorial ...
so to com uma duvida ..
eu tenhu um servidor dhcp rodando ..
o que eu coloco na linha option domain-name-servers ???
e no resolv ... ???
abracos ..

[24] Comentário enviado por rcorrea em 28/10/2009 - 20:40h

Estou configurando o DNS numa maquina com Ubuntu Jaunty 9.04 kernel 2.6.28.16.
Quando tento criar o arquivo db.rootcache ocorre falha de permissao, veja abaixo:
"sudo +tcp dig @a.root-servers.net . ns > /chroot/named/conf/db.rootcache"
bash: /chroot/named/conf/db.rootcache: Permissão negada

o revolv.conf aparentemente esta ok.

o que pode estar errado?

[25] Comentário enviado por DiegocostaJ em 17/10/2018 - 03:50h

Para mim não funcionou, estou utilizando o Centos. Os script de inicialização acho que estão errados. Eu fiz conforme o KB porém sem sucesso.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts