Pesquisar neste blog

Mostrando postagens com marcador OpenLDAP. Mostrar todas as postagens
Mostrando postagens com marcador OpenLDAP. Mostrar todas as postagens

quarta-feira, 5 de novembro de 2008

Monitorando os logs do OpenLDAP

Para ativarmos os logs detalhados de todas as operações do ldap iremos seguir os seguintes passos:

Entre no arquivo de configuração do openldap

# vim /etc/openldap/slapd.conf

Procure o parâmetro loglevel. Altere seu valor para 256

Segue abaixo alguns exemplos:

# levels are:
# 1 trace function calls
# 2 debug packet handling
# 4 heavy trace debugging
# 8 connection management
# 16 print out packets sent and received
# 32 search filter processing
# 64 configuration file processing
# 128 access control list processing
# 256 stats log connections/operations/results
# 512 stats log entries sent
# 1024 print communication with shell backends
# 2048 entry parsing

Depois de alterado salve e saia do arquivo.

Agora entre no arquivo syslog.conf e insira a seguinte linha

# vim /etc/syslog.conf

local4.debug /var/log/ldap.log

salve e saia.

Agora é só reinicializar os serviços e pronto, basta monitorar o arquivo de log para ver as operações

# service syslog restart
# service ldap restart

# tail -f
/var/log/ldap.log


Replicando uma base Openldap

Para você ter uma estrutura server-slaves para replicar sua base principal, uma forma de garantia de segurança e alta disponibilidade do serviço.

1 - Basta você instalar o openldap nos outros servidores e copiar os arquivos de configuração e os arquivos da base openldap para ficar o mais idêntico possível para não haver problemas.

2 - No arquivo do openldap do servidor master inclua as seguintes linhas no final do arquivo de configuração:

# vim /etc/openldap/slapd.conf

######################################################
# REPLICACAO DA BASE LDAP
######################################################

#Server slave 1
replogfile /var/lib/ldap/openldap-master-replog.ldif
replica host=10.1.1.27:389
binddn="cn=admin,dc=domain,dc=net"
bindmethod=simple
credentials=senha

#Server slave 2
replica host=10.1.2.2:389
binddn="cn=admin,dc=domain,dc=net"
bindmethod=simple
credentials=senha

Salve e saia (:wq)
Reinicialize o serviço do openldap e monitore os logs.

Já nos arquivos de configuração dos servidores slave insira as seguintes linhas no final do arquivo:


# vim /etc/openldap/slapd.conf

slave:
updatedn "cn=admin,dc=domain,dc=net"
updateref "ldap://ldapserver.domain.net"

Salve e saia (:wq)

Reinicialize o serviço do openldap e monitore os logs.

Como recuperar uma base OpenLDAP Corrompida

Distro: Centos 4.5
OpenLDAP openldap-servers-2.2.13-8.el4_6.5
db4-4.2.52-7.1
db4-utils-4.2.52-7.1

Para efetuarmos uma recuperação em uma base openldap basta seguirmos os seguintes passos:

1 - Certifique-se que o seu serviço ldap esteja parado, pois muitas vezes as bases ficam em modo read-only.

2 - Entre na pasta onde encontram-se os arquivos da base openldap, geralemente localizados em /var/lib/ldap

3 - Precisamos agora usar um utilitário chamado db_recover que geralmente vem com o pacote db4-utils ou com o pacote do servidor openldap-servers também chamado de slapd_db_recover.

# slapd_db_recover -e

4 - O comando slapd_db_recover depois de executado recria alguns arquivos e se sua pasta ldap não estiver com as permissões de stickbit setadas você terá que reconfigurar as permissões para que o openldap inicialize, sega os procedimentos abaixo:

# chown ldap.ldap *
# chmod 0600 *

Inicialize o serviço e pronto, base recuperada.

# service ldap start

Arquivo de configuração DB_CONFIG

O arquivo de configuração DB_CONFIG permite aos administradores customizar ambientes independentes da aplicação.

Segue abaixo um exemplo de como otimizar sua base openldap evitando que os logs de registro fiquem ocupando muito espaço em disco.

# vim DB_CONFIG

#
# Set the database in memory cache size.
#
set_cachesize 0 52428800 0

#
# Set database flags.
# Esta flag remove arquivos de logs automaticamente que não são mais necessários.
set_flags DB_LOG_AUTOREMOVE

#
# Set log values.
#
set_lg_regionmax 262144
set_lg_max 10485760
set_lg_bsize 2097152
set_lg_dir /var/lib/ldap
# Increase locks
set_lk_max_locks 3000
set_lk_max_objects 1500
set_lk_max_lockers 1500


Salve e saia (:wq)

Copie o arquivo para a pasta onde estão os arquivos da base openldap e reinicialize o serviço.


Fonte:
http://www.oracle.com/technology/documentation/berkeley-db/db/ref/env/db_config.html

Backup de uma base OpenLDAP

Segue um exemplo abaixo de como fazer um backup de uma base openldap.
Como meu software de backup fica localizado em um servidor windows e neste servidor tenho uma unidade para armazenamento, vou dar um exemplo de como montar um compartilhamento windows e enviar o backup da base para lá:


# vim backup_ldap.sh

#!/bin/sh
# Data que ira ficar no nome do arquivo
DATA_INI=$(date +%Y%m%d)

# Login e senha do compartilhamento windows
LOGIN="ldapuser"
SENHA="ld@ps3arch"

# Comando para montar a unidade de compartilhamento
smbmount //sv-backup/backups /mnt/ldapsrv -o username=$LOGIN,password=$SENHA

# Comando que faz um dump da base ldap para um arquivo de texto com extensão ldif
/usr/sbin/slapcat > /root/bkp_diario_base_ldap/bkp_ldap_$DATA_INI.ldif

# Se a sua base não for muito grande não tem necessidade de compactar pode copiar direto para o servidor
cp /root/bkp_diario_base_ldap/bkp_ldap_$DATA_INI.ldif /mnt/ldapsrv/ldapsrv/backup/

# Desmontando unidade de compartilhamento
umount /mnt/ldapsrv/

Salve e feche o arquivo (:wq)


Jogue o arquivo na crontab e pronto.

Criando arquivo LDIF para inicializar uma base OpenLDAP

LDIF (LDAP Data Interchange Format) - Descreve as entradas de diretório no formato LDAP em modo texto.

Para inserir uma entrada em uma base openldap zerada inserimos o seguinte conteúdo no arquivo abaixo:

# vi top.ldif

dn: dc=dominio,dc=com,dc=br
objectclass: dcObject
objectclass: organization
o: Cidade

Salve e saia (:wq)

Inclusão do arquivo LDIF na base LDAP

# slapadd -l top.ldif
ou
# ldapadd -x -D 'cn=admin,dc=dominio,dc=com,dc=br' -W -f top.ldif

Para deletar uma entrada na base openldap

# ldapdelete -v -x -D "cn=admin,dc=dominio,dc=com,dc=br" -W "uid=usuario,ou=Usuarios,dc=dominio,dc=com,dc=br"