Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2651953
  • 博文数量: 631
  • 博客积分: 10716
  • 博客等级: 上将
  • 技术积分: 8397
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-01 22:35
文章分类

全部博文(631)

文章存档

2020年(2)

2019年(22)

2018年(4)

2017年(37)

2016年(22)

2015年(1)

2013年(12)

2012年(20)

2011年(19)

2010年(20)

2009年(282)

2008年(190)

分类: LINUX

2009-04-17 11:09:10

一、说明
    LDAP(轻量级目录访问协议,Lightweight Directory Access Protocol)是实现提供被称为目录服务的信息服务。目录服务是一种特殊的数据库系统,其专门针对读取,浏览和搜索操作进行了特定的优化。


二、下载软件
ftp://ftp.openldap.org/pub/OpenLDAP/openldap-stable/openldap-stable-20070831.tgz

三、解压安装
操作环境:RHEL AS4
#gunzip openldap-stable-20070831.tgz
#tar xvf openldap-stable-20070831.tar -C /tmp
#cd /tmp
#./configure --prefix=/usr/local/openldap
#make depend
#make
#make test
#make install  

四、相关配置目录
LDAP后台程序slapd目录:/usr/local/openldap/libexec
配置文件目录:/usr/local/openldap/etc
运行数据库目录:/usr/local/openldap/var/openldap-data
OpenLDAP工具目录:/usr/local/openldap/bin

五、修改配置文件
1) 更改配置文件/usr/local/etc/openldap/slapd.conf
   在include /usr/local/etc/openldap/schema/core.schema这行后面加上下面的行,包括所有的方案。  
      include /usr/local/etc/openldap/schema/corba.schema
      include /usr/local/etc/openldap/schema/cosine.schema
      include /usr/local/etc/openldap/schema/inetorgperson.schema
      include /usr/local/etc/openldap/schema/java.schema
      include /usr/local/etc/openldap/schema/krb5-kdc.schema
      include /usr/local/etc/openldap/schema/misc.schema
      include /usr/local/etc/openldap/schema/nadf.schema
      include /usr/local/etc/openldap/schema/nis.schema
      include /usr/local/etc/openldap/schema/openldap.schema
2) 在文件slapd.conf的"dbm database definitions"部分更改相应的
      suffix,rootdn行如下
      database dbm
      suffix "dc=example,dc=com"
      rootdn "cn=root,dc=example,dc=com"
      rootpw secret
      directory /usr/local/openldap/var/openldap-data
      rootdn的格式安装后默认为cn=Manager,这里改为root完全是自己的喜好,这样符合
      Unix/Linux中root具有最高权限的传统。

3) 现在可以启动slapd了,运行/usr/local/openldap/libexec/slapd
   可以考虑把/usr/local/bin and /usr/local/libexec加到搜索路径中,即加到/etc/profile 中的PATH行:
   PATH="$PATH:/usr/X11R6/bin:/usr/local/bin:/usr/local/openldap/libexec"
   这样下次登录后只需键入slapd


4)测试ldap server是否正常工作。
  运行下面的命令检查是否有相应的输出。
#ldapsearch -x -b "dc=example,dc=com" "(objectclass=*)"


5) 下载个migration脚本来创建.ldif文件,链接地址:http://www.padl.com/download/MigrationTools.tgz
  #gunzip MigrationTools.tgz;tar xvf MigrationTools.tar -C /usr/local/openldap
  #cd /usr/local/openldap/MigrationTools-47
  先编辑migrate_common.ph 文件,将其中两行改为下列形式
  $DEFAULT_MAIL_DOMAIN = "example.com";
  $DEFAULT_BASE = "dc=example,dc=com";
   要注意修改的方法要和您/usr/local/openldap/etc/openldap/slapd.conf中的dc=example,dc=com 相对应
   创建base.ldif文本文件
   执行
  #./migrate_base.pl > /root/base.ldif
  #./migrate_group.pl /etc/group >> /root/base.ldif
  #./migrate_passwd.pl /etc/passwd >> /root/base.ldif
 
  用ldapadd添加记录进入LDAP数据库.
  文件内容如下: 
    dn: dc=example,dc=com
    dc: example
    objectClass: top
    objectClass: domain

    dn: ou=Hosts,dc=example,dc=com
    ou: Hosts
    objectClass: top
    objectClass: organizationalUnit
    ………………more……………………………………………………

     依次类推,添加每个人的记录进入该文件中
     然后用下面的命令添加上面的.ldif文件进入LDAP数据库
    
    #ldapadd -x -D "cn=root,o=example,c=us" -w secret -f base.ldif
     注:上面的文件的第一部分"dn: dc=example,dc=com"是必须的,否则不能添加数据。

6)  我们一经将所有用户、组及其密码导入了ldap服务器.

7)   客户端配置用户验证方法
     在客户端执行authconfig,如附图所示
     图片1


     与图片2
     对于客户机器而言,应该将服务器地址写为提供LDAP服务的机器上。
     注意,客户端需要每次启动之后自动运行nscd服务,您可以通过执行ntsysv 命令来使nscd服务自动执行,也可以使用                  chkconfig  –level 35 nscd on 命令来做同样的事情。
     并且,服务器本身也可以使用自己的Openldap服务器来进行用户验证。

8)   服务器端配置NFS服务
    配置NFS服务器。这很简单。只需要在/etc/exports 写一行:
   /home (rw)
    就可以了。并且使得portmap nfs 服务都能够自动运行。
   chkconfig --level 35 portmap on
   chkconfig --level 35 nfslock on
   chkconfig --level 35 nfs on
  
    客户端配置nfs
    在/etc/fstab 中增加一行:
   192.168.0.132:/home /home nfs defaults 1 1
    并且使得portmap 和netfs服务能够自动运行:
   chkconfig –-level 35 portmap on
   chkconfig –-level 35 netfs on
   chkconfig -–level 35 nscd on
   如果netfs服务没有自动打开。则客户机无法在启动的时候成功mount nfs 卷。


小结:
配置完成后,不论用户在那台机器上登陆,都会去服务器验证密码。登陆后所在的初始位置,表面上是客户机/home/user ,但实质上是服务器上的/home/user,这样一来,该用户以前曾经保存的文档资料,都会储存在服务器中。不论用户在何处登陆,文档资料总是位于同样的位置。而且,全部用户的密码资料,都在Openldap Server 中,便于同一维护,也可以有用户使用passwd 命令来修改,只不过。这时的passwd 命令改变的不是/etc/shadow 和/etc/passwd 文件,而是OpenLdap Server中的资料。
阅读(1029) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~