# This is the main slapd configuration file. See slapd.conf(5) for more # info on the configuration options. ####################################################################### # Global Directives: # Features to permit #allow bind_v2 # 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 include /etc/ldap/schema/evolutionperson.schema include /etc/ldap/schema/samba.schema # 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 # List of arguments that were passed to the server argsfile /var/run/slapd/slapd.args # Read slapd.conf(5) for possible values loglevel 0 # Where the dynamically loaded modules are stored modulepath /usr/lib/ldap moduleload back_bdb # The maximum number of entries that is returned for a search operation sizelimit 500 # The tool-threads parameter sets the actual amount of cpu's that is used # for indexing. tool-threads 1 # TLS TLSCertificateFile /etc/ldap/ssl/cert.pem TLSCertificateKeyFile /etc/ldap/ssl/key.pem TLSCACertificateFile /etc/ssl/certs/cacert.pem password-hash {CRYPT} password-crypt-salt-format "$1$%s" ####################################################################### # Specific Backend Directives for bdb: # Backend specific directives apply to this backend until another # 'backend' directive occurs backend bdb checkpoint 512 30 ####################################################################### # Specific Backend Directives for 'other': # Backend specific directives apply to this backend until another # 'backend' directive occurs #backend ####################################################################### # Specific Directives for database #1, of type bdb: # Database specific directives apply to this databasse until another # 'database' directive occurs database bdb # The base of your directory in database #1 suffix "dc=mhcodi,dc=com" # rootdn directive for specifying a superuser on the database. This is needed # for syncrepl. # rootdn "cn=admin,dc=mhcodi,dc=com" # Where the database file are physically stored for database #1 directory "/var/lib/ldap" # 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 134217728 0 # 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 # Number of locks (both requested and granted) dbconfig set_lk_max_locks 1500 # Number of lockers dbconfig set_lk_max_lockers 1500 # Indexing options for database #1 index objectClass eq ## Index attributes which values should be unique. index uid,uidNumber,gidNumber pres,eq ## Index normal attributes. index ou,cn,givenName,sn pres,eq,approx,sub index description,mail pres,eq,approx,sub # Save the time that the entry gets modified, for database #1 lastmod on # Where to store the replica logs for database #1 replogfile /var/lib/ldap/replog replica uri=ldap://10.1.2.3:389 starttls=yes binddn="uid=replica,ou=system,dc=mhcodi,dc=com" bindmethod=simple credentials=myverysecurepassword replica uri=ldap://10.1.2.4:389 starttls=yes binddn="uid=replica,ou=system,dc=mhcodi,dc=com" bindmethod=simple credentials=myverysecurepassword ######################################## # Access Control begin # # Only allow unencrypted connections from myself or encrypted connections # from everywhere, but nothing else. access to * by peername.ip=127.0.0.1 none break by peername.ip=10.1.2.1 none break by ssf=128 * none break by * none # Members of the group ldap-admin (groupOfNames) have full write access, # everyone else is covered by access rules below. access to * by group="cn=ldap-admin,ou=system,dc=mhcodi,dc=com" write by * none break # 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 members # of the group ldap-admin (groupOfNames). access to attrs=userPassword 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. access to dn.base="" by * read # Ensure read access to the schema and objectClass definitions. access to dn.exact="cn=Subschema" by users read by * none # Everyone has read access to our base. access to dn.base="dc=mhcodi,dc=com" by * read # Access rules for the global contacts. access to dn.subtree="ou=contacts,dc=mhcodi,dc=com" by group="cn=ldap-contacts-write,ou=system,dc=mhcodi,dc=com" write by group="cn=ldap-contacts-read,ou=system,dc=mhcodi,dc=com" read by * none # Access rules for private roaming. All authenticated users can see roaming. access to dn.base="ou=roaming,dc=mhcodi,dc=com" by users read by * none # Users in ou=people can see their own roaming entry. access to dn.regex="^ou=([^,]+),ou=roaming,dc=mhcodi,dc=com$" by dn.exact,expand="uid=$1,ou=people,dc=mhcodi,dc=com" read by * none # Users in ou=people can write entries below their own roaming entry. access to dn.regex="^.*,ou=([^,]+),ou=roaming,dc=mhcodi,dc=com$" by dn.exact,expand="uid=$1,ou=people,dc=mhcodi,dc=com" write by * none # Access rules for the search user. The search user is only allowed to read # the entry name, cn, uid, uidNumber, gidNumber, memberUid, homeDirectory, # loginShell, shadowExpire, shadowFlag, shadowInactive, shadowMax, shadowMin, # shadowWarning. access to * attrs=entry,cn,uid,uidNumber,gidNumber,memberUid,homeDirectory,loginShell,shadowExpire,shadowFlag,shadowInactive,shadowMax,shadowMin,shadowWarning by dn="uid=search,ou=system,dc=mhcodi,dc=com" read by * none break # The search user is allowed to search all. access to * by dn="uid=search,ou=system,dc=mhcodi,dc=com" search by * none break # # Access Control end ######################################## ####################################################################### # Specific Directives for database #2, of type 'other' (can be bdb too): # Database specific directives apply to this databasse until another # 'database' directive occurs #database # The base of your directory for database #2 #suffix "dc=debian,dc=org"