因为公司存在版本管理,项目管理,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 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管理工具进行账户管理