CentOS安装LDAP
前言
轻型目录访问协议(英文:Lightweight Directory Access Protocol,缩写:LDAP,/ˈɛldæp/)是一个开放的,中立的,工业标准的应用协议,通过IP协议提供访问控制和维护分布式信息的目录信息。
LDAP的主要应用场景
1.网络服务:DNS服务
2.统一认证服务:
3.Linux PAM (ssh, login, cvs. . . )
4.Apache访问控制
5.各种服务登录(ftpd, php based, perl based, python based. . . )
6.个人信息类,如地址簿
7.服务器信息,如帐号管理、邮件服务等
注意:从OpenLDAP2.4.23版本开始所有配置数据都保存在/etc/openldap/slapd.d/中,不再使用slapd.conf作为配置文件
安装
LDAP
安装工具
1 | sudo yum install -y openldap compat-openldap openldap openldap-clients openldap-devel openldap-servers |
- 安装后的目录:
/etc/openldap/ - 数据文件路径:
/var/lib/ldap - 模板数据库配置文件:
/usr/share/openldap-servers/DB_CONFIG.example /usr/share/openldap-servers/slapd.ldif
如果是虚拟机安装:需要挂载
cdrom
启动服务
1 | sudo systemctl start slapd |
查看端口
占用 389 端口
1 | netstat -tlnp | grep slapd |
查看用户
1 | tail -n 1 /etc/passwd |
配置
修改域信息
设置管理员密码
1 | slappasswd |
输出的密码:{SSHA}0tKDKqne3gJ30xZ73rDO491r/AlaJd0N
修改域信息
1 | cd /etc/openldap/slapd.d/cn\=config |

olcRootDN:cn=root中的root是管理员用户名olcRootPW:表示管理员密码
修改管理员信息
1 | vim /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{1\}monitor.ldif |

- dn.base是修改OpenLDAP的管理员的相关信息
验证OpenLDAP的基本配置,使用如下命令:
1 | slaptest -u |

重启
1 | sudo systemctl restart slapd |
配置OpenLDAP数据库
OpenLDAP默认使用的数据库是BerkeleyDB,现在来开始配置OpenLDAP数据库,使用如下命令:
1 | cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG |

/var/lib/ldap/就是BerkeleyDB数据库默认存储的路径。
导入基本Schema
1 | ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif |
安装 migrationtools
migrationtools 实现OpenLDAP 用户及用户组的添加,migrationtools 开源工具通过查找/etc/passwd、/etc/shadow、/etc/groups 生成LDIF 文件,并通过ldapadd 命令更新数据库数据,完成用户添加。
1 | yum install -y migrationtools |
修改migrate_common.ph文件
migrate_common.ph文件主要是用于生成ldif文件使用,修改migrate_common.ph文件,如下:
1 | vim /usr/share/migrationtools/migrate_common.ph +71 |
写入
1 | $DEFAULT_MAIL_DOMAIN = “maxzhao.com”; |

添加用户和用户组
管理员用户就是 root,没有普通用户
添加系统用户
1 | groupadd ldapg1 |
生成 ldif文件
取出用户
1 | grep ":10[0-9][0-9]" /etc/passwd > /root/users |

根据上述生成的用户和用户组属性,使用migrate_passwd.pl文件生成要添加用户和用户组的ldif,如下:
1 | /usr/share/migrationtools/migrate_passwd.pl /root/users > /root/users.ldif |


导入用户到LDAP
1 | cat > /root/base.ldif << EOF |
导入基础数据库:
1 | ldapadd -x -w "maxzhao" -D "cn=root,dc=maxzhao,dc=com" -f /root/base.ldif |
导入用户到数据库
1 | ldapadd -x -w "maxzhao" -D "cn=root,dc=maxzhao,dc=com" -f /root/users.ldif |

查看BerkeleyDB数据库文件
1 | ll /var/lib/ldap/ |