本次学习参考了如下的一些教程,本文内容是按照以下文章的内容进行实验完成的
搭建的步骤如下,在redhat linux 9上进行搭建
1.安装相关软件包
# rpm -qa | grep openldap
openldap-devel-2.0.23-4
openldap-2.0.23-4
openldap-servers-2.0.23-4
openldap-clients-2.0.23-4
2.配置slapd.conf(一般都是缺省配置)
database ldbm
suffix "dc=syroidmanor,dc=com"
rootdn "cn=root,dc=syroidmanor.com,dc=com"
rootpw {CRYPT}
directory /var/lib/ldap
index objectClass,uid,uidNumber,gidNumber,memberUid eq
index cn,mail,surname,givenname eq,subinitial
设置root密码
slappasswd -h {crypt}
将运行的结果填入到slapd.conf的rootpw中
3.启动ldap服务,并设置为自动启动
service ldap start
chkconfig --levels 235 ldap on
检查服务在运行
ps -ef | grep slap
ldap 13521 1 0 Oct24 ? 00:00:00 /usr/sbin/slapd -u ldap -h
4.测试访问
ldapsearch -x -b '' -s base '(objectclass=*)' namingContexts
输出的结果应该是空,目前没有数据
5.设置ACL
配置 LDAP 服务器的最后一步是设置一些基本访问控制。这样做可以确保用户只能访问他们需要访问的项。
ACL 示例
# Define ACLs -- access control definitions
access to dn=".*,dc=syroidmanor,dc=com" attr=userPassword
by dn="cn=root,dc=syroidmanor,dc=com" write
by self write
by * auth
access to dn=".*,dc=syroidmanor,dc=com" attr=mail
by dn="cn=root,dc=syroidmanor,dc=com" write
by self write
by * read
access to dn=".*,ou=people,dc=syroidmanor,dc=com"
by * read
access to dn=".*,dc=syroidmanor,dc=com"
by self write
by * read
6.填充数据
有手工填充,脚本填充和文件填充。现在就按照手工填充的方法操作。
编辑一个sample.ldif文件,内容如下
dn: uid=juser,ou=people,dc=syroidmanor,dc=com
uid: juser
cn: Joe User
givenname: Joe
sn: User
mail:
objectClass: top
objectClass: mailRecipient
objectClass: person
objectClass: inetOrgPerson
填充到ldap数据库中
ldapadd -x -D "cn=root,dc=syroidmanor,dc=com" -W -f sample.ldif
输入root的口令就填充成功了!
另外也可以通过手工输入和脚本录入的方法。
7.迁移数据
迁移工具可以将linux本地账户生成为LDIF文件。工具位于 /usr/share/openldap/migration/下
首先修改migrate_common.ph文件
$DEFAULT_BASE = "dc=syroidmanor,dc=com"
migrate_base.pl > base.ldif
ldapadd -x -D "cn=root,dc=syroidmanor,dc=com" -W -f base.ldif
回车输入密码即导入
迁移ldapuser用户和ldapuser群组,将group.ldif和passwd.ldif导入
cat group.ldif
dn: cn=ldapuser,ou=Group,dc=syroidmanor,dc=com
objectClass: posixGroup
objectClass: top
cn: ldapuser
userPassword: {crypt}x
gidNumber: 500
cat passwd.ldif
dn: uid=ldapuser,ou=People,dc=syroidmanor,dc=com
uid: ldapuser
cn: ldapuser
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword: {crypt$1$TeOlOcMc$cpQaa0WpLSFRC1HIHW5bt1
shadowLastChange: 13048
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 500
gidNumber: 500
homeDirectory: /home/ldapuser
gecos: ldapuser
导入完毕后可以通过命令查看当前ldap服务器上的所有对象
ldapsearch -LLL -h server(服务器) -b "dc=syroidmanor,dc=com" -x -D "cn=root,dc=syroidmanor,dc=com" -W objectclass=*回车输入密码
如果在/etc/openldap/ldap.conf修改如下参数
host server(服务器)
BASE dc=syroidmanor,dc=com
那么直接通过ldapsearch -x就可以查询了
8.开启日志功能
vi /etc/openldap/slapd.conf
loglevel 256
vi /etc/syslog.conf
local4.* /var/log/ldap/ldap.log
cd /var/log
mkdir ldap
cd ldap
touch ldap.log
重起 syslog和ldap服务
阅读(1604) | 评论(0) | 转发(0) |