Compile OpenLDAP with
--enable-crypt
Create the ldap user and group.
/etc/rc.conf
slapd_enable="YES" slapd_args='-u ldap -g ldap -h "ldap://localhost ldap://<IP address> ldapi://%2fvar%2frun%2fopenldap/???x-mod=0777"'
/usr/local/etc/rc.d/slapd.sh You may not have either of the following lines.
Ignore the next line.
# Uncomment one of the following:
Comment out the next line
slapd_args="-u ldap -g ldap"
/usr/local/etc/openldap/slapd.conf
include /usr/local/etc/openldap/schema/core.schema include /usr/local/etc/openldap/schema/cosine.schema include /usr/local/etc/openldap/schema/nis.schema password-hash {CRYPT} pidfile /var/run/ldap/slapd.pid argsfile /var/run/ldap/slapd.args access to dn.children="ou=postoffice,dc=wibble,dc=net" by dn="cn=dovecot,ou=postoffice,dc=wibble,dc=net" read by anonymous auth database bdb suffix "dc=wibble,dc=net" rootdn "cn=Manager,dc=wibble,dc=net" rootpw hemmelighet directory /var/db/openldap-data index objectClass eq
Compile Dovecot with
--with-rawlog --with-ldap
/usr/local/etc/dovecot-ldap.conf
hosts = localhost dn = cn=dovecot,ou=postoffice,dc=wibble,dc=net dnpass = flop ldap_version = 3 base = ou=postoffice,dc=wibble,dc=net deref = never scope = subtree user_attrs = homeDirectory=home,uidNumber=uid,gidNumber=gid user_filter = (&(objectClass=posixAccount)(uid=%u)) pass_attrs = uid=user,userPassword=password pass_filter = (&(objectClass=posixAccount)(uid=%u)) default_pass_scheme = CRYPT user_global_uid = 3000 user_global_gid = 8
/usr/local/etc/dovecot.conf
base_dir = /var/run/dovecot/ protocols = imap ssl_disable = yes verbose_proctitle = yes first_valid_uid = 3000 last_valid_uid = 3000 first_valid_gid = 8 last_valid_gid = 8 valid_chroot_dirs = /var/mail mail_location = mbox:/var/mail/%u # or maildir maildir_copy_with_hardlinks = yes protocol imap { client_workarounds = oe6-fetch-no-newmail outlook-idle } auth_verbose = yes auth default { mechanisms = plain user = dovecot-auth passdb ldap { args = /usr/local/etc/dovecot-ldap.conf } userdb ldap { args = /usr/local/etc/dovecot-ldap.conf } }
/usr/local/etc/openldap/wibble.ldif
dn: dc=wibble,dc=net objectClass: top objectClass: dcObject objectClass: organization o: Wibble Corp. dc: wibble description: Wibble, with Ole Wobble and Ole Wubble dn: ou=accounts,dc=wibble,dc=net objectClass: top objectClass: organizationalUnit ou: accounts dn: cn=dovecot,ou=accounts,dc=wibble,dc=net objectClass: top objectclass: person cn: dovecot sn: dovecot dn: uid=ole_wobble,ou=accounts,dc=wibble,dc=net objectClass: top objectclass: person objectClass: posixAccount cn: Ole Wobble Olson sn: Olson uid: ole_wobble uidNumber: 3000 gidNumber: 8 homeDirectory: /usr/home/postoffice dn: uid=ole_wubble,ou=accounts,dc=wibble,dc=net objectClass: top objectclass: person objectClass: posixAccount cn: Ole Wubble Olson sn: Olson uid: ole_wubble uidNumber: 3000 gidNumber: 8 homeDirectory: /usr/home/postoffice