什么是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