/etc/openldap/slapd.conf
http://www.stanford.edu/services/directory/openldap/configuration/bdb-config.html
# The database configuration parameters must appear *after* the "database" # directive, as DB_CONFIG files are 'per backend'. dbconfig set_cachesize 4 0 1 dbconfig set_lg_regionmax 262144 dbconfig set_lg_bsize 2097152 dbconfig set_lg_dir /var/log # Automatically remove log files that are no longer needed. dbconfig set_flags DB_LOG_AUTOREMOVE # # Setting set_tas_spins reduces resource contention from # multiple clients on systems with multiple CPU's. set_tas_spins 1 #set_tas_spins is mutex_set_tas_spins in BDB 4.4. # For multi-CPU systems, "tool-threads" should be set to the number of available processors # CPU-kernels. # It allows slapadd and slapindex to use multiple CPU's to index the database. # tool-threads = 2
You can check on your locker statistics with:
> db_stat -c
/etc/openldap/slapd.conf:
# See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.
#
#######################################################################
# schema-definitions
#######################################################################
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/openldap.schema
include /etc/openldap/schema/yast.schema
#include /etc/openldap/schema/nis.schema
# fuer eGroupWare besser als nis.schema:
include /etc/openldap/schema/rfc2307bis.schema
# fuer Adressbuch mit Mozilla:
include /etc/openldap/schema/mozillaAbPersonAlpha.schema
# fuer Adressbuch mit Evolution:
include /etc/openldap/schema/evolutionOrgPerson.schema
# These should be present for GOsa:
include /etc/openldap/schema/gosa/samba3.schema
#include /etc/openldap/schema/gosa/gohard.schema
include /etc/openldap/schema/gosa/gofon.schema
include /etc/openldap/schema/gosa/gosystem.schema
include /etc/openldap/schema/gosa/goto.schema
include /etc/openldap/schema/gosa/gosa+samba3.schema
include /etc/openldap/schema/gosa/gofax.schema
include /etc/openldap/schema/gosa/goserver.schema
include /etc/openldap/schema/gosa/goto-mime.schema
include /etc/openldap/schema/gosa/trust.schema
include /etc/openldap/schema/gosa/fai.schema
# 12.03.2007, chhaas: fuer eGroupWare (ab 1.3x nicht mehr notwendig):
#include /etc/openldap/schema/gosa/phpgwaccount.schema
#######################################################################
# general settings
#######################################################################
# 24.07.2006, chhaas:
loglevel 1024
# 12.03.2007, chhaas: nur fuer OpenGroupware.org-LDAP-Authentication:
# allow bind_v2
# Do not enable referrals until AFTER you have a working directory
# service AND an understanding of referrals.
#referral ldap://root.openldap.org
pidfile /var/run/slapd/slapd.pid
argsfile /var/run/slapd/slapd.args
# Load dynamic backend modules:
modulepath /usr/lib/openldap/modules
# 24.07.2006, chhaas:
# fuer Replikation:
# moduleload back_bdb
# moduleload back_ldap.la
# moduleload back_meta.la
# moduleload back_monitor.la
# moduleload back_perl.la
# 24.07.2006, chhaas:
# Schema check allows for forcing entries to
# match schemas for their objectClasses's
schemacheck on
# 24.07.2006, chhaas:
# Password hash default value
# Parameters: {SHA}, {SMD5}, {MD4}, {CRYPT}, {CLEARTEXT}
# generate new passwords using the mkpasswd utility
password-hash {CRYPT}
# 24.07.2006, chhaas:
# Search base
defaultsearchbase "dc=example,dc=com"
# 24.07.2006, chhaas:
## SASL setup
#sasl-authz-policy
#sasl-host station7.example.com
#sasl-realm EXXAMPLE.COM
#sasl-regexp cn=(.*),ou=(.*) cn=$1,ou=$2,ou=People,dc=example,dc=com
#sasl-secprops noanonymous
# Sample security restrictions
# Require integrity protection (prevent hijacking)
# Require 112-bit (3DES or better) encryption for updates
# Require 63-bit encryption for simple bind
# Parameters: sasl, ssf, tls, transport, update_sasl, update_ssf,
# update_tls, update_transport
# security ssf=1 update_ssf=112 simple_bind=64
# security update_sasl=128,uptate_tls=128
#######################################################################
# BDB database definitions
#######################################################################
#######################################################################
# Specific Backend Directives for bdb:
# Backend specific directives apply to this backend until another
# 'backend' directive occurs
backend bdb
checkpoint 512 30
# The backend type, ldbm, is the default standard
database bdb
# The base of your directory
suffix "dc=example,dc=com"
checkpoint 1024 5
cachesize 10000
mode 0600
# Log modifications and write entryUUID
lastmod on
# Where the database file are physically stored
directory /var/lib/ldap
# The database configuration parameters must appear *after* the "database" # directive, as DB_CONFIG files are 'per backend'. dbconfig set_cachesize 4 0 1 dbconfig set_lg_regionmax 262144 dbconfig set_lg_bsize 2097152 dbconfig set_lg_dir /var/log # Automatically remove log files that are no longer needed. dbconfig set_flags DB_LOG_AUTOREMOVE # # Setting set_tas_spins reduces resource contention from # multiple clients on systems with multiple CPU's. set_tas_spins 1 mutex_set_tas_spins 1 # For multi-CPU systems, "tool-threads" should be set to the number of available processors # CPU-kernels. # It allows slapadd and slapindex to use multiple CPU's to index the database. tool-threads = 2
# Example replication using admin account. This will require taking the
# out put of this database using slapcat(8C), and then importing that into
# the replica using slapadd(8C).
# Replication setup
# replogfile /var/log/ldap-replicalog
# replica host=ldap-2.example.local
# binddn="cn=replicator,dc=example,dc=com" bindmethod=simple credentials=secret
# Dummy database for config replication
# database shell
# suffix "dc=uk-bw,dc=shell"
# search /etc/ldap/shell/process.pl
# add /etc/ldap/shell/process.pl
# Sample password is "tester" ;-), generate a new one using the mkpasswd # utility and put the string after {crypt} rootdn "cn=ldapadmin,dc=example,dc=com" rootpw {crypt}OuorOLd3VqvC2 ####################################################################### # Indexing ####################################################################### index default sub index uid,mail eq #index gosaSnapshotDN eq #index gosaSnapshotTimestamp eq,sub index gosaMailAlternateAddress,gosaMailForwardingAddress eq index cn,sn,givenName,ou pres,eq,sub index objectClass pres,eq index uidNumber,gidNumber,memberuid eq index gosaSubtreeACL,gosaObject,gosaUser pres,eq # 24.07.2006, chhaas: wegen Fehlermeldung in /var/log/messages # hinsichtlich fehlendem Index: #index facsimileTelephoneNumber eq,sub # 24.07.2006, chhaas: wegen Fehlermeldung in /var/log/messages # hinsichtlich fehlendem Index: index facsimileAlternateTelephoneNumber eq,sub # 2007-05-09, chhaas: wegen Fehlermeldung in /var/log/messages # hinsichtlich fehlendem Index: index gosaMailDeliveryMode eq,sub #--- Indexing for Samba 3 ---# index sambaSID eq index sambaPrimaryGroupSID eq index sambaDomainName eq #--- SSL/TLS setting ---# # 2007-06-28, chhaas: #TLSCipherSuite HIGH:MEDIUM:+SSLv2 #TLSCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+SSLv2:+EXP TLSCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP TLSCACertificateFile /etc/ssl/certs/ca_cert.pem TLSCertificateFile /etc/ssl/certs/station7_cert.pem TLSCertificateKeyFile /etc/ssl/private/station7_key.pem # 2007-07-10, chhaas: TLSVerifyClient never #TLSVerifyClient try #TLSVerifyClient allow ####################################################################### # access policies ####################################################################### # Define global ACLs to disable default read access. # Sample access control policy: # Root DSE: allow anyone to read it # Subschema (sub)entry DSE: allow anyone to read it # Other DSEs: # Allow self write access to user password # Allow anonymous users to authenticate # Allow read access to everything else # if no access controls are present, the default policy # allows anyone and everyone to read anything but restricts # updates to rootdn. (e.g., "access to * by * read") # #--- GOsa policies Start ---# # The userPassword/shadow Emtries 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 access to attrs=userPassword,sambaPwdLastSet,sambaPwdMustChange,sambaPwdCanChange,shadowMax,shadowExpire by anonymous auth by self write by * none # Deny access to imap/fax/kerberos admin passwords stored # in ldap tree access to attrs=goImapPassword by * none access to attrs=goKrbPassword by * none access to attrs=goFaxPassword by * none # Let servers write last user attribute access to attrs=gotoLastUser by * write # Samba passwords 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 access to attrs=sambaLmPassword,sambaNtPassword by anonymous auth by self write by * none # Enable write create access for the terminal admin access to dn="ou=incoming,dc=example,dc=com" by dn="cn=terminal-admin,dc=example,dc=com" write by * none access to dn.sub="ou=incoming,dc=example,dc=com" by dn="cn=terminal-admin,dc=example,dc=com" write by * none # What trees should be readable, depends on your policy. Either # use this entry and specify what should be readable, or leave # the access to * => by * read below untouched #access to dn="ou=(people|groups)" # by * read #--- GOsa policies End ---# #--- eGroupWare policies Start ---# # Access to users __personal__ addressbooks # allow read of addressbook by owner and admin account access to dn.regex="^cn=([^,]+),ou=personal,ou=contacts,dc=example,dc=com$" attrs=entry by dn.regex="uid=$1,ou=people,dc=example,dc=com" read by dn.regex="uid=admin,dc=example,dc=com" write by users none # allow user to create entries in own addressbook; no-one else can access it # needs write access to the entries ENTRY attribute ... access to dn.regex="cn=([^,]+),ou=personal,ou=contacts,dc=example,dc=com$" attrs=children by dn.regex="uid=$1,ou=people,dc=example,dc=com" write by users none # ... and the entries CHILDREN access to dn.regex="cn=([^,]+),ou=personal,ou=contacts,dc=example,dc=com$" attrs=entry,@inetOrgPerson,@mozillaAbPersonAlpha by dn.regex="uid=$1,ou=people,dc=example,dc=com" write by users none # Access to __groups__ addressbooks # allow read of addressbook by members and admin account access to dn.regex="^cn=([^,]+),ou=shared,ou=contacts,dc=example,dc=com$" attrs=entry by group.expand="cn=$1,ou=groups,dc=example,dc=com" read by dn.regex="uid=admin,dc=example,dc=com" write by users none # allow members to create entries in there group addressbooks; no-one else can access it # needs write access to the entries ENTRY attribute ... access to dn.regex="cn=([^,]+),ou=shared,ou=contacts,dc=example,dc=com$" attrs=children by group.expand="cn=$1,ou=groups,dc=example,dc=com" write by users none # ... and the entries CHILDREN access to dn.regex="cn=([^,]+),ou=shared,ou=contacts,dc=example,dc=com$" attrs=entry,@inetOrgPerson,@mozillaAbPersonAlpha by group.expand="cn=$1,ou=groups,dc=example,dc=com" write by users none #--- eGroupWare policies End ---# #--- This Section MUST be the LAST!!! ---# # rootdn can always read and write EVERYTHING! # The admin dn (dn="cn=ldapadmin,dc=example,dc=com") has full write access access to * by dn="cn=ldapadmin,dc=example,dc=com" =wrscx by * read access to dn.base="" by * read access to dn.subtree=cn=Monitor by * read # Access to schema information #access to dn.subtree="" # by * read #--- ###--- End of sldapd.conf configuration file