/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