Pular para o conteúdo

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.
Evandro Nabor evandronabor
Hits: 22.377 Categoria: Linux Subcategoria: Software
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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.

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
   1. Introdução
   2. Criando a chroot
   3. Montando as zonas

Sincronizando Bases OpenLDAP e Active Directory

Instalando o Slackware sem sofrimento (parte 1)

Ligando e abrindo somente uma aplicação no Linux

Finnix - Ótima distro para manutenção de sistemas

Controlando projetos com o Subversion

Instalando o Qemu + kqemu no Ubuntu Breezy 5.10

#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

Entre na sua conta para comentar.