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/ |