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.