LDAP安装方案(一)


本次安装采用yum在线安装,单点ldap   ldap-yum-install:
yum -y install openldap compat-openldap openldap-clients openldap-servers openldap-servers-sql openldap-devel

ldap-start:

启动服务:
systemctl start slapd

设置开机自启:
systemctl enable slapd

测试验证:安装之后验证389 ldap服务端口是否处于监听状态

配置ldap:使用ldap命令修改文件

生成ldap管理员命令: ldppassword修改为为自定义密码,并谨记

ldap-root-pass: slappasswd -h {SSHA} -s ldppassword

创建db.ldif

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=dtstack,dc=com
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=root,dc=dtstack,dc=com
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: {SSHA}cCqYuVkpaR1pHh+QMOG/9LWgNcCGmbK3
说明: olcSuffix:为公司域名,在LDAP中作为目录前缀 olcRootDN:为管理员账号的路径,其中包括管理员账号名称,在这管理员账号我设置为root olcRootPW:上一步生成的密码   将db.ldif文件发送到LDAP服务器: 执行如下命令:  
ldapmodify -Y EXTERNAL  -H ldapi:/// -f db.ldif


输出结果:
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={2}hdb,cn=config"
modifying entry "olcDatabase={2}hdb,cn=config"
modifying entry "olcDatabase={2}hdb,cn=config"

 创建文件 monitor.ldif:

changetype: modify
replace: olcAccess
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external, cn=auth" read by dn.base="cn=root,dc=dtstack,dc=com" read by * none
将文件发送到LDAP: 如下所示为执行命令以及结果:
ldap将文件发送到LDAP:
如下所示为执行命令以及结果:modify -Y EXTERNAL  -H ldapi:/// -f monitor.ldif

输出:
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={1}monitor,cn=config"(该条可能不显示,不用管它)
配置LDAP数据库:   将示例数据库配置文件复制到/var/lib/ldap并更新文件权限。  
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown ldap:ldap /var/lib/ldap/*

 添加cosine和nis LDAP模式:

ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
初始化数据: ldap中的目录结构设计如下:

 创建文件 base.ldif:

dn: dc=dtstack,dc=com
dc: dtstack
objectClass: top
objectClass: domain
dn: cn=root ,dc=dtstack,dc=com
objectClass: organizationalRole
cn: root
description: LDAP Manager
dn: ou=People,dc=dtstack,dc=com
objectClass: organizationalUnit
ou: People
dn: ou=Group,dc=dtstack,dc=com
objectClass: organizationalUnit
ou: Group

这个文件会初始化目录,管理员目录,People目录,Group目录,使用下面的命令构建目录:

ldapadd -x -W -D "cn=root,dc=dtstack,dc=com" -f base.ldif
 
输出:
Enter LDAP Password:
adding new entry "dc=dtstack,dc=com"
adding new entry "cn=root ,dc=dtstack,dc=com"
adding new entry "ou=People,dc=dtstack,dc=com"
adding new entry "ou=Group,dc=dtstack,dc=com"
 
添加用户组和用户: 创建 group.ldif文件:
dn: cn=root,ou=Group,dc=dtstack,dc=com
objectClass: top
objectClass: posixGroup
cn: root
gidNumber: 1003
注意:cn为用户组名称,gidNumber为用户组id,如果要使用linux对接ldap,这两个值不能和服务器上的用户组冲突 执行文件: 添加用户组:
ldapadd -x -W -D "cn=root,dc=dtstack,dc=com" -f group.ldif

 创建文件 user.ldif:

dn: uid=root,ou=People,dc=dtstack,dc=com
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
cn: root
gidNumber: 1003
homeDirectory: /home/ldap_user
uid: root
uidNumber: 1000
loginShell: /bin/bash
shadowLastChange: 18191
shadowMax: 99999
shadowMin: 0
shadowWarning: 7
userPassword: {SSHA}ta/I2SxHRuPiiDrvsuvwvz4KkjtDmH/t
说明: dn:用户路径,必须完整填写路径,其中uid为用户名称 gidNumber:用户组的id userPassword:用户账号对应的密码,这里可不填,后面通过命令修改密码 执行文件: 添加用户:
ldapadd -x -W -D "cn=root,dc=dtstack,dc=com" -f user.ldif

 修改用户密码:

ldappasswd -s abc123 -W -D "cn=root,dc=dtstack,dc=com" -x "uid=ldap_user,ou=People,dc=dtstack,dc=com"
说明: -s指定用户名的密码 -x用户名,密码已更改 -D要对LDAP服务器进行身份验证的可分辨名称。   启用LDAP日志记录
启用LDAP日志记录
配置Rsyslog以将LDAP事件记录到日志文件/var/log/ldap.log。
vim /etc/rsyslog.conf
将以下行添加到/etc/rsyslog.conf文件中。
local4.* /var/log/ldap.log
重新启动rsyslog服务。
systemctl restart rsyslog

验证方式:Apache studio工具远程连接上