前言
因爲公司存在版本管理,項目管理,bug管理系統等各種持續集成開發工具,故通過openldap進行統一賬號管理,方便運維進行賬號授權及人員調動後的權限清除
安裝配置過程
通過yum安裝openldap
yum -y install openldap openldap-clients openldap-servers
openldap 常用名詞解釋
o– organization(組織-公司)
ou – organization unit(組織單元/部門)
c - countryName(國家)
dc - domainComponent(域名組件)
sn – suer name(真實名稱)
cn - common name(常用名稱)
dn - distinguished name(專有名稱)
配置openldap-server
(1)修改openldap默認端口,vim /etc/sysconfig/slapd
SLAPD_URLS="ldapi://0.0.0.0:56388/ ldap://0.0.0.0:56389/"
(2)修改openldap配置文件ldap.conf,配置如下
# LDAP Defaults
#
# See ldap.conf(5) for details
# This file should be world readable but not world writable.
BASE dc=test,dc=com
URI ldap://localhost:56389
#SIZELIMIT 12
#TIMELIMIT 15
#DEREF never
TLS_CACERTDIR /etc/openldap/certs
# Turning this off breaks GSSAPI used with krb5 when rdns = false
SASL_NOCANON on
(3)運行slappasswd,設置管理員密碼,獲得加密串{SSHA}zbOvBUVcAfrL8ayUUt5M62pJ3Ow0srJg
(4)修改根DN並添加密碼,vim /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{2\}hdb.ldif,修改內容如下:
olcSuffix: dc=test,dc=com
olcRootDN: cn=root,dc=test,dc=com
olcRootPW: {SSHA}zbOvBUVcAfrL8ayUUt5M62pJ3Ow0srJg
(5)修改驗證文件中管理員的相關信息,vim /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{1\}monitor.ldif,修改內容如下:
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=extern
al,cn=auth" read by dn.base="cn=root,dc=test,dc=com" read by * none
(6)驗證openldap的基本配置,如下出現succeeded說明配置正確
[root@stest openldap]# slaptest -u
5c625cf4 ldif_read_file: checksum error on "/etc/openldap/slapd.d/cn=config/olcDatabase={1}monitor.ldif"
5c625cf4 ldif_read_file: checksum error on "/etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif"
config file testing succeeded
(7)授權及配置openldap數據庫
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown ldap:ldap -R /var/lib/ldap
chmod 700 -R /var/lib/ldap
chown ldap:ldap -R /var/run/openldap
chown -R ldap:ldap /etc/openldap/
(8)啓動openldap並檢查服務是否啓動成功,如果有輸出則說明啓動成功
systemctl start slapd
ldapsearch -x -b '' -s base'(objectclass=*)'
(9)在/etc/openldap目錄下新建base.ldif文件,文件內容爲:
dn: dc=test,dc=com
o: test
objectClass: top
objectclass: dcObject
objectclass: organization
dn: cn=root,dc=test,dc=com
cn: root
objectClass: organizationalRole
description: Directory Manage
(10)導入管理員賬號到數據庫
ldapadd -x -D "cn=root,dc=test,dc=com" -W -f base.ldif
(11)驗證是否導入成功,ldapsearch -x -b "dc=test,dc=com" -H ldap://127.0.0.1:56389,如看到以下輸出說明導入成功
# extended LDIF
#
# LDAPv3
# base <dc=test,dc=com> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# test.com
dn: dc=test,dc=com
o: test
objectClass: top
objectClass: dcObject
objectClass: organization
dc: test
# root, test.com
dn: cn=root,dc=test,dc=com
cn: root
objectClass: organizationalRole
description: Directory Manage
# search result
search: 2
result: 0 Success
# numResponses: 3
# numEntries: 2
還可以通過ldapadmin管理工具進行賬戶管理