Blog com conteúdo sobre os projetos que tenho trabalhado: SEGURANÇA DA INFORMAÇÃO, VOIP COM ASTERISK, VIRTUALIZAÇÃO DE SERVIDORES VMWARE SERVER, ESX, EMAIL, FIREWALL, WEB-PROXIES, VPN, MIGRAÇÕES, LDAP, SAMBA, AD, ORACLE, MySQL, RADIUS, DHCP, DNS, PHP, C++, AUTENTICAÇÃO WIFI, CAPTIVEPORTAL, SATELITE, NETWORK...
Pesquisar neste blog
quarta-feira, 5 de novembro de 2008
Monitorando os logs do OpenLDAP
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
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
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
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
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
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"