A integração dos serviços de dhcp e dns é um recurso muito útil em uma rede. Pois minimiza o trabalho do administrador de redes e maximiza seu controle e agilidade do serviço.
Para que essa integração seja feita precisamos criar uma chave de segurança comum aos dois serviços para que eles possam se comunicar e trocar informações.
1 - Gerando a chave de segurança
# dnssec-keygen -a HMAC-MD5 -b 128 -n USER chave
O parâmetro -b 128 referece ao tamanho da chave em bits.
O comando acima produzirá no diretório corrente dois arquivos:
Kchave.+157+53416.key
Kchave.+157+53416.private
Execute o comando cat no arquivo .key
# cat Kchave.+157+53416.key
chave. IN KEY 0 2 157 mYWhWjs2haILAfiRq/ciyA==
A chave será a seqüencia de caracteres a seguir: mYWhWjs2haILAfiRq/ciyA==
Com a chave em mãos vamos a configuração do servidor DHCPD.
2 - Configuração do servidor DHCPD
Edite o arquivo dhcpd.conf
# vim /etc/dhcpd.conf
option domain-name-servers 10.7.0.1, 200.22.22.22;
default-lease-time 432000;
max-lease-time 864000;
log-facility local7;
# parametros de atualização
ddns-updates true;
ddns-update-style interim;
ddns-ttl 86400;
# Chave de atualização dinâmica nas zonas de dns
key nomedachave {
algorithm HMAC-MD5;
secret "mYWhWjs2haILAfiRq/ciyA==";
};
zone dominio.com.br. {
primary 192.168.2.1;
key nomedachave;
}
zone 2.168.192.in-addr.arpa. {
primary 192.168.2.1;
key nomedachave;
}
subnet 10.7.0.0 netmask 255.255.255.0 {
range 10.7.0.20 10.7.0.200;
default-lease-time 256000;
max-lease-time 256000;
option broadcast-address 10.7.0.255;
one-lease-per-client on;
option domain-name "dominio.com.br";
option routers 10.7.0.1;
option subnet-mask 255.255.255.0;
option netbios-name-servers 10.7.0.1;
}
Salve o arquivo e saia. (:wq)
Pronto, arquivo de configuração dhcp com as informações da chave de segurança e as zonas de dns que deveram ser atualizadas dinamicamente.
3 - Configuração do servidor DNS
Vamos editar o arquivo de configuração named.conf responsável pelas zonas de dns.
# vim /etc/named.conf
options {
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
};
//
// a caching only nameserver config
//
controls {
inet 127.0.0.1 port 953 allow { 127.0.0.1; } keys { nomedachave; };
};
key nomedachave {
algorithm hmac-md5;
secret "tR5z4MLWsOppFQi0jFu9YQ==";
};
zone "." IN {
type hint;
file "named.ca";
};
zone "localdomain" IN {
type master;
file "localdomain.zone";
allow-update { none; };
};
zone "localhost" IN {
type master;
file "localhost.zone";
allow-update { none; };
};
zone "dominio.com.br" IN {
type master;
notify no;
check-names ignore;
file "dominio.com.br";
allow-update { key nomedachave; };
};
zone "2.168.192.in-addr.arpa" IN {
type master;
notify no;
check-names ignore;
file "192.168.2.1";
allow-update { key nomedachave; };
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
allow-update { none; };
};
zone "255.in-addr.arpa" IN {
type master;
file "named.broadcast";
allow-update { none; };
};
zone "0.in-addr.arpa" IN {
type master;
file "named.zero";
allow-update { none; };
};
Pronto, salve e saia. (:wq)
4 - Template dos arquivos de nomes e reverso
# vim /var/named/dominio.com.br
------------------------- INICIO
$ORIGIN .
$TTL 86400 ; 1 day
dominio.com.br IN SOA nomedohost.dominio.com.br. root.nomedohost.dominio.com.br. (
2009021360 ; serial
10800 ; refresh (3 hours)
900 ; retry (15 minutes)
604800 ; expire (1 week)
86400 ; minimum (1 day)
)
NS nomedohost.dominio.com.br.
A 192.168.2.1
$ORIGIN dominio.com.br.
------------------------------ FIM
#vim /var/named/192.168.2.1
------------------------------- INICIO
$ORIGIN .
$TTL 86400 ; 1 day
2.168.192.in-addr.arpa IN SOA nomedohost.dominio.com.br. root.nomedohost.dominio.com.br. (
2007057177 ; serial
10800 ; refresh (3 hours)
900 ; retry (15 minutes)
604800 ; expire (1 week)
86400 ; minimum (1 day)
)
NS nomedohost.dominio.com.br.
$ORIGIN 2.168.192.in-addr.arpa.
1 PTR nomedohost.dominio.com.br.
------------------------------- FIM
5 - Depois de editado os arquivos de configuração vamos reinicializar os serviços e monitorá-los.
Restartando o seviço de dhcp
# service dhcpd restart
Restartando o serviço de DNS
# service named restart
OBS:
Para que o bind tenha permissão para atualizar os arquivos das zonas de dns precisamos darmos permissão de escrita para o grupo named conforme exemplo abaixo:
# chmod 0770 /var/named
Vendo as permissões da pasta
# ls -l /var
drwxrwx--- 4 root named 4096 Nov 7 10:51 named
6 - Monitoramento
Vamos agora monitorar para termos certeza que a integração está funcionando.
Para isso execute o seguinte comando abaixo:
# tail -f /var/log/messages
Vá até uma estação e execute o seguinte comando:
Em windows:
c:\ ipconfig /release
c:\ ipconfig /renew
Em linux:
# service network restart
# /etc/init.d/network restart
Após executado os comandos acima nas estações clientes, verifique no arquivo de log e também verifique a pasta named para ver se os arquivos de controle foram criados:
# ls -l /var/named
Executando o comando acima deveram ser listados os arquivo com a extensão .jln
-rw-r--r-- 1 named named 327248 Nov 7 10:36 192.168.2.1.jnl
-rw-r--r-- 1 named named 327248 Nov 7 10:36 dominio.com.br.jnl
Blog com conteúdo sobre os projetos que tenho trabalhado: SEGURANÇA DA INFORMAÇÃO, VOIP COM ASTERISK, VIRTUALIZAÇÃO DE SERVIDORES VMWARE SERVER, ESX, EMAIL, FIREWALL, WEB-PROXIES, VPN, MIGRAÇÕES, LDAP, SAMBA, AD, ORACLE, MySQL, RADIUS, DHCP, DNS, PHP, C++, AUTENTICAÇÃO WIFI, CAPTIVEPORTAL, SATELITE, NETWORK...
Pesquisar neste blog
Assinar:
Postar comentários (Atom)
4 comentários:
Parabéns pelo artigo. Onde eu posso ver que relacionou o IP fornecido com o dhcp e o dns? Essa informação fica guardada em algum arquivo, tipo o arquivo hosts?
Olá Ueider,
você pode ver no próprio arquivo da zona de dns.
A minha chave eu tinha gerado novamente e estava dando problema...obrigado, funcionou blz.
Eu tinha renovado a chave e estava diferente nos dois arquivos. Olhei lá na zona de dns igual vc disse e está ok... Muito obrigado.
Postar um comentário