Toper Lv
2015.8.20
系统版本:Red Hat Enterprise Linux 6.4 x86_x64―桌面
语言:中文
主机名:ldap
IP:192.168.80.80
关闭防火墙,否则无法从外部管理、调用LDAP服务器
[root@ldap ~]# service iptables stop
[root@ldap ~]# chkconfig iptables off
[root@ldap ~]# setenforce 0
[root@ldap ~]# vim /etc/selinux/config
将RHEL6.4的光盘连接至服务器,挂载光盘
[root@ldap ~]# mount /dev/cdrom /media
配置yum源
[root@ldap ~]# vim /etc/yum.repos.d/rhel6.repo
[RHEL6]
name=RHEL6.4
baseurl=file:///media
gpgcheck=0
enabled=1
[root@ldap ~]# yum clean all
RHEL6.4光盘自带的OpenLDAP版本为2.4.2,部署OpenLDAP需要安装如下软件包
openldap-clients.x86_64 2.4.23-31.el6 RHEL6
openldap-devel.x86_64 2.4.23-31.el6 RHEL6
openldap-servers.x86_64 2.4.23-31.el6 RHEL6
[root@ldap ~]# yum install openldap-* �Cy
拷贝slapd.conf配置文件
[root@ldap ~]# cd /etc/openldap/
[root@ldap openldap]# cp /usr/share/openldap-servers/slapd.conf.obsolete slapd.conf
设置OpenLDAP管理密码,复制产生的密文
[root@ldap openldap]# slappasswd
New password:
Re-enter new password:
{SSHA}FL1/4tYmirlnj9rT6qy2Fr133MJ5HCKc
编辑slapd.conf配置文件
参照下图设置管理账号和域,例如这里设置的管理账号为:admin;域:test.com
新添加一行rootpw,粘贴上一步复制的密文
[root@ldap openldap]# vim /etc/openldap/slapd.conf
由于slapd.d目录下的文件是根据之前默认的域my-domain.com生成的,所以把该目录下所有文件都删除
[root@ldap openldap]# rm -rf /etc/openldap/slapd.d/*
拷贝DB_CONFIG文件到指定目录
[root@ldap openldap]# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
启动slapd服务,由于删除了slapd.d目录下的文件,所以会报错,忽略即可
[root@ldap openldap]# service slapd start
ls: 无法访问/etc/openldap/slapd.d//cn=config/olcDatabase*.ldif: 没有那个文件或目录
正在启动 slapd: [确定]
[root@ldap openldap]# chkconfig slapd on
修改文件所有者和所属组
[root@ldap openldap]# chown -R ldap:ldap /var/lib/ldap
[root@ldap openldap]# chown -R ldap:ldap /etc/openldap
根据配置的slapd.conf,重新生成slapd.d目录下文件,成功会提示“config file testing succeeded”
[root@ldap openldap]# slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/
config file testing succeeded
修改slapd.d目录下新生成文件的所有者和所属组,重启slapd服务
[root@ldap openldap]# chown -R ldap:ldap /etc/openldap/slapd.d/*
[root@ldap openldap]# service slapd restart
创建域内组织架构ldif文件
域:test.com OU:users
[root@ldap ~]# cd /tmp
[root@ldap tmp]# vim base.ldif
dn: dc=test,dc=com
dc: test
objectClass: top
objectClass: domain
dn: ou=users,dc=test,dc=com
ou: users
objectClass: top
objectClass: organizationalUnit
创建用户ldif文件,隶属于users
cn、uid都是可以登录的用户名,一般保持相同
cn相当于名字,sn为姓。sn属于必填项,随便写即可
userPassword:用户的密码,这里写的是明文,也可以为密文
[root@ldap tmp]# vim user.ldif
dn: cn=ldapuser1,ou=users,dc=test,dc=com
uid: ldapuser1
cn: ldapuser1
sn: ldap1
objectClass: inetOrgPerson
userPassword: 123456
dn: cn=ldapuser2,ou=users,dc=test,dc=com
uid: ldapuser2
cn: ldapuser2
sn: ldap2
objectClass: inetOrgPerson
userPassword: 123456
通过检索可以看到,现在LDAP服务器的test.com域还没有任何信息
[root@ldap tmp]# ldapsearch -x -b "dc=test,dc=com"
# extended LDIF
#
# LDAPv3
# base <dc=test,dc=com> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# search result
search: 2
result: 32 No such object
# numResponses: 1
根据编写的组织架构文件添加组织架构,提示输入的密码是slappasswd生成的密码
[root@ldap tmp]# ldapadd -x -D "cn=admin,dc=test,dc=com" -W -f /tmp/base.ldif
Enter LDAP Password:
adding new entry "dc=test,dc=com"
adding new entry "ou=users,dc=test,dc=com"
根据编写的用户文件添加用户
[root@ldap tmp]# ldapadd -x -D "cn=admin,dc=test,dc=com" -W -f /tmp/user.ldif
Enter LDAP Password:
adding new entry "cn=ldapuser1,ou=users,dc=test,dc=com"
adding new entry "cn=ldapuser2,ou=users,dc=test,dc=com"
检索test.com域内所有有cn的用户
[root@ldap tmp]# ldapsearch -x -b 'dc=test,dc=com' 'cn=*'
# extended LDIF
#
# LDAPv3
# base <dc=test,dc=com> with scope subtree
# filter: cn=*
# requesting: ALL
#
# ldapuser1, users, test.com
dn: cn=ldapuser1,ou=users,dc=test,dc=com
uid: ldapuser1
cn: ldapuser1
sn: ldap1
objectClass: inetOrgPerson
userPassword:: MTIzNDU2
# ldapuser2, users, test.com
dn: cn=ldapuser2,ou=users,dc=test,dc=com
uid: ldapuser2
cn: ldapuser2
sn: ldap2
objectClass: inetOrgPerson
userPassword:: MTIzNDU2
# search result
search: 2
result: 0 Success
# numResponses: 3
# numEntries: 2
检索test.com域内指定cn的用户
[root@ldap tmp]# ldapsearch -x -b 'dc=test,dc=com' 'cn=ldapuser1'
# extended LDIF
#
# LDAPv3
# base <dc=test,dc=com> with scope subtree
# filter: cn=ldapuser1
# requesting: ALL
#
# ldapuser1, users, test.com
dn: cn=ldapuser1,ou=users,dc=test,dc=com
uid: ldapuser1
cn: ldapuser1
sn: ldap1
objectClass: inetOrgPerson
userPassword:: MTIzNDU2
# search result
search: 2
result: 0 Success
# numResponses: 2
# numEntries: 1
可以通过在Windows上安装LDAP Administrator软件来管理LDAP服务器
下载地址:http://www.ldapadministrator.com/download.htm
新建服务器配置文件
随便起个名字
连接的LDAP服务器信息
连接凭证信息
完成
现在就可以看到在LDAP服务器创建的组织和用户了。
可以在userPassword部分右击来修改用户的密码。
从图形界面可以完成LDAP服务器内全部信息的管理,具体使用请各自花时间探索。
这里以一台堡垒机为例,LDAP服务器的凭证信息配置如下:
配置通过哪些字段来进行LDAP认证。
用户对象类型:inetOrgPerson
用户字段名称:cn (由于我们的LDAP用户创建时添加了uid,所以这里也可以使用uid)
用户口令字段:userPassword