采用 active directory 进行 winbind 验证

描述

这个提示会描述如何设置 CentOS 的验证设置,如让它能使用 Windows Server 来进行验证。我会描述如何在命令行中进项工作。这些命令行的内容可以行简单地改在图像版本中进行。我强烈推荐你阅读关於这方面的 samba 文档,好让你能理解 winbind 如何运作。

警告: 这里所提供的指令会重新设置验证的设置。在你未完全明白它们之先,请勿使用。如果你出错,你可能会不能登录你的系统!

首要条件

在使用 winbind 之先,你必须安装 samba-common 这个组件。

# yum install samba-common

要将 CentOS 这台计算机加入 Windows 的本地,你须要一个有效的本地管理员帐户。

实践它

实际上真正要执行的是这样一个长指令(你须要取替以 $ 起首的符串来配合你的本地设置):

# authconfig \
--update \
--kickstart \
--enablewinbind \
--enablewinbindauth \
--smbsecurity=ads \
--smbworkgroup=$ADSWorkgroup \
--smbrealm=$ADSDomain \
--smbservers=$ADSServer \
--winbindjoin=$AdminUser \
--winbindtemplatehomedir=/home/%U \
--winbindtemplateshell=/bin/bash \
--enablewinbindusedefaultdomain \
--enablelocauthorize

这的确是为数不少的参数,让我们看看它们在做甚么:

额外参数

CentOS 内的 pam 采用堆栈方式,因此你可以在这里放置其它验证方法,有关各选项的详情请参阅

# authconfig --help

或者 authconfig 的图像界面。

接著……

当你执行了那个指令后,它会重新写入 pam 的 system-auth 设置,为你进行 net join ads,并要求你提供 --winbindjoin 所指定的本地管理员的口令。之后,它会停用 nscd 及启用 winbindd。如果成功的话,你可以利用 wbinfo 工具来检查 winbind 的现况。要显示用户清单,执行

# wbinfo -u

详情请参阅 wbinfo --help

额外事项

kerberos 的 keytab

假如你的服务采用 kerberos keytab 档(例如:httpd kerberos 验证),你可以利用 net 这个指令来管理它。要创建一个 keytab 档,你只需执行

# net ads keytab create

要将一个服务加进本地内(例如:HTTP)

# net ads keytab add HTTP

限制访问权至某个群组

/etc/security/pam_winbind.conf 内,你可以通过 require_membership_of 这个参数来指定某个 windows 组别。一经设置,只有这个组别内的用户才能验证。如果你有其它方法(例如:kerberos 或 ldap)可以成功地验证这些用户,这个限制将不会生效。

预定的 userid/groupid 对照

在上述/缺省的设置下,winbind 会在每台机器上以动态形式进行 ActiveDirectory SID 到 unix UID/GID 的对照。当你需要在不同机器上有相同的 UID 时,这样没有帮助。典型的例子就是 NFS。winbind 提供了一个方法利用运算的方式来对照 UID/GID 及 SID。这是通过 idmap 的 rid 后端来达成的。要使用它,你必须以人手方式在 /etc/samba/smb.conf 内的 [global] 部份加入下列数行:

   idmap domains = DOMAIN
   idmap config DOMAIN:backend = rid
   idmap config DOMAIN:base_rid = 0
   idmap config DOMAIN:range = 20000 - 49999

当中 DOMAIN 是你的 ActiveDirectory 本地的 WINS 名称。你也可以将另一个获信任的本地内的用户对照对其它范围。详情请查考 idmap_rid 的文档:http://samba.org/samba/docs/man/manpages-3/idmap_rid.8.html在 CentOS 5 下,请确定你在采用以下方式置标的范围外加入上述内容:

#--authconfig--start-line--
..
#--authconfig--end-line--

以避免 authconfig 更改它。

Translation of revision 8

zh/TipsAndTricks/WinbindADS (last edited 2010-06-07 08:59:05 by TimothyLee)