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
Tutorial Instalando um Servidor de Diretórios OpenLDAP com replicação (SyncRepl)
27 de Janeiro de 2012, 0:00 - sem comentários ainda | Ninguém está seguindo este artigo ainda.
Visualizado 2011 vezes
0sem comentários ainda