Bind consultando zonas em base LDAP

A ideia principal do artigo é a centralização do ambiente em uma base única, no caso uma das melhores, o LDAP. Imaginemos o cenário, uma empresa denominada Acme Lun fará seu atual servidor de DNS(Bind), em vez de consultar as zonas em arquivos locais (.db), consultar em uma base LDAP.

[ Hits: 18.667 ]

Por: Evandro Nabor em 17/02/2011


Introdução



A ideia principal do artigo é a centralização do ambiente em uma base única, no caso uma das melhores o Ldap. Imaginemos o cenário, uma empresa denominada Acme Lun, fará seu atual servidor de DNS(Bind), em vez de consultar as zonas em arquivos locais (.db), consultar em uma base LDAP.

Partirei do princípio que já temos um servidor LDAP operante e um DNS Bind com suas zonas prontas, e mais um servidor no qual faremos o novo Bind. Utilizei Debian 5 em todas as maquinas.

Compilando o BIND com suporte ao LDAP

O bind dos repositórios não vem com suporte ao LDAP, então não adianta instalá-lo com apt-get que este não funcionará, portanto teremos de compilar do fonte ativando então o suporte a LDAP.

Comecemos baixando o fonte do bind9 e o back-end bind-ldap.

Bind9:
ftp://ftp.epix.net/pub/isc/bind9/9.7.1rc1/bind-9.7.1rc1.tar.gz

Back-End ldap sdb:
http://bind9-ldap.bayour.com/bind-sdb-ldap-1.0.tar.gz

# cd /root
# mkdir -p bind/tars
# cd bind/tars
# wget
ftp://ftp.epix.net/pub/isc/bind9/9.7.1rc1/bind-9.7.1rc1.tar.gz
# wget http://bind9-ldap.bayour.com/bind-sdb-ldap-1.0.tar.gz
# tar -zxvf bind-sdb-ldap-1.0.tar.gz
# tar -zxvf bind-9.7.1rc1.tar.gz
# mv bind-* ..


Copiando os arquivos necessários para a compilação com suporte a LDAP:

# cd /root/bind-sdb-ldap-1.0
# cp ldapdb.c ../bind-9.7.1rc1/bin/named/
# cp ldapdb.h ../bind-9.7.1rc1/bin/named/include/


Agora faremos alterações em alguns arquivos antes de compilar:

# cd /root/bind/bind-9.7.1rc1/bin/named/
# vim
(rules!) Makefile.in

Procure pelas linhas e altere-as deixando como mostrado abaixo:

DBDRIVER_OBJS = ldapdb.@O@
DBDRIVER_SRCS = ldapdb.c
DBDRIVER_INCLUDES = -I/usr/local/include
DBDRIVER_LIBS = -L/usr/local/lib -lldap -llber -lresolv

No mesmo diretório do Makefile.in, edite o arquivo main.c.

Procure pela linha que contem /* #include "xxdb.h" */ e adicione logo abaixo dela #include <ldapdb.h>.

No mesmo arquivo procure a linha /* xxdb_init(); */ substitua por ldapdb_init();

Por último procure a linha /* xxdb_clear(); */ e substitua por ldapdb_clear();

Salve o arquivo e feche-o.

Agora estamos prontos para compilar o bind com suporte a nova base.

Antes de iniciarmos certifique-se que tem os pacotes necessários instalados:

# apt-get install gcc make libldap2-dev openssl libssl-dev

Feito isso proceda:

# cd /root/ bind-9.7.1rc1/
# ./configure --with-openssl=/usr --disable-ipv6
# make
# make install


Ok, temos o bind instalado, agora precisamos acertar configurações e diretórios.

Sempre preferi trabalhar com o bind no conceito de chroots para aumentar a segurança, então, vamos configurar a gaiola.

    Próxima página

Páginas do artigo
   1. Introdução
   2. Criando a chroot
   3. Montando as zonas
Outros artigos deste autor

Sincronizando Bases OpenLDAP e Active Directory

Leitura recomendada

Conheça a distribuição FAN Nagios

Instalando o SoapUI no Ubuntu

O papel social do software livre

Como instalar e usar o MS Office 97 no Linux

Editando trilhas de GPS no formato de arquivo GPX no Linux

  
Comentários
[1] Comentário enviado por rrossilva em 17/02/2011 - 16:02h

Seu artigo apareceu na hora certa meu caro. Estava procurando uma solução assim para um servidor de DNS novo que estou montando. Vou instalar tudo amanhã de manhã junto com meu server de hospedagem novo e posto um feedback aqui.
Parabéns pelo artigo...

[2] Comentário enviado por removido em 17/02/2011 - 16:31h

Muito bom artigo. Legal mesmo !


Abraço.

[3] Comentário enviado por rogeriojlle em 17/02/2011 - 20:46h

"O bind dos repositórios não vem com suporte ao LDAP"
No Opensuse o Bind conversa com o LDAP, voce inclusive configura tudo vai YasT.

[4] Comentário enviado por grandmaster em 23/02/2011 - 08:05h

Muito bom o artigo.
---
Renato de Castro Henriques
CobiT Foundation 4.1 Certified ID: 90391725
ITILv3 Foundation Certified
http://www.renato.henriques.nom.br


[5] Comentário enviado por dexter25 em 11/01/2012 - 17:17h

Olá, Evandro

Primeiramente, parabéns pelo artigo, realmente muito bom.

E se você puder, gostaria de tirar uma dúvida, estou configurando pela primeira vez um servidor DNS, fiz toda configuração padrão, mais quando vou tentar dar um restart ou stop no bind, ele me devolve esse erro :

* Stopping domain name service... bind9 rndc: connect failed: 127.0.0.1#953: connection refused


Segui o seu tutorial, gerei as chaves, coloquei no arquivo rndc, mais se eu coloco as opções options e server, ele reclama, só aceitando o key "rndckey" , mais somente com ele, continua dando erro.

Se puder me ajudar, agradeço demais.


Contribuir com comentário