本来在Ubuntu下搭建OpenLDAP服务是件相当轻松愉快的事,只要apt-get install slapd,然后在安装过程中按提示中输入管理员的密码,然后用"cn=admin,cn=config"超级用户登录系统,输入安装时设置的密码即可进入系统了。但现在由于安装包中不再帮助创建"cn=admin,cn=config"用户,而且安装包只安装最小的"cn=config"数据库,所以一切都得自己来建,包括你需要导入的Schema,因此写了这篇文章备忘。

一、安装LDAP服务及工具

sudo apt-get install slapd ldap-utils

二、导入需要的Schema

sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/cosine.ldif
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/inetorgperson.ldif
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/nis.ldif

三、创建后台数据库

1、使用slappasswd创建数据库管理员密码

slappasswd

New password:
Re-enter password:
{SSHA}ijaDKM6Aj8GQI6rbn8tFL/vXy6t1D2x3

2、创建后台数据库的ldif文件,其中

  • 域:dc=wzu,dc=edu,dc=cn
  • 管理员:cn=admin,dc=wzu,dc=edu,dc=cn

文件内容如下:

# 引导动态后台模块 
dn: cn=module,cn=config
objectClass: olcModuleList
cn: module
olcModulepath: /usr/lib/ldap
olcModuleload: back_hdb

# 设置数据库
dn: olcDatabase=hdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {1}hdb
olcSuffix: dc=wzu,dc=edu,dc=cn
olcDbDirectory: /var/lib/ldap
olcRootDN: cn=admin,dc=wzu,dc=edu,dc=cn
#此处填入用slapdpasswd生成的密码
olcRootPW: {SSHA}ijaDKM6Aj8GQI6rbn8tFL/vXy6t1D2x3
olcDbConfig: set_cachesize 0 2097152 0
olcDbConfig: set_lk_max_objects 1500
olcDbConfig: set_lk_max_locks 1500
olcDbConfig: set_lk_max_lockers 1500
olcDbIndex: objectClass eq
olcLastMod: TRUE
olcDbCheckpoint: 512 30
olcAccess: to attrs=userPassword by dn="cn=admin,dc=wzu,dc=edu,dc=cn" write by a
nonymous auth by self write by * none
olcAccess: to attrs=shadowLastChange by self write by * read
olcAccess: to dn.base="" by * read
olcAccess: to * by dn="cn=admin,dc=wzu,dc=edu,dc=cn" write by * read

3、导入ldif文件

sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/backend.wzu.edu.cn.ldif

四、管理OpenLDAP服务

管理OpenLDAP的软件很多,这里为了方便,使用phpldapadmin,安装很简单,只需要执行以下命令:

sudo apt-get install phpldapadmin

然后在浏览器地址栏输入:http://安装phpldapadmin机器/phpldapadmin 即可访问。