Micro How-to Configurando o dhcp com o Openldap autor: André Alexandre Gaio aagaio (at) linwork.com.br 1-) Fazer o download dos fontes do site do isc: # wget ftp://ftp.isc.org/isc/dhcp/dhcp-3.0.1rc14.tar.gz 2-) Baixar o patch para ldap em: # wget http://www.newwave.net/~masneyb/dhcp-3.0.1rc14-ldap-patch 3-) Descompacte o pacote em /var/tmp: # mv dhcp-3.0.1rc14.tar.gz /var/tmp # cd /var/tmp # tar -xvzf dhcp-3.0.1rc14.tar.gz 4-) Aplique o patch: patch -p0 < dhcp-3.0.1rc14-ldap-patch 5-) Configure e compile: # cd dhcp-3.0.1rc14 # ./configure && make 6-) Instale: (Recomendo o uso do checkinstall) # make install 7-) Copie o schema do dhcp para o diretório de schemas do OpenLdap: # cp contrib/dhcp.schema /usr/local/etc/openldap/schema 8-) Inclua este novo esquema ao Openldap, colocando esta linha no arquivo slapd.conf: include /usr/local/etc/openldap/schema/dhcp.schema 9-) Especifique para o OpenLdap gerar os índices para os objetos do Dhcp, dentro do arquivo slapd.conf. index dhcpHWAddress,dhcpClassData eq 10-) Reinicie o serviço do Openldap: # killall slapd; /usr/local/libexec/slapd -h 'ldap:/// ldaps:///' 11-) Edite o arquivo /etc/dhcpd.conf e coloque as informações: ------------------- < /etc/dhcpd.conf > --------------------ldap-server "localhost"; <-- Servidor LDAP ldap-port 389; <-- Porta do serviço ldap-username "cn=DHCP User,ou=TI,l=SP,o=enterprise,c=BR"; <-- Usuário para o "bind" no Ldap ldap-password "senha"; <-- Senha deste usuário para o "bind" ldap-base-dn "ou=TI,l=SP,o=enterprise,c=BR"; <-- Onde será pesquisado pelos objetos do Dhcpd ldap-method dynamic; <-- Se colocar static, a configuração será lida uma vez na inicialização do serviço e o Ldap não será mais usado, porém se você setar "dynamic", a configuração será lida na inicialização e os hosts serão armazenados no Ldap e procurados a cada momento que ocorrer uma requisição DHCP. ldap-debug-file "/var/log/dhcp-ldap-startup.log"; <-- Se esta opção for especificada o Dhcpd gerarará neste arquivo a configuração especificada no ldap. É um bom lugar para começar a debugar erros. :-) ------------------ </ /etc/dhcpd.conf > --------------------12.a-) Se você já tem um arquivo dhcpd.conf pronto, você poderá convertê-lo para o formato ldif: # perl contrib/dhcpd-conf-to-ldap.pl –basedn \ "ou=TI,l=SP,o=enterprise,c=BR" --dhcpdn "ou=DHCP \ Config,ou=TI,l=SP,o=enterprise,c=BR" --server "my_server" < \ /etc/dhcpd.conf > dhcpd.ldif Onde: --basedn --dhcpdn --> Especifica onde será criado --> Especifica onde serão armazenadas as configurações do Dhcp --server --> O nome do servidor dhcp /etc/dhcpd.conf --> Seu arquivo dhcpd.conf dhcpd.ldif --> Arquivo ldif gerado 12.b) Crie um arquivo ldif com as configurações do serviço de dhcpd. --------------------- < dhcp.ldif > ----------------------# Este é o objeto servidor. O daemon dhcpd irá procurar este objeto em #primeiro lugar e pegará as configurações no objeto apontado pelo #atributo # "dhcpServiceDN". dn: cn=my_server,ou=TI,l=SP,o=enterprise,c=BR cn: linweb objectClass: top objectClass: dhcpServer dhcpServiceDN: cn=DHCP Config,ou=TI,l=SP,o=enterprise,c=BR #Objeto que contém as configurações das opções e configurações do dhcp. dn: cn=DHCP Config,ou=TI,l=SP,o=enterprise,c=BR cn: DHCP Config objectClass: top objectClass: dhcpService objectClass: dhcpOptions dhcpPrimaryDN: cn=linweb, ou=TI,l=SP,o=enterprise,c=BR dhcpStatements: default-lease-time 259200 dhcpStatements: max-lease-time 604800 dhcpStatements: ddns-update-style none dhcpOption: subnet-mask 255.255.255.0 dhcpOption: broadcast-address 192.168.0.255 dhcpOption: routers 192.168.0.1 dhcpOption: domain-name-servers 192.168.0.1 dhcpOption: domain-name "enterprise.com.br" dhcpOption: netbios-node-type 8 dhcpOption: netbios-name-servers 192.168.0.1 # Objeto que contém a subnet e o range de ip´s que será servido pelo #dhcpd. dn: cn=192.168.0.0,cn=DHCP Config,ou=TI,l=SP,o=enterprise,c=BR cn: 192.168.0.0 objectClass: top objectClass: dhcpSubnet dhcpNetMask: 24 dhcpRange: 192.168.0.30 192.168.0.100 # Objeto que contém o host que terá o seu ip fixado através de seu mac #address. Deverá ser criado um para cada #máquina que terá seu ip fixado pelo dhcpd. dn: cn=remote-adm, cn=DHCP Config,ou=TI,l=SP,o=enterprise,c=BR cn: remote-adm objectClass: top objectClass: dhcpHost dhcpHWAddress: ethernet 00:20:f0:0d:ac:03 dhcpStatements: fixed-address 192.168.0.35 -------------------- </ dhcp.ldif > -----------------------13-) Importe o arquivo ldif gerado para a sua base ldap: ldapadd -x -v -D 'cn=Manager,c=BR' -W -f dhcp.ldif 14-) Inicie o serviço de dhcp. # /usr/sbin/dhcpd eth0 -q 15-) Faça os testes. 16-) Be happy! :-) Observação: Este artigo pode ser reproduzido à vontade desde que preservado o nome do autor. Qualquer dúvida, por favor leia a documentação do programa. “ ... Se com a tua boca confessares a Jesus como Senhor, e em teu coração creres que Deus o ressucitou dentre os mortos, serás salvo. ...” (Romanos 10:9)