什么是LDAP:
轻型目录访问协议(Lightweight Directory Access Protocol,LDAP):是一个开放的、中立的、业标准的应用协议,通过IP协议提供访问控制和维护分布式信息的目录信息,它是由目录数据库和一套访问协议组成的系统,详情请查看维基百科LDAP。
为什么用LDAP:
LDAP是开放的Internet标准,市场上或者开源社区的绝大多数软件都支持LDAP协议。简单来说,LDAP协议最大的好处就是能统一管理用户密码,新人报道创建一个用户就能登录公司的所有平台(gitlab、jumpserver、监控等等),离职一键删除即可。
OpenLDAP部署
部署环境:
centos 7
openldap2.4.44
phpldapadmin1.2.3
安装相关程序。
# yum -y install openldap openldap-clients openldap-servers
以默认配置为基础生成配置文件,并授权启动。
# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
# chown -R ldap:ldap /var/lib/ldap/
# systemctl start slapd.service
# systemctl enable slapd.service
# 查看状态,正常启动则ok
systemctl status slapd.service
设置OpenLDAP管理员密码。
# 生成加密密码。
# slappasswd -s 123456
{sshA}BGBbiPYSuAQ4gO9r3M1CrW75HmykIV5k
更改openldap配置
注意:从OpenLDAP 2.4.x下已废弃slapd.conf文件,而配置文件被目录slapd.d所取代 。slapd.d目录内包含的ldif文件中的内容,就是slapd.conf中的内容转化成ldif格式,以构成一棵根为cn=config的目录树,这棵树包含了许多结点,如:cn=include, cn=schema, olcBackend=hdb……。所有配置信息就是这些结点的属性。
# vi /etc/openldap/slapd.d/cn\=config\/olcDatabase\={2}hdb.ldif
olcSuffix: dc=fyd,dc=com #找到olcSuffix,修改为你的dc
olcRootDN: cn=admin,dc=fyd,dc=com #找到olcRootDN, 修改为你的用户名
olcRootPW: {sshA}BGBbiPYSuAQ4gO9r3M1CrW75HmykIV5k #在文件末尾添加此行,设置是刚才的密码
更改监控认证配置
# vi /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{1\}monitor.ldif
修改 olcAccess 行中的dn.base=”cn=xxxxxxx”这行为刚才设置的用户名,
如:dn.base=”cn=admin,dc=fyd,dc=com”
测试配置文件
# slaptest -u
config file testing succeeded #说明成功了
启动OpenLDAP和开机启动
systemctl start slapd.service
ss -tanlp |grep 389
部署LDAP管理工具phpldapadmin
修改配置文件httpd.conf
#102行
# vi /etc/httpd/conf/httpd.conf
Options Indexes FollowSymLinks
AllowOverride None
安装phpldapadmin:
# yum -y install epel-release
# yum –enablerepo=epel -y install phpldapadmin
修改配置文件
# vi /etc/phpldapadmin/config.php
找到并取消下面几行的注释:
#298,301,305,323,397,398行
$servers->setValue(‘server’,’host’,’127.0.0.1′);
$servers->setValue(‘server’,’port’,389);
$servers->setValue(‘server’,’base’,array(‘dc=fyd,dc=com’)); #array里加上openldap配置文件中设置的olcSuffix
$servers->setValue(‘login’,’auth_type’,’session’);
$servers->setValue(‘login’,’attr’,’dn’);
//$servers->setValue(‘login’,’attr’,’uid’); #把此行注释掉
修改phpldapadmin访问配置文件
# vi /etc/httpd/conf.d/phpldapadmin.conf
# 9行
# apache 2.4
# Require local
创建基础目录
在/etc/openldap目录下新建base.ldif文件,并添加如下内容
# cat /etc/openldap/base.ldif
dn: dc=fyd,dc=com
o: ldap
Objectclass: organization
dc: fyd
访问web管理端
systemctl start httpd.service