Debian Lenny - DHCP3-server + Bind9 adicionando máquinas automaticamente

Este artigo destina-se àqueles que estão cansados dos erros e dificuldades encontradas ao tentar instalar os serviços DHCP e DNS integrados com atualização dinâmica nas tabelas. Esta documentação é destinada aos usuários de Debian Lenny, mas suas dicas podem esclarecer uma série de dúvidas dos que usam outras distribuições.

[ Hits: 57.610 ]

Por: Cleber Rocha em 20/08/2009 | Blog: http://ideiasetecnologias.blogspot.com.br/


Entendendo a utilidade de integrar a rede



Realmente é muito mais fácil deixar toda a configuração de uma rede interna (LAN) com seus serviços rodando "soltos". No entanto, quando o assunto é segurança, se torna um risco muito grande deixar uma máquina sem nenhum tipo de identificação na rede.

Hoje esta situação está ainda pior, pois muitas empresas tem aproveitado o barateamento de roteadores wireless simples e placas de rede com o mesmo tipo de tecnologia para interligar seu parque de máquinas.

Este tipo de topologia tem a vantagem de evitar o gasto imediato com obras de preparação da infraestrutura de crescimento da empresa. Entrementes, apresenta também o grande problema de ser muito vulnerável a ataques e invasões, constituindo assim um SPOF. Isto sendo apenas uma invasão por parte de alguém que deseja somente "navegar" na internet, ou, uma invasão cujo objetivo é roubar informações vitais da empresa.

O primeiro passo para implementar alguma segurança em ambientes assim é saber quando e quem está acessando a nossa LAN. É neste ponto que a integração entre servidor DHCP e DNS se faz útil. Além dele registrar todas as requisições no syslog (/var/log/syslog), o DNS irá manter ativa uma tabela dinâmica com os endereços IP de todas as máquinas que estiverem usando um dos endereços fornecidos pelo range do DHCP de nossa rede.

Vamos às configurações!

Instalando os pacotes necessários

No Debian temos a vantagem de ter a maioria dos pacotes disponíveis para Linux já pré-compilados no formato *.deb. Este fato nos poupa horas de trabalho e ajuda muito na administração da rede. Vejamos os pacotes a serem instalados para configurarmos nosso servidor integrado.
  • dhcp3-server
  • bind9

Podemos fazer da seguinte forma:

# apt-get install bind9 dhcp3-server

Ao final deste processo o dhcp não estará ainda configurado para escutar a placa de rede secundária (se o servidor for o gateway da rede, então será indispensável o uso de duas placas de rede). Podemos resolver esta questão dando o seguinte comando:

# dpkg-reconfigure dhcp3-server

Coloque o nome da interface de rede que irá escutar as requisições (eth0 ou eth1, enfim, a que estiver destinada à rede interna). Vá para os próximos passos e pronto!

É normal dar um erro nesta etapa, afinal, seu arquivo dhcpd.conf ainda não está com as configurações e, talvez, o seu arquivo interfaces ainda não esteja configurado para "levantar" a placa de rede que vai escutar a LAN. Vamos alterar agora o arquivo interfaces:

# vi /etc/network/interfaces

#The loopback network interface - Rede loopback
auto lo
iface lo inet loopback

#The primary network interface - Rede Wan
allow-hotplug eth0
iface eth0 inet dhcp

#The secondary network interface - Rede Lan
allow-hotplug eth1
iface eth1 inet static
address 192.168.0.1
netmask 255.255.255.0

Configurando desta forma temos o nosso servidor já com a previsão de ser um ISP (Internet Service Provider). Trataremos deste assunto por último.

Agora, por questão de segurança, paramos ambos os serviços:

# /etc/init.d/dhcp3-server stop

Vai dar um erro aqui. Mas como dissemos, é algo normal neste ponto da configuração.

# /etc/init.d/bind9 stop

Este não costuma apresentar nenhum erro, mas se ocorrer não se preocupe.

    Próxima página

Páginas do artigo
   1. Entendendo a utilidade de integrar a rede
   2. Criando o arquivo dhcpd.conf
   3. Editando o arquivo named.conf.local
   4. Criando os arquivos db
   5. Criando um script simples de compartilhamento de internet
Outros artigos deste autor

Instalando scanner HP PSC 1500 series e outros no Debian Etch

Leitura recomendada

Criando um banco de dados para obter ajuda do sistema

FwLogWatch - Analisando Registros do IPtables

Tutorial de instalação LTSP 4.2 (Linux Terminal Server Project) no OpenSuSE 10.2

Mini-howto de configuração e utilização do aptitude no Debian

Recuperando imagem ISO com falha usando JIGDO

  
Comentários
[1] Comentário enviado por Credmann em 20/08/2009 - 07:04h

O mesmo pode ser feito no Ubuntu. Mas com uma única diferença: o AppArmour só permite que o Bind escreva em `/var/cache/bind/'. Assim sendo:

zone "teste.local" {
type master;
file "/var/cache/bind/db.teste";
allow-update { 192.168.0.1;key "rndc.key";};
};

zone "0.168.192.in-addr.arpa" {
type master;
file "/var/cache/bind/db.0.168.192.in-addr.arpa";
allow-update { 192.168.0.1;key "rndc.key";};
};

[2] Comentário enviado por acollucci em 20/08/2009 - 08:40h

Cara vou aplicar isso hoje, estava procurando uma conf desse tipo para o debian lenny, favoritos valeu!!!


[3] Comentário enviado por ErhnamDjinm em 20/08/2009 - 09:05h

Uma informação importante.
Caso trabalhem em redes classe A ou B, no arquivo de zona reversa do Bind, o IP deve aparecer todo invertido.
Por exemplo, ao invés de

$ORIGIN 0.168.192.in-addr.arpa.
1 PTR server.teste.local.

Deve ficar

$ORIGIN 168.192.in-addr.arpa.
1.0 PTR server.teste.local.

[4] Comentário enviado por cl2b2r em 20/08/2009 - 10:30h

E na rede "A" ficaria:

$ORIGIN 168.in-addr.arpa.
1.0.192 PTR server.teste.local.

ou

$ORIGIN 10.in-addr.arpa.
1.0.0 PTR server.teste.local.

Certo? Quase não trabalho com rede "A" ou "B". Então fica aí a pergunta.

[5] Comentário enviado por acollucci em 26/08/2009 - 11:33h

Opa so tem dois errinhos de digitação no dhcpd.conf o certo é rndc.key e nao o rdc.key na linha do include.

e no named.conf.local, e rndc.key e nao rndc.keys. Mas ja ajudou d+ valeu!!!!!

[6] Comentário enviado por cl2b2r em 26/08/2009 - 13:17h

Valeu pela correção! Este tipo de coisa pode realmente impedir o servidor de funcionar.

[7] Comentário enviado por renanpro03 em 07/06/2010 - 15:23h

Olá Amigo!
Mto bom seu tutorial, consegui configurar certinho como explicou mas estou tendo um erro quando mando o WEBMIN verificar as configurações do DNS
Ele retorna essa msg.

Os seguintes erros foram encontrados no arquivo /etc/bind/named.conf de configuração do BIND ou arquivos referenciados pela zona ..


/etc/bind/db.100.168.192.in-addr.arpa:3: ignoring out-of-zone data (1)
zone 100.168.192.in-addr.arpa/IN: has 0 SOA records
zone 100.168.192.in-addr.arpa/IN: has no NS records
zone 100.168.192.in-addr.arpa/IN: not loaded due to errors.
_default/100.168.192.in-addr.arpa/IN: bad zone

Já verifiquei o named.conf, creio que seja algum erro no db, mas conferi já varias vezes e esta tudo ok... alguem poderia me ajudar ?

[8] Comentário enviado por cl2b2r em 07/06/2010 - 20:21h

Renan
Te enviei um email que pode ajudar a solucionar o problema, tenta seguir o que está lá.

Boa sorte! ;)

[9] Comentário enviado por red_slack em 16/08/2010 - 23:05h

ta dando esse erro e não inicia o bind
Stoppong domain name service...: bind9rncd: connect failed: 127.0.0.1#953 connection refused.
Starting domain name service...: bind9 failed!

o failed bem vermelhão... o dhcp ta rodando normal o problema é só esse ai do bind, alguem poderia da uma dica do que seja...

cl2b2r, você tem o conteudo do email enviado para o Renan?? é possivel me enviar ele também?
ailton_fernandez@yahoo.com.br
Desde já obrigado

[10] Comentário enviado por acollucci em 17/08/2010 - 08:34h

oi red_slack

eu ja havia postado a solução para esse problema antes

veja

dhcpd.conf o certo é rndc.key e nao o rdc.key na linha do include.

e no named.conf.local, e rndc.key e nao rndc.keys.

tenta corrigir isso.

até!

[11] Comentário enviado por red_slack em 17/08/2010 - 09:47h

olá acollucci, tranquilo??

Me atentei só no include do dhcpd, não tinha visto esse ai do named um "s" a mais faz diferença e muito.. heheh muito obrigado cara

[12] Comentário enviado por acollucci em 17/08/2010 - 11:07h

tranquilo! Precisando e so falar!

[13] Comentário enviado por cl2b2r em 17/08/2010 - 19:21h

Oi red slack
Realmente o acollucci tem razão! Eu na hora de postar errei na digitação de uma letra e por isso está dando este erro. Faz a modificação que deverá funcionar. Depois posta o resultado aqui valeu? ;)

[14] Comentário enviado por red_slack em 17/08/2010 - 21:41h

Hoje foi um dia meio corrido para mim, não deu para testar todas as estações, mas em duas funcionaram normalmente, se funcionou em duas é para funcionar em todas, certo??? Um detalhe que queria fazer é que todas as estações ficassem configuradas em DHCP e pegasse o mesmo IP, não sei como nessas duas esta funcionando assim 192.168.10.1 e 192.168.10.41, reiniciei varias vezes e mesmo no limite dos 10 minutos (600s) renova o IP para o mesmo isso é otimo, isso via cabo, agora aqui em casa que uso via Wireless meu IP é o 10.249 e só pega o 10.4, não entendi isso, alguma explicação logica?

##############
###dhcpd.conf####
##############
ddns-update-style none;
ddns-updates on;
ddns-domainname "teste.local";
ddns-rev-domainname "10.168.192.in-addr.arpa";

include "/etc/bind/rndc.key";

zone teste {
primary 127.0.0.1;
key rndc-key;
}
zone 10.168.192.in-addr.arpa {
primary 127.0.0.1;
key rndc-key;
}

option domain-name "teste.local";
option domain-name-servers 208.67.222.222,208.67.220.220;

default-lease-time 600;
max-lease-time 7200;

authoritative;

log-facility local7;

subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.1 192.168.10.249;
option routers 192.168.10.250;
}
################################

###################
####named.conf.local####
###################
include "/etc/bind/rndc.key";

zone "teste.local" {
type master;
file "/etc/bind/db.teste";
allow-update { 192.168.10.250;key "rndc.key";};
};

zone "10.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.10.168.192.in-addr.arpa";
allow-update { 192.168.10.250;key "rndc.key";};
};
#################################

###########
###db.teste###
###########
$ORIGIN .
$TTL 43200 ; 12 hours
teste.local IN SOA server.teste.local. root.teste.local. (
1 ; serial
28800 ; refresh ( 8 hours )
14400 ; retry ( 4 hours )
3600000 ; expire ( 5 weeks 6 days 16 hours )
86400 ; minimum ( 1 day )
)
NS server.teste.local.
$ORIGIN teste.local.
server A 192.168.10.250
=======================================

##########################
####db.10.168.192.in-addr.arpa####
##########################
$ORIGIN .
$TTL 43200 ; 12 hours
1 IN SOA server.teste.local. root.teste.local. (
1 ; serial
28800 ; refresh ( 8 hours )
14400 ; retry ( 4 hours )
3600000 ; expire ( 5 weeks 6 days 16 hours )
86400 ; minimum ( 1 day )
)
NS server.teste.local.
$ORIGIN 10.168.192.in-addr.arpa.
1 PTR server.teste.local.
==================================================

No local desse TESTE não poderia colocar o nome da empresa??? isso aparece onde??? e como ficaria a sintatese????

Vocês já colocaram o NoCatAuth pra rodar??? já estou com ele instalado porém não configurado e to com umas duvidas, a primeira ele funciona com o Squid + Transparent???

Por enquanto é só depois vem mais .... hehheheh

[15] Comentário enviado por red_slack em 18/08/2010 - 09:44h

SIm, toda a rede cabeada pega o DHCP com o IP destinado a essa maquina, porém toda a rede wireless pega ip's aleatorios.
criei /etc/ethers com todos os IP/MAC, vocês poderia me ajudar com mais esse assunto?? Como uso exatamente o ARP?

[16] Comentário enviado por acollucci em 19/08/2010 - 09:02h

Opa

No lugar do TESTE, vc deve colocar o dominio da empresa, ou o nome dela etc..

Quanto a renovação de IP, o Windows (nao tenho essa informação sobre os demais SOs) tenta sempre renovar com o mesmo ip anterior, caso ele nao esteja disponivel ele pega outro.

Para fixar um IP no DHCP

use:

host NOME_DO_HOST {
hardware ethernet XX:XX:XX:XX:XX:XX; #MAC DO HOST
fixed-address XXX.XXX.XXX.XXX; #IP DO HOST
}

quanto as outras perguntas seja mais especifico, pq nao consegui entender rsrs. e tipo use o menu embaixo da pagina contribuir com pergunta, pq se vc fizer pergunta pelo artigo, so quem ja comentou ou quem estiver lendo o artigo na hora vai saber... A não ser claro que a pergunta seja referente ao artigo.

att,

[17] Comentário enviado por fagl22 em 20/09/2010 - 14:19h

Prezado cl2b2r,

Gostaria de sua ajuda por gentiliza para solicionar este impasse q estou tendo:

O Primeiro é esse logo abaixo informado pelo comando TAIL:

dhcpd self-test failed. Please fix the config file.
The error was:
Internet Systems Consortium DHCP Server V3.1.1
Copyright 2004-2008 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/
Can't open /etc/bind/rndc.key: No such file or directory

E o Segundo é que esta dando esse erro quando eu comento da linha do include "/etc/bind/rndc.key" até antes do option domain-name "teste.local" pelo TAIL ele informa o seguinte:

Copyright 2004-2008 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/
Internet Systems Consortium DHCP Server V3.1.1
Copyright 2004-2008 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/
Wrote 0 leases to leases file.

No subnet declaration for 1 (0.0.0.0).
** Ignoring requests on 1. If this is not what
you want, please write a subnet declaration
in your dhcpd.conf file for the network segment
to which interface 1 is attached. **

Agradeço desde já a sua atenção;
Atenciosamente,
Fábio

[18] Comentário enviado por R.S.P Andre em 28/11/2010 - 12:57h

Cara gostaria de lhe agradecer pelo excelente artigo.
Acabei de testar e implantar e esta 100%.

Meus parabéns pelo artigo que esta muito bem explicado.

ABS


Contribuir com comentário