OpenLDAP fails to start when smbk5pwd is enabled, following error message is displayed: slapd |slapd: error trying to load dynamic module /usr/lib64/hdb_ldap.so: /usr/lib64/hdb_ldap.so: undefined symbol: krb5_get_default_realms Reproducible: Always Steps to Reproduce: 1. Install OpenLDAP w/ smbk5pwd&kerberos support 2. /etc/init.d/slapd start Actual Results: Startup fails: slapd |slapd: error trying to load dynamic module /usr/lib64/hdb_ldap.so: /usr/lib64/hdb_ldap.so: undefined symbol: krb5_get_default_realms Expected Results: slapd successfully starts 1. Use flags for openldap: berkdb crypt kerberos overlays perl samba sasl smbkrb5passwd ssl syslog tcpd 2. Here's the slapd.conf I have: # # See slapd.conf(5) for details on configuration options. # This file should NOT be world readable. # include /etc/openldap/schema/core.schema include /etc/openldap/schema/cosine.schema include /etc/openldap/schema/inetorgperson.schema include /etc/openldap/schema/nis.schema include /etc/openldap/schema/krb5-kdc.schema include /etc/openldap/schema/ppolicy.schema include /etc/openldap/schema/samba.schema # Define global ACLs to disable default read access. # 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/openldap/slapd.pid argsfile /var/run/openldap/slapd.args # Load dynamic backend modules: modulepath /usr/lib64/openldap/openldap moduleload ppolicy.so moduleload back_ldap.so moduleload syncprov.so moduleload smbk5pwd.so password-hash {K5KEY} # 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 # 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 # Allow authenticated users read access # Allow anonymous users to authenticate # Directives needed to implement policy: access to dn.base="" by * read access to dn.base="cn=Subschema" by * read access to * by dn.exact="uid=heimdal,ou=Users,dc=bethania" write by self write by users read by anonymous auth # # 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") # # rootdn can always read and write EVERYTHING! TLSCipherSuite HIGH:MEDIUM TLSCertificateFile /etc/openldap/ssl/server.crt TLSCertificateKeyFile /etc/openldap/ssl/server.key sasl-secprops minssf=0 ####################################################################### # BDB database definitions ####################################################################### database hdb suffix "dc=bethania" overlay smbk5pwd smbk5pwd-enable krb5 smbk5pwd-enable samba checkpoint 32 30 rootdn "cn=admin,dc=bethania" rootpw {SSHA}RzKOSGSvisceIHSvhYpI8EkydEszvPJ/ directory /var/lib/openldap-data # Indices to maintain index objectClass eq index cn eq,sub,pres index uid eq,sub,pres index displayName eq,sub,pres index krb5PrincipalName eq overlay ppolicy ppolicy_default "cn=defaultpwpolicy,dc=bethania" # kerberos auth stuff authz-regexp "gidNumber=0\\\+uidNumber=0,cn=peercred,cn=external,cn=auth" "uid=heimdal,ou=Users,dc=bethania" authz-regexp ^uid=([^,]+),cn=[^,]+,cn=auth$ uid=$1,ou=Users,dc=bethania 3. heimdal (1.2.1-r10) is compiled with following USE flags: berkdb hdb-ldap ssl
This has been solved by re-emerging heimdal. I actually downgraded to r4.