Ir para o conteúdo
ou

Software livre Brasil

 Voltar a Blog do Marc...
Tela cheia

Tutorial Instalando um Servidor de Diretórios OpenLDAP com replicação (SyncRepl)

27 de Janeiro de 2012, 0:00 , por Software Livre Brasil - 0sem comentários ainda | Ninguém está seguindo este artigo ainda.
Visualizado 1910 vezes

Logo OpenLDAP

Este tutorial mostrará como criar um servidor OpenLDAP (2.4.23) com replicação no Debian Squeeze (6.0.3), ao final teremos um servidor Master e um Shadow (Slave). Para realizar este tutorial esteja logado como root.

1) Instalando o OpenLDAP no servidor Master

 Edite o sources.list
 nano /etc/apt/sources.list

 Acrescente as seguintes linhas e salve
 deb http://ftp.br.debian.org/debian squeeze main contrib
 deb-src http://ftp.br.debian.org/debian squeeze main contrib

 Atualize a lista de pacotes
 apt-get update

 Instale o OpenLDAP e o ldap-utils
 apt-get install slapd ldap-utils

1.1) Configurando OpenLDAP Master

Nas últimas versões do OpenLDAP é utilizado um esquema de configuração onde você pode alterar as configurações em tempo real acessando os dados diretamente dentro do OpenLDAP, porém iniciaremos a configuração da forma tradicional e converteremos para este novo esquema.

 Pare o Serviço do OpenLDAP (slapd)
 service slapd stop

 Edite o arquivo /etc/ldap/slapd.conf
 nano /etc/ldap/slapd.conf

 Adicione a configuração inicial
 # Arquivo slapd.conf exemplo básico para OpenLDAP Master

 include      /etc/ldap/schema/core.schema
 include      /etc/ldap/schema/cosine.schema
 include      /etc/ldap/schema/nis.schema
 include      /etc/ldap/schema/inetorgperson.schema

 allow      bind_v2

 pidfile    /var/run/slapd/slapd.pid
 argsfile   /var/run/slapd/slapd.args

 # Nível de verbosidade do Log. O nível 256 traz alguma verbosidade para analisamos problemas.
 loglevel   256

 # Diretório com os Módulos LDAP, incluíndo o módulo de sincronização
 modulepath /usr/lib/ldap

 moduleload back_bdb
 moduleload syncprov # Módulo de Sincronização usado para replicação SyncRepl

 # Limites Aplicado a toda as buscas no LDAP, Tamanho e Tempo Limite (Segundos)
 sizelimit 256
 timelimit 60

 # Número de CPUs Utilizada para criar indíces
 tool-threads 2

 backend  bdb

 # Base de Configuração
 database config
 rootdn "cn=admin,cn=config"
 rootpw secreta

 # Base Principal
 database bdb
 suffix "dc=juntadados,dc=org"
 rootdn "cn=admin,dc=juntadados,dc=org"
 rootpw secreta

 directory   "/var/lib/ldap"

 dbconfig set_cachesize 0 2097152 0
 dbconfig set_lk_max_objects 1500
 dbconfig set_lk_max_locks 1500
 dbconfig set_lk_max_lockers 1500

 index      objectClass eq
 lastmod      on
 checkpoint   512 30

 # Configuração da Sincronização SyncRepl
 overlay syncprov
 syncprov-checkpoint 50 5
 syncprov-sessionlog 100

 # ACLs (Permissões) Básicas.
 access to   attrs=userPassword,shadowLastChange
  by dn="cn=admin,dc=juntadados,dc=org" write
  by anonymous auth
  by self write
  by * none

 access to dn.base="" by * read

 access to * by dn="cn=admin,dc=juntadados,dc=org" write by * read


 Remova o slapd.d antigo
 rm -rf /etc/ldap/slapd.d/*

 Criando slapd.d (configurações) novo
 slaptest -f /etc/ldap/slapd.conf -F /etc/ldap/slapd.d/

 Definindo permissões dos arquivos de configuração
 chown openldap.openldap /etc/ldap -R

 Antes de iniciar o OpenLDAP configure o rsyslog para capturar mensagens de log do OpenLDAP
 nano /etc/rsyslog.conf

 Acrescente ao final do rsyslog.conf
 local4.* /var/log/ldap.log

 Re-inicie o rsyslog
 service rsyslog restart

 Inicie o Serviço OpenLDAP (slapd)
 service slapd start

1.2) Iniciando registros do OpenLDAP

 Crie um arquivo LDIF Base
 nano /etc/ldap/base.ldif

 Adicione a /etc/ldap/base.ldif
 dn: dc=juntadados,dc=org
 dc: juntadados
 objectClass: top
 objectClass: domain


 dn: ou=Pessoa, dc=juntadados,dc=org
 ou: Pessoa
 description: Todas as Pessoas
 objectclass: organizationalunit


 Execute o comando para adição de registro
 ldapadd -h localhost -a -W -x -D "cn=admin,dc=juntadados,dc=org" -f /etc/ldap/base.ldif

 Crie uma entrada em Pessoa (LDIF)
 nano /etc/ldap/pessoa.ldif

 Adicione os dados básicos
 dn: cn=Marcelo Soares Souza,ou=Pessoa,dc=juntadados,dc=org
 objectclass: inetOrgPerson
 cn: Marcelo Soares Souza
 sn: souza
 uid: mssouza
 userpassword: secreta
 mail: marcelo@juntadados.org
 description: http://marcelo.juntadados.org


 Execute o comando para adição de registro
 ldapadd -h localhost -a -W -x -D "cn=admin,dc=juntadados,dc=org" -f /etc/ldap/pessoa.ldif

1.3) Consultando um Registro no OpenLDAP

 Para buscar o registro adicionado use o comando ldapsearch
 ldapsearch -h localhost -x -b ou=Pessoa,dc=juntadados,dc=org uid=mssouza

1.4) Criando usuário para a replicação

 Crie um arquivo LDIF Base
 nano /etc/ldap/replication.ldif

 Adicione a /etc/ldap/replication.ldif
 dn: uid=syncrepl,dc=juntadados,dc=org
 uid: syncrepl
 ou: System
 userPassword: secreta
 description: Conta para o SyncRepl
 objectClass: account
 objectClass: simpleSecurityObject


 Execute o comando para adição de registro
 ldapadd -h localhost -a -W -x -D "cn=admin,dc=juntadados,dc=org" -f /etc/ldap/replication.ldif

1.5) Facilitando a Administração do OpenLDAP

A Fundação Apache mantém uma ferramenta muito útil para administração de diretórios LDAP, é o Apache Directory Studio (http://directory.apache.org/studio/). Todas as configurações ou manipulações de registros agora podem ser feitas através desta interface gráfica para isto. Conforme definimos na configuração o usuário (Bind DN or user) para administração dos registros no diretório:

 Bind DN or user: cn=admin,dc=juntadados,dc=org
 Bind Password: secreta

 O usuário (Bind DN or user) utilizado para configuração do OpenLDAP
 Bind DN or user: cn=admin,cn=config
 Bind Password: secreta

2) Replicando o OpenLDAP no servidor Shadow (Slave)

 Faça os passos dos tópicos 1 e 1.1, porém coloque a configuração a baixo no arquivo /etc/ldap/slapd.conf

 # Arquivo slapd.conf exemplo básico para OpenLDAP Master

 include      /etc/ldap/schema/core.schema
 include      /etc/ldap/schema/cosine.schema
 include      /etc/ldap/schema/nis.schema
 include      /etc/ldap/schema/inetorgperson.schema

 allow      bind_v2

 pidfile    /var/run/slapd/slapd.pid
 argsfile   /var/run/slapd/slapd.args

 # Nível de verbosidade do Log. O nível 256 traz alguma verbosidade para analisamos problemas.
 loglevel   256

 # Diretório com os Módulos LDAP, incluíndo o módulo de sincronização
 modulepath /usr/lib/ldap

 moduleload back_bdb
 moduleload syncprov # Módulo de Sincronização usado para replicação SyncRepl

 # Limites Aplicado a toda as buscas no LDAP, Tamanho e Tempo Limite (Segundos)
 sizelimit 256
 timelimit 60

 # Número de CPUs Utilizada para criar indíces
 tool-threads 2

 backend  bdb

 # Base de Configuração
 database config
 rootdn "cn=admin,cn=config"
 rootpw secreta

 # Base Principal
 database bdb
 suffix "dc=juntadados,dc=org"
 rootdn "cn=admin,dc=juntadados,dc=org"
 rootpw secreta

 directory   "/var/lib/ldap"

 dbconfig set_cachesize 0 2097152 0
 dbconfig set_lk_max_objects 1500
 dbconfig set_lk_max_locks 1500
 dbconfig set_lk_max_lockers 1500

 index      objectClass eq
 lastmod      on
 checkpoint   512 30

 syncrepl rid=001
   provider=ldap://IP_OPENLDAP_MASTER
   type=refreshAndPersist
   retry="30 10 600 20"
   schemachecking=off
   searchbase="dc=juntadados,dc=org"
   binddn="uid=syncrepl,dc=juntadados,dc=org"
   credentials=secreta

 updateref ldap://IP_OPENLDAP_MASTER

 # ACLs (Permissões) Básicas.
 access to   attrs=userPassword,shadowLastChange
  by dn="cn=admin,dc=juntadados,dc=org" write
  by anonymous auth
  by self write
  by * none

 access to dn.base="" by * read

 access to * by dn="cn=admin,dc=juntadados,dc=org" write by * read


2.1) Testando replicação

 Pesquisa pelo usuário de uid=mssouza localmente
 ldapsearch -h localhost -x -b ou=Pessoa,dc=juntadados,dc=org uid=mssouza

 Caso tenha o retorno abaixo a replicação foi bem sucedido
 # extended LDIF
 #
 # LDAPv3
 # base <ou=Pessoa,dc=juntadados,dc=org> with scope subtree
 # filter: uid=mssouza
 # requesting: ALL
 #

 # Marcelo Soares Souza, Pessoa, juntadados.org
 dn: cn=Marcelo Soares Souza,ou=Pessoa,dc=juntadados,dc=org
 objectClass: inetOrgPerson
 cn: Marcelo Soares Souza
 sn: souza
 uid: mssouza
 mail: marcelo@juntadados.org
 description: http://marcelo.juntadados.org

 # search result
 search: 2
 result: 0 Success

 # numResponses: 2
 # numEntries: 1



Tags deste artigo: software livre debian tutorial openldap

0sem comentários ainda

Enviar um comentário

Os campos são obrigatórios.

Se você é um usuário registrado, pode se identificar e ser reconhecido automaticamente.