本次安装采用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工具远程连接上