/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