Configuração do OpenLDAP
A configuração do OpenLDAP é feita quase que exclusivamente no seu arquivo de configuração “slapd.conf” que se encontra no diretório /etc/ldap
O arquivo ldap.conf é destinado às configurações de ferramentas “cliente” para acesso a uma base LDAP.
Dissecando o slapd.conf
Edite o arquivo com o editor de sua preferência. Vamos comentar todas as opções:
# Allow LDAPv2 binds
allow bind_v2
- Esta opção permite o uso da versão 2 do protocolo LDAP. Muito útil, pois alguns serviços utilizam somente essa versão.
# This is the main slapd configuration file. See slapd.conf(5) for more
# info on the configuration options.
#####################################################
# Global Directives:
# Schema and objectClass definitions
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/inetorgperson.schema
- É nesta parte onde se incluem os arquivos de schema para que os objetos e seus atributos estejam disponíveis para uso. Perceba que há uma linha para cada schema e que o caminho é completo.
# Where the pid file is put. The init.d script
# will not stop the server if you change this.
pidfile /var/run/slapd/slapd.pid
- Onde será salvo o arquivo contendo o PID do processo de execução do OpenLDAP. Perceba que se você mudar esta opção o script de inicialização em /etc/init.d não conseguirá parar o serviço.
# List of arguments that were passed to the server
argsfile /var/run/slapd/slapd.args
- O OpenLDAP permite que alguns argumentos sejam passados no momento de sua execução. Esses argumentos devem ser definidos no arquivo definido nesta opção.
# Read slapd.conf(5) for possible values
loglevel 0
- Nível de registro de atividades no OpenLDAP. O nível 0 determina que não se faça registro de atividades. Os níveis de atividade (log), serão detalhados mais adiante, neste manual.
# Where the dynamically loaded modules are stored
modulepath /usr/lib/ldap
moduleload back_bdb
- Esta opção define o diretório dos módulos do OpenLDAP, além da sua ativação. Esses módulos permitem a ativação de recursos extras. Diversos recursos como o “ppolicy” que permite definições elaboradas de políticas de acesso e o “syncprov” que permite a ativação de uma das forma de replicação, são exemplos de módulos.
# The maximum number of entries that is returned for a search operation
sizelimit 500
- Esta opção define o retorno máximo a uma consulta feita na base OpenLDAP. Portanto se alguma pesquisa tiver que retornar mais do que 500 resultados será necessário aumentar este valor. Se o valor de sizelimit for definido como -1 então o retorno será ilimitado.
# The tool-threads parameter sets the actual amount of cpu’s that is used
# for indexing.
tool-threads 1
- Esta opção define o número de CPU’s que serão utilizadas para a indexação da base de dados. Se o servidor tiver mais de um processador, aumente este número.
#####################################################
# Specific Backend Directives for bdb:
# Backend specific directives apply to this backend until another
# ‘backend’ directive occurs
backend bdb
- Esta opção define qual será o “backend” que será utilizado. Por padrão utiliza-se bdb.
checkpoint 512 30
- Este é um ajuste fino à operação da base de dados BDB. Esta diretiva especifica quando o BDB deve adicionar um ponto de checagem em seus logs de transação. Neste caso depois de 512 Kbytes ou após 30 minutos desde a última checagem, o que acontecer primeiro.
OBSERVAÇÃO: quanto maior for o intervalo entre checkpoints, maior será a probabilidade de que alterações à base de dados sejam irrecuperáveis caso haja uma eventual falha de sistema. Entretanto, se a base de dados não sofrer alterações constantes esse parâmetro pode reduzir a atividade do disco.
#####################################################
# Specific Directives for database #1, of type bdb:
# Database specific directives apply to this databasse until another
# ‘database’ directive occurs
database bdb
- Esta opção ativa a primeira base de dados. Neste caso iremos utilizar BDB.
# The base of your directory in database #1
suffix “dc=kyapanel,dc=com,dc=br”
- O sufixo aqui definido é na verdade a raiz da base de dados. Como o Debian criou a base automaticamente, ele utilizou o nome do nosso servidor.
# Where the database file are physically stored for database #1
directory “/var/lib/ldap”
- Diretório onde a base de dados bdb será armazenada.
# For the Debian package we use 2MB as default but be sure to update this
# value if you have plenty of RAM
dbconfig set_cachesize 0 20971520 0
- Esta é uma definição da base de dados DBD. Por padrão o OpenLDAP define 2Mb de memória RAM como limite para o armazenamento de cache. Se o servidor possuir bastante memória RAM pode-se aumentar este valor.
A sintaxe desta linha é: <fator multiplicador> <tamanho do cache em bytes> <quantos caches separados>
Por exemplo: “2 524288000 3” criará um cache de 2.0 Gb, dividido em três caches físicos separados.
# Sven Hartge reported that he had to set this value incredibly high
# to get slapd running at all. See http://bugs.debian.org/303057
# for more information.
# Number of objects that can be locked at the same time.
dbconfig set_lk_max_objects 1500
- Número máximo de objetos que podem ser “trancados”
# Number of locks (both requested and granted)
dbconfig set_lk_max_locks 1500
- Número máximo de “travas” tanto para as solicitadas quanto para as realizadas
# Number of lockers
dbconfig set_lk_max_lockers 1500
- Número máximo de “travadores”
# Indexing options for database #1
index objectClass eq
- Opções de indexação da base LDAP. Todas as opções serão vistas em detalhes mais adiante, neste manual.
# Save the time that the entry gets modified, for database #1
lastmod on
- Ativa o registro do horário de alteração das entradas da base de dados. Útil para replicações e backups
# The userPassword by default can be changed
# by the entry owning it if they are authenticated.
# Others should not be able to see it, except the
# admin entry below
# These access lines apply to database #1 only
#access to attrs=userPassword,shadowLastChange
# by dn=”cn=admin,dc=kyapanel,dc=com,dc=br” write
# by anonymous auth
# by self write
# by * none
# Ensure read access to the base for things like
# supportedSASLMechanisms. Without this you may
# have problems with SASL not knowing what
# mechanisms are available and the like.
# Note that this is covered by the ‘access to *’
# ACL below too but if you change that as people
# are wont to do you’ll still need this if you
# want SASL (and possible other things) to work
# happily.
# The admin dn has full write access, everyone else
# can read everything.
access to attrs=userPassword,shadowLastChange
by dn="cn=admin,dc=kyapanel,dc=com,dc=br" write
by anonymous auth
by self write
by * none
access to dn.base="" by * read
access to *
by dn="cn=admin,dc=kyapanel,dc=com,dc=br" write
by * read
- Lista de controle de acessos (ACL) à base de dados. Estas permissões serão vistas em detalhes mais adiante, neste manual.
Opções extras
security ssf=1 update_ssf=112 simple_bind=64
- Na instalação padrão esta opção não se faz presente. Entretanto se trata de um dos mais novos recursos de segurança do OpenLDAP: Security Strength Factor ou “Fator de Força de Segurança”. Cada valor atribuído ao “ssf” determinará a “força” de encriptação exigida para realizar para cada ação. SSF em zero (0) define que a proteção está desativada. SSF em um (1) define que a proteção está ativada. SSF maior do que um indicará uma relação direta com o tamanho da “chave” de encriptação que será aceita pelo servidor. Por exemplo: DES é 56, 3DES é 112 e AES pode ser 128, 192 ou 256.
Diversas políticas de segurança podem ser definidas pela opção “security” indicando qual o nível de encriptação exigido para cada ação.
Se o nível de encriptação exigido não for atendido então a ação não será realizada.
Na linha acima está definido:
ssf=1 – Controle de nível de encriptação ativado update_ssf=112 – Para atualizações a encriptação tem que ser do tipo 3DES ou equivalente simple_bind=64 – Para consultas simples a “chave” de encriptação tem que ter “força” 64.
Opções do DB_CONFIG
O arquivo DB_CONFIG é utilizado para passar parâmetros de otimização para o BDB, ou seja, o backend padrão do OpenLDAP.
Este arquivo deve ser escrito no mesmo diretório onde a base de dados BDB será armazenada.
Suas opções são:
dbconfig set_cachesize dbconfig set_lk_max_objects dbconfig set_lk_max_locks dbconfig set_lk_max_lockers
Entretanto estas opções já foram descritas acima. O importante a ser dito é que essas opções podem ser definidas no arquivo slapd.conf ou diretamente em /var/lib/ldap
Se o arquivo DB_CONFIG não existir o OpenLDAP escreverá essas opções criando o arquivo. Entretanto, se o arquivo já existir o OpenLDAP apenas às ignorará
O objetivo é otimizar o processo evitando que configurações pré-existentes sejam sobrescritas.
Licença
Copyright 2007 Anahuac de Paula Gil e Francisco Kem Iti Saito
Permite-se distribuição, publicação e cópia literal da íntegra deste documento, sem pagamento de royalties, desde que sejam preservadas a nota de copyright, a URL oficial do documento e esta nota de permissão.
Permite-se também distribuição, publicação e cópia literal de seções individuais deste documento, sem pagamento de royalties, desde que sejam preservadas a nota de copyright e a nota de permissão acima, e que a URL oficial do documento seja preservada ou substituída pela URL oficial da seção individual.