ansible/roles/slapd/templates/slapd.conf.j2
Markus Hauschild 3ac021d922 slapd: enable password policies
this will facilitate proper locking of accounts
2024-09-11 15:06:18 +02:00

180 lines
4.8 KiB
Django/Jinja

#
# See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.
#
#######################################################################
# Schemas
#######################################################################
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/kitchen.schema
include /etc/ldap/schema/misc.schema
include /etc/ldap/schema/namedobject.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/openssh-lpk.schema
include /etc/ldap/schema/radius.schema
include /etc/ldap/schema/samba.schema
#######################################################################
# Files, logging, modules
#######################################################################
pidfile /var/run/slapd/slapd.pid
argsfile /var/run/slapd/slapd.args
#loglevel stats sync
loglevel sync
# Load dynamic backend modules:
modulepath /usr/lib/ldap
moduleload back_mdb.la
moduleload ppolicy.la
{% if slapd_role == 'master' %}
moduleload syncprov.la
{% endif %}
# Sample security restrictions
# Require integrity protection (prevent hijacking)
# Require 112-bit (3DES or better) encryption for updates
# Require 63-bit encryption for simple bind
# security ssf=1 update_ssf=112 simple_bind=64
#######################################################################
# ACL
#######################################################################
access to dn.base=""
by * read
access to dn.base="cn=Subschema"
by * read
access to dn.one="ou=people,dc=binary-kitchen,dc=de" attrs=userPassword
by self write
by group="cn=admin,dc=binary-kitchen,dc=de" write
by anonymous auth
by * none
access to dn.one="ou=people,dc=binary-kitchen,dc=de" attrs=loginShell
by self write
by group="cn=admin,dc=binary-kitchen,dc=de" write
by users read
by * none
access to dn.sub="ou=people,dc=binary-kitchen,dc=de"
by group="cn=admin,dc=binary-kitchen,dc=de" write
by self read
by users read
by * none
access to dn.one="ou=groups,dc=binary-kitchen,dc=de" attrs=memberUid
by group="cn=admin,dc=binary-kitchen,dc=de" write
by self read
by users read
by * none
access to attrs=userPassword
by self write
by anonymous auth
by * none
access to attrs=loginShell
by self write
by users read
by * none
access to *
by self read
by users read
by * none
#######################################################################
# TLS
#######################################################################
TLSCertificateFile /etc/ldap/ssl/srv.crt
TLSCertificateKeyFile /etc/ldap/ssl/srv.key
TLSCACertificateFile /etc/ssl/certs/ca-certificates.crt
TLSCACertificatePath /etc/ssl/certs
TLSCipherSuite NORMAL
TLSVerifyClient never
#######################################################################
# MDB database definitions
#######################################################################
database mdb
suffix "{{ ldap_base }}"
# <kbyte> <min>
checkpoint 32 30
rootdn "cn=Manager,dc=binary-kitchen,dc=de"
rootpw {{ slapd_root_hash }}
# The database directory MUST exist prior to running slapd AND
# should only be accessible by the slapd and slap tools.
# Mode 700 recommended.
directory /var/lib/ldap
#######################################################################
# Indices
#######################################################################
index objectClass eq
# Replication related
index entryCSN eq
index entryUUID eq
# Posix Users/Groups
index cn eq
index gidNumber eq
index memberUid eq
index uid eq
index uidNumber eq
# Mail
index mail eq
index mailAlternateAddress eq
#######################################################################
# Password Policies
#######################################################################
overlay ppolicy
ppolicy_default "cn=pp-default,ou=policies,dc=binary-kitchen,dc=de"
{% if slapd_role == 'master' %}
#######################################################################
# Replication
#######################################################################
overlay syncprov
syncprov-checkpoint 10 1
syncprov-sessionlog 100
#######################################################################
# Samba Password Sync
#######################################################################
moduleload smbk5pwd.so
overlay smbk5pwd
smbk5pwd-enable samba
smbk5pwd-must-change 0
{% elif slapd_role == 'slave' %}
#######################################################################
# Replication Consumer
#######################################################################
syncrepl rid={{ slapd_replica_id }}
provider="ldaps://ldapm.binary.kitchen"
searchbase="{{ ldap_base }}"
type=refreshAndPersist
retry="5 10 30 +"
binddn="cn=Manager,dc=binary-kitchen,dc=de"
bindmethod=simple
credentials="{{ slapd_root_pass }}"
tls_reqcert=demand
{% endif %}