Anda di halaman 1dari 6

Configurando um servidor DNS com atualizacao automatica via

DHCP
Joao Medeiros (joao.fatern@gmail.com)

Introdu
c
ao

Neste tutorial iremos descrever a configuracao de um servidor DNS para uma rede local com atualizacao
autom
atica via DHCP utilizando o Ubuntu Server 8.04. Acreditamos que o procedimento e identico
para a versao 8.10.
A configuracao e relativamente simples, mas existem muitos detalhes que dever ser seguidos `a risca.
O tutorial foi baseado em diversas fontes, vejas as referencias [1]-[4]
Nos comandos para edicao de arquivos a seguir, estamos usando o vim. Se desejar, utilize algum
outro editor como o nano por exemplo.

Configura
c
ao do DNS

2.1

Instalac
ao do Bind

Instale o BIND9, que e o servidor DNS no linux.


root@server:~# apt-get install bind9
Observe que ele deve ter criado o arquivo /etc/bind/rndc.key contendo a chave necessaria para
a atualizacao din
amica do DNS pelo servico DHCP. Ela sera usada mais adiante.

2.2

Configurac
ao da chave de autenticac
ao

Nas distribuicoes baseadas no Debian, o arquivo a ser editado e o /etc/bind/named.conf.


root@server:~# vim /etc/bind/named.conf
Acrescente o conte
udo a seguir logo abaixo da linha include /etc/bind/named.conf.options;
include "/etc/bind/rndc.key";
controls {
inet 127.0.0.1 allow { localhost; } keys { rndc-key; };
};
Observe que o arquivo /etc/bind/rndc.key deve ter sido criado durante a instalacao do bind9.
Se ele n
ao existir, execute o comando rndc-confgen -a.

2.3

Configurac
ao das zonas

Edite agora o arquivo /etc/bind/named.conf.local


root@server:~# vim /etc/bind/named.conf.local
e acrescente o conte
udo

#Zona direta
zone "lab4.fatern" {
type master;
file "/var/lib/bind/lab4.fatern.db";
allow-transfer { 192.168.3.1; };
allow-update { key "rndc-key"; };
notify yes;
};
# Zona reversa. Substitua 0.68.9 com seu endereco de rede
# usando a notacao inversa
zone "3.168.192.in-addr.arpa" {
type master;
file "/var/lib/bind/rev.3.168.192.in-addr.arpa";
allow-update { key "rndc-key"; };
notify yes;
};
No caso do Ubuntu Server existem duas partes cruciais aqui: o termo allow-update que informa
ao Bind que a zona pode ser atualizada pelo DHCP e a localizacao dos arquivos de zonas. O AppArmour espera que os arquivos de zonas fiquem localizados no diret
orio /var/lib/bind, se voce
coloc
a-los no /etc/bind (que e onde normalmente algumas pessoas colocam) ter
a problemas relacionados a permissoes.

2.4

Configurac
ao dos arquivos de zonas

Falta ainda acrescentar os arquivos de zonas propriamente ditos. Crie o arquivo da zona direta com o
comando
root@server:~# vi /var/lib/bind/lab4.fatern.db
e acrescente o conte
udo abaixo:
$TTL 86400
lab4.fatern.
IN
SOA
2009031601 3H 15M 1W 1D
)
lab4.fatern. IN NS server.
server A 192.168.3.1

server.lab4.fatern. server.lab4.fatern. (

Crie o arquivo da zona inversa


root@server:~# vim /var/lib/bind/rev.3.168.192.in-addr.arpa
E acrescente as linhas abaixo
$TTL 86400
3.168.192.in-addr.arpa. IN SOA server.lab4.fatern. server.lab4.fatern. (
2009031601 3H 15M 1W 1D
)
3.168.192.in-addr.arpa. IN NS 192.168.3.1.
1 PTR server.lab4.fatern.

2.5

Configurac
ao do log do DNS

A configuracao do DNS tem muitos detalhes, o que torna o procedimento passvel de erros. Assim,
e interessante ativarmos o log do proprio DNS para nos auxiliar na deteccao de eventuais problemas
durante a configuracao.
2

Para ativarmos o logging do DNS, edite o arquivo /etc/bind/named.conf


root@server:~# vim /etc/bind/named.conf
E acrescente o conte
udo abaixo, logo apos a secao controls adicionada anteriormente.
logging {
channel update_debug {
file "/var/log/named/update-debug.log" versions 3 size 10m;
severity debug 3;
print-category yes;
print-severity yes;
print-time
yes;
};
channel security_info
{
file "/var/log/named/named-auth.info" versions 3 size 10m;
severity info;
print-category yes;
print-severity yes;
print-time
yes;
};
//descomente a linha abaixo para resolu
c~
ao de problemas
category update { update_debug; };
category security { security_info; };
category lame-servers { null; };
};
Crie o diret
orio de logs para o named e altere as permissoes de maneira que o bind possa escrever
la
root@server:/var/log# mkdir /var/log/named
root@server:/var/log/named# chown bind /var/log/named/

Configura
c
ao do DHCP

Vamos alterar o DHCP de modo que ele efetue as atualizacoes no servidor DNS a medida que fornecer
IPs para maquinas clientes.
root@server:~# vim /etc/dhcp3/dhcpd.conf
Altere o arquivo de maneira a ficar como est
a abaixo. A secao referente a chave rndc-key foi copiada
do arquivo /etc/bind/rndc.key. Uma outra opcao seria colocarmos a opcao include /etc/bind/rndc.key,
mas teramos que alterar as pemiss
oes de leitura do arquivo para 644.

key "rndc-key" {
algorithm hmac-md5;
secret "2nUrLAzEfUmqIhNNNdFnJA==";
};

zone lab4.fatern. {
primary 192.168.3.1;
key rndc-key;
}
zone 3.168.192.in-addr.arpa. {
primary 192.168.3.1;
key rndc-key;
}

option domain-name "lab4.fatern";


option domain-name-servers server.lab4.fatern;
# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;
ddns-update-style interim;
ddns-domainname "lab4.fatern.";
use-host-decl-names on;
allow client-updates;
default-lease-time 600;
max-lease-time 7200;
authoritative;
subnet 192.168.3.0 netmask 255.255.255.0 {
ddns-updates on;
range 192.168.3.20 192.168.3.100;
option routers 192.168.3.1;
option domain-name-servers 192.168.3.1;
option broadcast-address 192.168.3.255;
}

Configura
c
ao do /etc/resolv.conf no servidor

Altere o arquivo /etc/resolv.conf


root@server:~# vim /etc/resolv.conf
Deixe-o com o conte
udo
search lab4.fatern
nameserver 192.168.3.1
Normalmente o cliente dhcp do Ubuntu sobreescreve o /etc/resolv.conf. Podemos evitar que ele seja
sobre-escrito durante o boot de varias maneiras, veja a referencia [5]. O procedimento que adotamos
foi o seguinte: crie o arquivo /etc/dhcp3/dhclient-enter-hooks.d
root@server:~# vim /etc/dhcp3/dhclient-enter-hooks.d/dhclient-script
Insira o seguinte texto nele

make_resolv_conf() {
:
}
A funcao make resolv conf e chamada pelo cliente DHCP e n
ao fara nada.

Teste e resoluc
ao de problemas

Reinicie o servidor DNS e DHCP


root@server:~# /etc/init.d/bind9 restart
root@server:~# /etc/init.d/dhcp3-server restart
Abra um terminal separado e verifique os arquivos de logs com os comandos
root@server:/var/log# tail /var/log/syslog
root@server:/var/log# tail /var/log/named/named-auth.info
root@server:/var/log# tail /var/log/named/update-debug.log
Se quiser, acrescente a opcao -f para ver as atualizacoes nos arquivos de maneira autom
atica.
Inicie uma maquina cliente (Veja que a placa de rede dela deve estar no modo rede interna no
VirtualBox) e observe se o DNS foi atualizado. Liste o conte
udo do diret
orio do arquivo de zonas
root@server:/var/lib/bind# ls -ltr /var/lib/bind/
total 16
-rw-r--r-- 1 bind bind 1324 2009-03-14 17:49 rev.3.168.192.in-addr.arpa.jnl
-rw-r--r-- 1 bind bind 1585 2009-03-14 17:49 lab4.fatern.db.jnl
-rw-r--r-- 1 bind bind 433 2009-03-14 18:00 rev.3.168.192.in-addr.arpa
-rw-r--r-- 1 bind bind 519 2009-03-14 18:00 lab4.fatern.db
Observe que foram criados arquivos com extensao .jnl. Os arquivos originais tambem foram alterados:
root@server:/var/lib/bind# cat /var/lib/bind/lab4.fatern.db
$ORIGIN .
$TTL 86400
; 1 day
lab4.fatern
IN SOA server.lab4.fatern. server.lab4.fatern. (
2009031612 ; serial
10800
; refresh (3 hours)
900
; retry (15 minutes)
604800
; expire (1 week)
86400
; minimum (1 day)
)
NS
server.
$ORIGIN lab4.fatern.
$TTL 300
; 5 minutes
fatern-desktop
A
192.168.3.100
TXT
"00bf0b062b0d647f73b7b6d018f865b66a"
$TTL 86400
; 1 day
server
A
192.168.3.1
$TTL 300
; 5 minutes
xp32
A
192.168.3.99
TXT
"31b3bac0a214cd4b37e1737007d0bc7cf3"
As nossas configuracoes originais permanecem, mas surgiram outras criadas pela atualizacao dinamica.

5.1

Alterac
ao manual em Zonas din
amicas

Como vimos na secao anterior, os arquivos originais das zonas sao atualizados dinamicamente. Se, por
algum motivo, for necessario alterar manualmente algum arquivo de zonas podemos usar o comando
rndc freeze para congelar a zona.
root@server:~# rndc freeze lab4.fatern
Para descongelar a zona apos as alteracoes manuais, utilize o comando
root@server:~# rndc thaw lab4.fatern

Conclus
oes

A configuracao do DNS com atualizacao autom


atica e relativamente simples. Porem, sao necessarios
alguns cuidados especiais devido a quantidade de detalhes necessarios para a configuracao.

Refer
encias
[1] NEMETH, Evi. Linux Administration Handbook. 2. Ed. Editora: Prentice Hall, 2007
[2] http://www.void.gr/kargig/blog/2006/12/21/dynamic-hostname-updates-with-dhcpd-bind, acessado em 14/03/2009.
[3] http://blogger.ziesemer.com/2008/10/linux-lan-dchp-dynamic-dns.html,
14/03/2009.

acessado

[4] http://www.vivaolinux.com.br/artigo/Configurando-DHCP-com-DNS-(Bind9)-na-rede-localDebian-Linux, acessado em 14/03/2009.


[5] http://www.cyberciti.biz/faq/dhclient-etcresolvconf-hooks, acessado em 14/03/2009.

em

Anda mungkin juga menyukai