Recentemente eu montei um servidor LDAP utilizando dois servidores rodando linux RedHat AS 4, com redundância através de VRRP e sincronismo da dase de dados LDAP.
Este post descreve todos os passos e dicas sobre como colocar este serviço no ar.
Algumas das características utilizadas são:
- Servidores com replicação da base LDAP
- Utilização de um software de virtualização de IPs para redundancia
- Autenticação com utilização de certificados para cifragem dos dados
- Testes com Autenticação de ambientes Windows (Cliente pago)
Servidor Linux:
O servidor utilizado não é um fator tão importante. Eu escolhi utilizar um RedHat AS4, mas pode ser feito também com SUSE, Debian, e mesmo em Unix (Solaris, HP-UX, AIX), pois todo o software utilizado deve ser compilado no servidor, então a distribuição pode ser a escolha de cada um. Penso que vale a pena ter a versão mais atualizada do linux/unix escolhido. Vale a pena lembrar que a versão RHES4 deve ter o update 5 instalado, ou superior. Se for update 4 ou inferior o ldap com password policy não vai funcionar.
VRRP Daemon:
O serviço VRRP é semelhante ao HSRP da Cisco, e permite que duas estações com IPs distintos (ex. 10.0.0.31 = Server1 e 10.0.0.32 = Server2) possam responder por um terceiro IP (10.0.0.30) com redundancia do serviço. Um dos servidores será o master e o outro será o slave. Quando o master ficar fora do ar, o slave assume a resposta pelo IP 10.0.0.30. Quando o server1 voltar ao ar, ele volta a responder pelo IP 10.0.0.30 e o server 2 devolve o IP ao master.
Este serviço é fundamental para garantir a redundancia do servidor, uma vez que na configuração do LDAP será feita a colocação de um master e um slave, com sincronismo da base de ldados LDAP entre os servidores.
O fonte deste recurso pode ser encontrado em https://sourceforge.net/projects/vrrpd/ e deve ser compilado nos dois servidores.
LDAP:
O servidor LDAP utilizado foi a última versão stable, localizada em http://www.openldap.org/software/download/OpenLDAP/openldap-stable/
Depois de baixar a versão, mova o arquivo para o diretório /usr/local e descompacte-o lá.
Rode os seguintes comandos para realizar a configuração e compilação:
# ./configure –enable-crypt –enable-bdb –disable-sql –enable-ppolicy –with-cyrsus-sasl –with-tls –disable-ipv6 –with-slurpd
# make depend && make && make install && echo $?
Se voce encontrar algum problema no configure, é porque deve estar faltando algum pacote necessário à compilação do openldap. Ao executar um rpm -qa | grep -i sasl, eu obtive estes pacotes
- cyrus-sasl-sql-2.1.19-14
- cyrus-sasl-md5-2.1.19-14
- cyrus-sasl-plain-2.1.19-14
- cyrus-sasl-ntlm-2.1.19-14
- cyrus-sasl-2.1.19-14
- cyrus-sasl-gssapi-2.1.19-14
- cyrus-sasl-devel-2.1.19-14
E ao executar um rpm -qa | grep -i ssl eu obtive os seguintes pacotes
- openssl096b-0.9.6b-22.46
- openssl-devel-0.9.7a-43.16
- pyOpenSSL-0.6-1.p23
- xmlsec1-openssl-1.2.6-3
- openssl-0.9.7a-43.16
- mod_ssl-2.0.52-32.3.ent
- perl-Crypt-SSLeay-0.51-5
A versão que eu uso do RedHat é AS4 Update 6
Com as dependências de pacotes resolvidas, o configure deve rodar sem problema, e coom isso os makes podem ser feitos. O echo $? deve retornar um 0 (zero), informando que não houve qualquer problema na compilação e instalação.
Caso voce utilize um servidor ldap master e um slave, execute a instalação do openldap nas duas máquinas, exatamente da mesma maneira.
Nos próximos dias eu continuarei com este post, mostrando como criar um slapd.conf, criar a árvore ldap inicial, criar as entradas na árvore ldap, criar os usuários e definir e aplicar as políticas permittidas pelo Password Policy
Artigo legal!
Mas gostaria de adicionar que no caso de alguém precisar criar uma interface LDAP para expor um sistema proprietário qualquer para ferramentas como PHPBB e Moodle, pode-se utilizar o Ruby e a biblioteca ruby-ldapserver. A linguagem é bem fácil de aprender e a biblioteca traz exemplos bem úteis para o que se propõe (um servidor LDAP “pelado”, um outro que autentica no MySQL, nem precisei olhar os outros).
LDAP tem se mostrado um protocolo muito útil nas minhas aplicações….
Comentário por fabiogusmaoblog — 9/Fevereiro/2009 @ 8:54 pm