Apéndice Q. Archivo de configuración /etc/ldap/slapd.conf

# 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/openldap.schema
include     /etc/ldap/schema/misc.schema
include     /etc/ldap/schema/samba.schema
include     /etc/ldap/schema/pykota.schema

# Schema check allows for forcing entries to
# match schemas for their objectClasses's
schemacheck  on

# 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.args

# Read slapd.conf(5) for possible values
loglevel     -1

# Where the dynamically loaded modules are stored
modulepath  /usr/lib/ldap
moduleload  back_ldbm

#######################################################################
# Specific Backend Directives for ldbm:
# Backend specific directives apply to this backend until another
# 'backend' directive occurs
backend     ldbm

#######################################################################
# Specific Backend Directives for 'other':
# Backend specific directives apply to this backend until another
# 'backend' directive occurs
#backend    <other>

#######################################################################
# Specific Directives for database #1, of type ldbm:
# Database specific directives apply to this databasse until another
# 'database' directive occurs
database    ldbm

# The base of your directory in database #1
suffix      "dc=gsr,dc=pt"

# Where the database file are physically stored for database #1
directory   "/var/lib/ldap"

# Indexing options for database #1
#
# Requerido por OpenLDAP
index objectclass   eq

index default       sub
index cn            pres,sub,eq
index sn            pres,sub,eq
index mail          eq,subinitial
index givenname     eq,subinitial

# Requerido para soportar pdb_getsampwnam
index uid           pres,sub,eq

# Requerido para soportar pdb_getsambapwrid()
index displayName   pres,sub,eq

# Descomente las siguientes líneas si está almacenando entradas
# posixAccount y posixGroup en el directorio
index uidNumber     eq
index gidNumber     eq
index memberUid     eq

# Samba 3.*
index sambaSID              eq
index sambaPrimaryGroupSID  eq
index sambaDomainName       eq

# PyKota
index pykotaUserName        pres,eq,sub
index pykotaGroupName       pres,eq,sub
index pykotaPrinterName     pres,eq,sub
index pykotaLastJobIdent    eq

# 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

# 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 attribute=userPassword
    by dn="cn=admin,dc=gsr,dc=pt" write
    by dn="cn=readadmin,dc=gsr,dc=pt" read
    by dn="cn=pykotaadmin,dc=gsr,dc=pt" write
    by dn="cn=pykotauser,dc=gsr,dc=pt" read
    by self write
    by anonymous auth
    by * none

# allow the "ldap admin dn" access, but deny everyone else
# (Samba related)
access to attribute=sambaLMPassword,sambaNTPassword
    by dn="cn=admin,dc=gsr,dc=pt" write
    by dn="cn=readadmin,dc=gsr,dc=pt" read
    by dn="cn=pykotaadmin,dc=gsr,dc=pt" write
    by dn="cn=pykotauser,dc=gsr,dc=pt" read
    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

# The admin dn has full write access, everyone else
# can read everything.
access to *
    by dn="cn=admin,dc=gsr,dc=pt" write
    by dn="cn=readadmin,dc=gsr,dc=pt" read
    by dn="cn=pykotaadmin,dc=gsr,dc=pt" write
    by dn="cn=pykotauser,dc=gsr,dc=pt" read
    by self write
    by users read
    by anonymous auth


# For Netscape Roaming support, each user gets a roaming
# profile for which they have write access to
#access to dn=".*,ou=Roaming,o=morsnet"
#        by dn="cn=admin,dc=gsr,dc=pt" write
#        by dnattr=owner write

# User Limits
limits dn="cn=pykotauser,dc=gsr,dc=pt" size.soft=-1 size.hard=soft
limits dn="cn=pykotaadmin,dc=gsr,dc=pt" size.soft=-1 size.hard=soft

# CA signed certificate and server cert entries: 
 
TLSCipherSuite HIGH:MEDIUM:+SSLv2 
TLSCACertificateFile /etc/ldap/ssl/cacert.pem
TLSCertificateFile /etc/ldap/ssl/certs/servidorcert.pem 
TLSCertificateKeyFile /etc/ldap/ssl/private/servidorkey.pem
 
# Use the following if client authentication is required 
TLSVerifyClient demand 
# ... or not desired at all 
#TLSVerifyClient try
#TLSVerifyClient allow
#TLSVerifyClient never

#TLSCipherSuite ALL

#######################################################################
# Specific Directives for database #2, of type 'other' (can be ldbm too):
# Database specific directives apply to this databasse until another
# 'database' directive occurs
#database        <other>

# The base of your directory for database #2
#suffix		"dc=debian,dc=org"