
Linux: Integrando BIND do Debian Lenny 5.0 com Active Directory do Windows 2003 Server
Uma dor de cabeça tremenda! É assim que classifico os depoimentos lidos em fóruns e listas de discussão quando o assunto é integrar o BIND (servidor de nomes – DNS) do Linux com o Active Directory do Windows 2003 Server. Eu realmente levei um bom tempo para conseguir cumprir esta tarefa, mas o mais interessante é que o processo de configuração é extremamente simples, porém não considero que o processo abaixo descrito possui as considerações de segurança mínima.
Para executar as configurações abaixo utilizei o ambiente descrito no post: Bind (DNS), Apache, DNS Cache, DDNS e integração com Active Directory.
Configurando a atualização dinâmica (dynamic update) no BIND
Lembrando que, em nosso ambiente, o Active Directory, cujo nome (hostname) é amoroso.bugre.local, está configurado para responder no IP 192.168.0.3. Já o servidor de nomes (DNS), que atende pelo nome zenon.bugre.local está configurado com o IP 192.168.0.2.
Vale ressaltar também que já fizemos a instalação do BIND no post Linux: Instalação do Bind, cache de DNS, logging e BindGraph no Ubuntu Intrepid Ibex (Ubuntu 8.10).
O primeiro passo é criar uma ACL, que em meu exemplo, chama-se WinAD no arquivo /etc/bind/named.conf.local. Após criarmos a ACL, então vamos editar as configurações da zona bugre.local, para que seja permitida a atualização, consulta e transferência de zona pelo servidor Windows 2003 com Active Directory. Depois vamos adicionar as mesmas regras na zona reversa. Abaixo segue o trecho do arquivo named.conf.local:
acl "WinAD" { 192.168.0.3; };
zone "bugre.local" {
type master;
file "/etc/bind/zonas/db.bugre.local";
allow-update {WinAD;};
allow-query {WinAD;};
allow-transfer {WinAD;};
};
zone "0.168.192.in-addr.arpa" {
type master;
notify no;
file "/etc/bind/zonas/db.192";
allow-update {WinAD;};
allow-query {WinAD;};
allow-transfer {WinAD;};
};
As principais configurações, ou seja, que irão influenciar a comunicação entre o Active Directory e o BIND estão em negrito.
Agora vamos configurar as zonas necessárias para que o Active Directory funcione corretamente:
zone "_msdcs.bugre.local" {
check-names ignore;
type master;
file "/etc/bind/adzonas/_msdcs.bugre.local";
allow-update {WinAD;};
allow-query {WinAD;};
allow-transfer {WinAD;};
};
zone "_tcp.bugre.local" {
check-names ignore;
type master;
file "/etc/bind/adzonas/_tcp.bugre.local";
allow-update {WinAD;};
allow-query {WinAD;};
allow-transfer {WinAD;};
};
zone "_udp.bugre.local" {
check-names ignore;
type master;
file "/etc/bind/adzonas/_udp.bugre.local";
allow-update {WinAD;};
allow-query {WinAD;};
allow-transfer {WinAD;};
};
zone "_sites.bugre.local" {
check-names ignore;
type master;
file "/etc/bind/adzonas/_sites.bugre.local";
allow-update {WinAD;};
allow-query {WinAD;};
allow-transfer {WinAD;};
};
zone "ForestDNSZones.bugre.local" {
check-names ignore;
type master;
file "/etc/bind/adzonas/ForestDNSZones.bugre.local";
allow-update {WinAD;};
allow-query {WinAD;};
allow-transfer {WinAD;};
};
zone "DomainDNSZones.bugre.local" {
check-names ignore;
type master;
file "/etc/bind/adzonas/DomainDNSZones.bugre.local";
allow-update {WinAD;};
allow-query {WinAD;};
allow-transfer {WinAD;};
};
Após termos todas as zonas configuradas em nosso named.conf.local, então agora precisamos criar o diretório das zonas, criar os arquivos de cada zona e por fim definir o usuário bind como proprietário da pasta e dos arquivos.
Serão necessários seis arquivos conforme a configuração acima. Abaixo segue a estrutura de cada um deles:
Arquivo /etc/bind/adzonas/DomainDNSZones.bugre.local:
$TTL 3D
DomainDNSZones.bugre.local. IN SOA zenon.bugre.local. root.zenon.bugre.local. (
2009050301;Serial
43200;Refresh
900;Retry
2419200;Expire
3600);Negative Cache TTL
@ IN NS zenon.bugre.local.
Arquivo /etc/bind/adzonas/ForestDNSZones.bugre.local:
$TTL 3D
ForestDNSZones.bugre.local. IN SOA zenon.bugre.local. root.zenon.bugre.local. (
2009050301;Serial
43200;Refresh
900;Retry
2419200;Expire
3600);Negative Cache TTL
@ IN NS zenon.bugre.local.
Arquivo /etc/bind/adzonas/_msdcs.bugre.local:
$ORIGIN .
$TTL 3D
_msdcs.bugre.local. IN SOA zenon.bugre.local. root.zenon.bugre.local. (
2009050301;Serial
43200;Refresh
900;Retry
2419200;Expire
3600);Negative Cache TTL
@ IN NS zenon.bugre.local.
$ORIGIN _msdcs.mundoclick.corp.
Arquivo /etc/bind/adzonas/_sites.bugre.local:
$ORIGIN .
$TTL 3D
_sites.bugre.local. IN SOA zenon.bugre.local. root.zenon.bugre.local. (
2009050301;Serial
43200;Refresh
900;Retry
2419200;Expire
3600);Negative Cache TTL
@ IN NS zenon.bugre.local.
$ORIGIN _sites.mundoclick.corp.
Arquivo /etc/bind/adzonas/_tcp.bugre.local:
$ORIGIN .
$TTL 3D
_tcp.bugre.local. IN SOA zenon.bugre.local. root.zenon.bugre.local. (
2009050301;Serial
43200;Refresh
900;Retry
2419200;Expire
3600);Negative Cache TTL
@ IN NS zenon.bugre.local.
$ORIGIN _tcp.mundoclick.corp.
Arquivo /etc/bind/adzonas/_udp.bugre.local:
$ORIGIN .
$TTL 3D
_udp.bugre.local. IN SOA zenon.bugre.local. root.zenon.bugre.local. (
2009050301;Serial
43200;Refresh
900;Retry
2419200;Expire
3600);Negative Cache TTL
@ IN NS zenon.bugre.local.
$ORIGIN _udp.mundoclick.corp.
Após criarmos os seis arquivos contendo as configurações das zonas de DNS para integração com o Active Directory, agora precisamos definir o proprietário do diretório com o comando:
# chown bind -R /etc/bind/adzonas
Não esqueça de fazer o mesmo para o diretório onde ficam as configurações de zona do domínio, que no exemplo está em /etc/bind/zonas.
Agora vamos reinicializar o BIND com o comando:
# /etc/init.d/bind9 restart
Verifique o arquivo de log /var/log/syslog se ocorreu algum problema:
# tail -f -n 30 /var/log/syslog | grep named
Se seguiu todos os passos então as informações contidas serão referentes ao carregamento correto das zonas DNS.
Agora no Windows 2003 Server você precisará “apontar” o DNS para o IP 192.168.0.2 e proceder com a instalação do Active Directory. Repare que após a configuração e a primeira reinicialização do Windows que na pasta /etc/bind/adzonas serão criados arquivos JNL que são arquivos onde são armazenadas as informações necessárias para que o Active Directory funcione corretamente.


3 Comentários
Cara, o que são esses $ORIGIN _udp.mundoclick.corp.???
É necessário mesmo?
Não não… comi bola… segue o domínio do tutorial. Vlw pelo toq.
Andre,
A ACL que vc pedi pra criar no aquivo named.conf.local dá erro na hora de reiniciar o bind, porém quando coloquei no named.conf funcionou.