当前位置:操作系统 > Unix/Linux >>

在Linux上建立LDAP服务器

在Linux上建立LDAP服务器(一)

  作者:Carla Schroder;顾恺翻译 发文时间:2003.12.30

  你的网络在规模和复杂性方面正处于成长期。一路传播每件事物、发展壮大每件事物然后再丢弃每件事物将占用了它一生的时间。当你痛苦的双手抱头,试图弄清楚的时候,你的用户不知道从哪里发现了你的秘密电话号码,他用无穷无尽的问题和要求来纠缠你——这就是我发现它的地方;我并不想记住一打不同的密码;没有工作应该是这样子的。

  目录

  LDAP能做什么

  LDAP不能做什么

  到数据库或者不到数据库

  根和层

  易于升级

  ACIs的和ACLs

  用户认证

  一块卓越的奶酪

  预告

  几种可能的方案中,考虑两个:1)找到一个新的隐藏地点或者 2) 实现一个LDAP 服务器。尽管找到一个新的隐藏点听起来很理想,他也只是一个我们留给以后的文章的主题。这个系列将会阐释LDAP好在哪里,如何建立LDAP服务器的细节,以及你能用他做什么。

  LDAP能做什么

  简要地说,LDAP提供了访问、认证和授权的集中管理。他是很容易自定义的并且能够:

  ·用户和用户组管理集中化

  ·信息存储集中化

  ·设置安全和访问控制

  ·安全委托读取和修改权

  ·服务于几乎所有平台

  ·有效地缩放

  LDAP不能做什么

  ·成为一个负载过重的关联或交互数据库

  ·成为一个文件系统

  ·在许多范围内跳过高层结构

  LDAP协议跨平台、网络意识强、并且基于标准。市场上现在有来自于各个投资商的各种各样的LDAP实现。本系列将主要讨论Linux 上的OpenLDAP 。

  到数据库或者不到数据库

  现在我们来当一回书生(请戴上你的讨厌胡须和书生用的袖珍保护套)。LDAP——轻型目录访问协议——是一个协议,不是一个数据库。它可访问一种特殊类型的数据库,这种数据库为了快速阅读而最优化。使用LDAP可得到相关的静态信息,如公司目录、用户数据、消费者数据、密码和安全钥匙。 OpenLDAP使用了Sleepycat Berkeley DB。说了这么多,我可不是一个老夫子,我只是很满意调用它来运转数据库并且对它所作的工作很满意。

  LDAP 不是一个好的选择,尽管有时你需要快速而频繁的修改——例如为了零售后台。它不是一个关联数据库如Oracle、 mySQL 或者 Postgres。实际上,它的结构与关联数据库有着天壤之别。与其将信息存储在行列中,并且设置一组固定的索引和字段,还不如将数据储存在属性类型/属性值对中。这种结构为设计记录提供了巨大的灵活性。例如:一份特殊的用户记录不必重新设计整个数据库就可以添加一种新的类型。任何类型的文本或者二进制数据都可以储存。

  根和层

  LDAP目录遵循熟悉的Unix文件系统结构——树的顶部有根目录,由根目录分支成许多子目录。典型设计就是一个公司只有一个主要的根目录。然后根据部门、位置、功能,雇员的好坏等等对你来说有用和有意义的任何事物来组织子目录。这不但是组织主目录的一个很好的整理方法,它还允许你使用一种精确的、受约束的方式授予对中心数据池的特殊部分的访问权。

  下一步就是采用一种明智的方式分布比特。任何单独的子目录都可复制到其他地方——例如复制到它从属的部门所在的服务器。在任何你喜欢的时间间隔内,对主目录的更新可同步进行,它为用户提供冗余和更快访问,而且使得主服务器上的紧张程度降低。

  更新可以根据指示开始进行——或者,如果你需要一个使用术语的理由,那就用"push" 或者 "pull."吧。例如:财政部可先更新他们的目录,然后将更新推进到主服务器上——再次,节省了管理部门许多单调的而且不必要的劳动。它还保存了带宽和系统资源。

  易于升级

  关于LDAP的分布式特征真正灵活的是你可以从小的开始。你可以采用一种限制性的方式来实现一个LDAP目录,对他进行测试和悬挂,然后在空闲时间内轻而易举地将它放大并迁移更多的功能把它上面。

  ACIs的和ACLs

  LDAP 访问控制范例(ACIs),共同形成了一个访问控制清单 (ACL),它允许非常细粒度的控制。下面是几个简单例子:

  ·用户可以修改他们自己的个人信息——例如家庭住址、电话扩充、工作email等等——但是其他人不可以。

  ·某个特殊用户的所有信息可保存在单独的记录中,但是对单项的访问完全是可以配置的。

  ·给与经理确切级别的阅读权和对于他们小组的读/写权利。它满足的一个特殊需要就是给与经理充分的访问权,以监督项目文件和报告,但是不给钱。

  ·允许小组或者小组领导判断哪个人可以得到哪种他们控制下的资源访问权。我绝对不喜欢被次要的琐事如共享文档和项目目录所纠缠,放权给群众好了。

  ·将密码和用户名以及其他敏感数据置于勤奋的系统管理员的严格控制之下。

  用户认证

  LDAP支持SASL (简单认证和安全层),它合并了Kerberos、GSSAPI、和 DIGEST-MD。添加LDAP用户认证到一个现有的网络上一点也不可怕。有几个非常好的设备可用来迁移PADL软件(见Resources)提供的、你现有的用户和密码数据。

  一块卓越的奶酪

  推荐在专注的、卓越的服务器上运行OpenLDAP。在一个更小的、低要求的网络上你可以侥幸不使用共享服务器。在文档化的过程中,你可以看到许多对slapd和slurpd的引用。Slapd是 LDAP daemon程序,而slurpd 则处理复制。

  预告

  在part 2中,我们将一步步的演示安装、服务器配置和LDAP纪录的创建过程。Part 3将讨论用户认证和创建单一登录。【original text】

  在《在Linux上建立LDAP服务器(一)》中,我们学习了LDAP的基本概念以及LDAP的用途。今天我们将安装和配置一个OpenLDAP目录。

  在开始之前请注意:这是LDAP 101。我们不安装任何种类的加密或者强认证;我们将在第三部分讨论这部分内容。根据我的经验,在小型块中学习最有效。(也许我有点笨,哈哈)所以请坐下来,系好安全带,手别放在方向盘上。

  目录

  简单的方法

  从源代码安装

  配置slapd.conf

  类型/值对

  I B CN U

  预告

  简单的方法

  明智的系统管理员会先查看相关的文件;OpenLDAP 打包后可能会运行的很好(或者产生不可知的后果)。我只求方便——如果你的其他版本能够提供一个容易的方法,就用它好了。RPM 也可从rpmfind.net处获得,rpmfind.net详细地列出了所有需要的附带软件包。

  当然Debian运行的也很好。apt-get做这个工作也不错;聪明的 bit能够找到软件包的名字。 Debian用户希望ldap-utils;slapd,即OpenLDAP;以及libdb4.1获得Sleepycat DB。这三个组件足够你用的了。apt-get可带你完成最小配置,并且自动启动slapd,即LDAP服务器 监控程序。

  从源代码安装

  基本安装至少需要两个tarball:

  ·Berkeley Sleepycat DB

  ·OpenLDAP tarball

  Berkeley DB必须在OpenLDAP之前安装。OpenLDAP没有它不能建立。(如何安装Berkeley DB请看Resources)

  OpenLDAP tarball 不足2兆,那就是说即使我们拨号下载,也是很轻松的。本文中使用的稳定版为openldap-stable-20030709.tgz。我喜欢将它放在 /usr/src/目录下,并在此解包:

  root@windbag:/usr/src# tar xfz openldap-stable-20030709.tgz

  这就创建了openldap-2.1.22 目录:

  root@windbag:/usr/src# cd openldap-2.1.22

  现在就有了README、INSTALL、 LICENSE、 ANNOUNCEMENT、以及COPYRIGHT 文档。先花点时间看看这些文档,看他们里面有什么重要信息。要快速查看编译选项,请键入:

  root@windbag:/usr/src# ./configure --help

  这个阅读相当吸引人,它的默认项标记清楚,选项能够自我说明。现在我们来看看默认项。输入下列三个命令:

  # ./configure

  # make depend

  # make

  每个命令输入完都会出现许多东西;放心的等待吧。等他们都完成之后,运行简单的内建测试脚本对他们进行校验:

  # make test

  如果出错的话,我建议你放弃它,另外向你推荐OpenLDAP.org (见 Resources)。如果运行良好,最后一个步骤就是真正的安装新创建的二进制文件和man界面。在OpenLDAP根目录下运行:

  # make install

  请注意'make install'的输出;它包含许多有用信息。为了详细阅读,将它导入文件内:

  # make install | tee openldap-install.txt

  配置slapd.conf

  这是用于我们新OpenLDAP 服务器的主要配置文件。它可以放在任何层数的虚拟目录内——我个人喜欢在安装软件后运行updatedb,这样我能迅速的找到需要的东西。在我的Libranet 系统上,它是/etc/ldap/slapd.conf。

  小心保护该文件。最好备份一下。原来的文件包含有用的默认值。为了安全起见,默认许可为600(只有root用户才能读写该文件)。

  slapd.conf 定义了三种类型的信息:整体设置,与指定后端相关的设置,与指定数据库相关的设置。这个bit相当重要,如果运行正确的话能够帮你减少麻烦:后端
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,