斑竹网络专注为中小企业客户提供以管理服务为核心的IT全方位服务 https://www.sysadm.cn
分类: LINUX
2013-12-19 10:24:36
用openldap进行linux认证
(时间:2010-11-25)
(OS:
LDAP SERVER: Linux version 2.6.18-8.el5xen
LDAP: openldap-devel-2.3.27-5
LDAP CLIENT: Linux version 2.6.32-71.el6.i686)
一、 LDAP Server 安装
(一) 安装配置
# rpm -ihv openldap-servers-2.3.27-5.i386.rpm
在安装过程中,如果提示需要libltdl.so.3文件,则需要在安装LDAP Server端软件之前先安装libtool-ltdl-1.5.22-6.1.i386.rpm文件:
rpm –ihv libtool-ltdl-1.5.22-6.1.i386.rpm
rpm -ihv openldap-servers-2.3.27-5.i386.rpm
修改/etc/openldap/slapd.conf
意思修改如下内容:
database bdb
suffix "dc=vip,dc=bdt,dc=cn"
rootdn "cn=root,dc=vip,dc=bdt,dc=cn"
rootpw {SSHA}4JFNz8mKujniVsLcgq+jT/7Uwc2tuWi7
注:
其中rootpw部分的内容可以用slappasswd来获得,
修改openldap客户端的配置文件:
/etc/ldap.conf,注意修改如下内容:
host 127.0.0.1
base dc=vip,dc=bdt,dc=cn
将OPENLDAP的DB配置文件拷到指的目录下:
cp DB_CONFIG.example /var/lib/ldap/DB_CONFIG
然后就可以启动openldap进行测试:
Service ldap start
用下列命令进行查询,用以测试是否服务器是否正常:
ldapsearch -x -b 'dc=bdt,dc=cn' 如果有类似以下显示则说明服务器正常了
# extended LDIF
#
# LDAPv3
# base
# filter: (objectclass=*)
# requesting: ALL
#
# bdt.cn
dn: dc=bdt,dc=cn
objectClass: dcObject
objectClass: organization
dc: bdt
o: Corporation
description: d Corporation
(二) 录入数据
服务器配置好了,就可以向服务上录入数据了,录入数据的方法有以下三种:
a. 手工录入
执行下列命令就可以录入数据:
ldapadd -x -D 'cn=root,dc=vip,dc=bdt,dc=cn' –W 然后输入以下内容:
dn: dc=vip,dc=bdt,dc=cn
objectClass: dcObject
objectClass: organization
dc: bdt
o: Corporation
description: d Corporation
# qq, bdt.cn
dn: uid=qq,dc=bdt,dc=cn
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
uid: qq
cn: qq
sn: qq
telephoneNumber: 138888888
description: openldap test
telexNumber: tex-8888888
street: my street
postOfficeBox: postofficebox
displayName: qqdisplay
homePhone: home1111111
mobile: mobile99999
mail:
输入完毕以后,按Ctrl + D 完成录入
b. 文件方式
将上面内容保存成一个ldif文件,然后用下列命令添加进去:
ldapadd -x -D "cn=root,dc=bdt,dc=cn" -W -f test.ldif
c. 使用脚本方式
现在有现成的phpldapadmin脚本可以对ldap进行管理,安装这个脚本即可对其进行管理
Phpldapadmin的地址是在:
(三)将下列内容导入到ldap数据库
a.导入主域信息
#vi base.ldif
dn: dc=vip,dc=bdt,dc=cn
dc: vip
objectClass: top
objectClass: domain
dn: ou=People,dc=vip,dc=bdt,dc=cn
ou: People
objectClass: top
objectClass: organizationalUnit
dn: ou=Group,dc=vip,dc=bdt,dc=cn
ou: Group
objectClass: top
objectClass: organizationalUnit
注:
People部分是用于放用户信息;即帐号信息都在people结构下;
Group部分是用来放用户的组信息;即组信息都在group结构下;
b.增加新的组ldapuser,gid为501
#vi group.ldif
dn: cn=ldapuser,ou=Group,dc=vip,dc=bdt,dc=cn
objectClass: posixGroup
objectClass: top
cn: ldapuser
userPassword: {crypt}x
gidNumber: 501
# ldapadd -x -D "cn=root,dc=vip,dc=bdt,dc=cn" -W -f group.ldif
c. 增加新的用户bdtuser,uid为501
dn: uid=bdtuser,ou=People,dc=vip,dc=bdt,dc=cn
uid: bdtuser
cn: ldapuser
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword: {crypt}$1$bdtuser$qieASP9nCAUzzFmqeyO6I.
shadowLastChange: 13048
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 501
gidNumber: 501
homeDirectory: /home/bdtuser
gecos: bdtuser
注:
上述的userPassword字段的内容是用下列命令生成的:
openssl passwd -1 -salt bdtuser bwyy1679
# ldapadd -x -D "cn=root,dc=vip,dc=bdt,dc=cn" -W -f bdtuser.ldif
二、客户机配置
在要使用ldap用户进行登陆的客户机上,要安装:
nss-pam-ldapd-0.7.5-3.el6.i686.rpm和pam_ldap-185-5.el6.i686.rpm软件包,系统中如果没有安装这两个软件包,则在进行下面的操作之前需要先行安装起来。