将 LDAP 目录用于 Samba 认证-配置 OpenLDAP-1
- UID
- 1066743
|
将 LDAP 目录用于 Samba 认证-配置 OpenLDAP-1
LDAP 配置过程安装了服务器软件之后,下一步是将 OpenLDAP 配置成 Samba 的用户认证源。本章讨论下列内容:创建必需的 LDAP 配置文件、添加特定于 Samba 的模式、用一些基本项填充 LDAP 目录和配置 LDAP 以使用 PAM(可插入的认证模块)进行用户认证。
有许多规划 LDAP 树的方法。出于本教程的目的,我们创建了如下的 DN(专有名称,Distinguished Name)树:
- 我们的顶级 DN:dc=syroidmanor,dc=com
- 顶级下面有三个组织单元(ou)
- ou=Users ― 用来存储用户帐户,对于由 UNIX 和 Windows 系统混合组成的域而言,是 nis.schema 的 shadowAccount 和 samba.schema 的 sambaAccount;对于仅由 Windows 系统组成的域而言,是 samba.schema 的 sambaAcount。
- ou=Computers ― 用来存储 Windows 系统的计算机帐户(sambaAccount)
- ou=Groups ― 用来存储 Windows 系统和基于 UNIX 的系统(以及其它知道 LDAP 的客户机)的用户组(nis.schema 的 posixGroup)。
注:不使用影子密码(shadow password)的 UNIX 系统不需要 shadowAccount 对象;在此类情况下,posixAccount 对象布局(也是来自于 nis.schema)就足够了。
步骤 1:复制 samba.schema第一步是将 samba.schema 复制到 /etc/openldap/schema。
如果从源代码编译 Samba,则该文件位于 [base-src-dir,通常是,/usr/local/src/samba]/example/LDAP/] 目录。如果将修改过的 RPM 用于安装,则该文件可能(布局因分发版而异)在 /usr/share/doc/samba-version/examples/LDAP/ 下。
提示:一些较早的 Samba 包(2.2.x 之前)在 samba.schema 中列出了一种属性类型 displayName。这一项复制了 inetorgperson.schema 中的相同项。在此类情况下,通过在关联块的每行前面放置一个井号(#)来编辑 samba.schema 并注释掉 displayName 属性类型。
步骤 2:编辑/创建 slapd.conf下一步是创建或编辑 /etc/openldap/slapd.conf;一些 OpenLDAP 安装创建一个基本 slapd.conf 文件以用作出发点,另一些则不是这样。
下一页将讨论下列清单中相关项的说明。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
| # /etc/openldap/slapd.conf
# last modified, 4/20/02 by TMS
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/redhat/rfc822-MailMember.schema
include /etc/openldap/schema/redhat/autofs.schema
include /etc/openldap/schema/redhat/kerberosobject.schema
include /etc/openldap/schema/samba.schema
pidfile //var/run/slapd.pid
argsfile //var/run/slapd.args
#Sample Access Control
# Allow read access of root DSE
# Allow self write access
# Allow authenticated users read access
# Allow anonymous users to authenticate
access to dn="" by * read
access to *
by self write
by users read
by anonymous auth
# if no access controls are present, the default is:
# Allow read by all
# rootdn can always write
###############################################
############# ldbm database definitions#############
###############################################
database ldbm
suffix "dc=syroidmanor,dc=com"
rootdn "cn=Manager,dc=syroidmanor,dc=com"
rootpw secret
# The database directory MUST exist prior to running slapd AND
# should only be accessibleby the slapd/tools. Mode 700 recommended.
directory /var/lib/ldap
# Indices to maintain
index primaryGroupID eq
index rid eq
index uid eq
index uidNumber eq
index gidNumber eq
index cn pres,sub,eq
index objectClass eq
index default sub
# ends
|
详细讨论 slapd.conf注:下面的讨论是关于上一页中显示的 slapd.conf 的:
- 文件名是 slapd.conf,而不是 某些人猜想中的 sldap.conf。
- slapd.conf 的用途是控制/配置 OpenLDAP 服务器守护程序。
- include 语句告知 LDAP 服务器为对象存储启用哪种模式;确保您列出了 samba.schema。
- 一些模式具有依赖性。许多人没有意识到这一点,他们最后为设法找出其 LDAP 服务器不能启动的故障原因而大伤脑筋。依赖性总是在模式文件(模式文件只是文本;要快速地检查模式文件类型:less nameofschema.schema)的开始部分列出。例如,samba.schema 依赖于 cosine.schema 中 uid 属性和 inetorgperson.schema 的 displayName 属性;与此相反,core.schema 是“顶级”模式,没有依赖性。
- 请注意关于访问控制的注释 ― 如果没有访问控制,那么所有用户都只能进行读操作;而 rootdn(cn=Manager)总是可以读/写。
- 项是区分大小写的。“cn=Manager”与“cn=manager”不同。这一事实使得许多管理员成天挠着头皮设法搞清楚为什么他们不能访问自己的目录。
- rootpw 项正如其名称一样 ― rootdn 或“Manager”在对目录进行写操作时必须提供的密码。显然“secret”不是好的选择。好的密码应该混合大、小写和标点符号,并至少有 8 个字符长。而且,假定 root 密码是存储在纯文本中,确保小心地保护对该文件的访问,以切实避免它“对全世界都可读”。大多数安装都正确地配置了该文件,但进行复核没有坏处。在 Red Hat 下,OpenLDAP 服务器是作为用户/组 ldap.ldap 运行的。
- database 项确定目录数据的存储格式。取决于为该目录服务的后端类型,这一项可以是 ldbm、shell 或 passwd 中的一种。也存在使用象 MySQL 或 DB2 这样的关系数据库来存储目录对象的选项。请参阅 man slapd.conf 以获取详细信息(请牢记,man 命令是您的朋友!)。通常,对 RDBM 的支持需要重新编译 OpenLDAP。
下一步我们将创建 /etc/openldap/ldap.conf 文件。 |
|
|
|
|
|