免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1572 | 回复: 0
打印 上一主题 下一主题

使用AD验证Linux系统帐号 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-11-03 13:31 |只看该作者 |倒序浏览
活动目录(AD)负责是微软重要的认证和管理解决方案。它提供了用户、计算机、打印机和应用程序数据的集中管理,也提供了对这些对象的认证(如果可能的话)。
AD是基于LDAP————轻量目录访问协议(the Lightweight Directory Access Protocol)。LDAP存将对象储存在树形结构中,就像如今的文件系统一样。在LDAP中,每个最终的节点(node)都是一个属性为组织单元(Organizational Unit)的容器节点(container node)里的对象。
使用PAM(the Pluggable Authentication Module),linux能使用LDAP来验证用户。AD也基于LDAP的,因此它也能正常工作。将AD于Linux环境整合,即使你使用不同的操作系统,你也能轻而易举统一整个网络环境。
对于如何配置一台Windows的域控制器不在本文讨论的范围内,对此我不再赘述。在本例中我们假设已经成功配置了一台基于Windows 2003 R2的域控制器,接下来直接介绍如何配置Linux客户端到AD里进行用户验证。本例中将使用到的是Windows 2003 R2和Debian Linux。
首先我们需要准备Windows下支持UNIX的工具。你需要安装“Identity Management for UNIX”组件。你可以打开“控制面板”的“添加删除程序”中的“添加删除Windows组建”,双击“活动目录服务”(Active Directory Services)。如下图:

安装完UNIX组件,你就能给你Windows的域用户配置UNIX属性了。打开用户的属性对话框,就能看到新增的UNIX属性标签。你不用担心用户的UID会重复,Windows会自动加大每个新用户的UID。参考下图:

下一步就要为那些需要在AD中进行验证的用户创建相关的UNIX属性了了。这句我翻译不好:“I called this user scout and placed him in the Users container”。
接下来可以配置Linux服务器上的LDAP工具了。用下面的命令来安装相关的软件包:
$ apt-get install ldap-utils openssl libpam-ldap
ldap-utils提供了一些基本的LDAP命令行工具(例如ldap-search)。openssl提供了对SSL/TLS的支持,连接AD就能更加安全。最后libpam-ldap提供了用于通过LADP验证用户信息的PAM模块。
下一步,在/etc/ldap/ldap.conf里设定基本的LDAP信息:
BASE    dc=hemingway, dc=com
URI     ldap://mike.hemingway.com
HOST    mike.hemingway.com
要测试于AD的连接,我们可以做个简单的查询:
# ldapsearch -x -W -D "cn=scout,cn=Users,dc=hemingway,dc=com" -LLL "(sAMAccountName=scout)"
输出结果应该就是用户scout在LDAP数据库中的信息。
只要上面输出正确,就说明工作正常,我们可以加入libnss部分,Debian系统中需要编辑的文件是/etc/libnss-ldap.conf。于其他例子相反,有不需要在文件中添加任何语句。实际上该文件中只需要下面10行语句即可:
host mike.hemingway.com
base dc=hemingway,dc=com
ldap_version 3
binddn cn=scout,cn=Users,dc=hemingway,dc=com
bindpw password
scope sub
timelimit 30
nss_map_objectclass posixAccount user
nss_map_objectclass shadowAccount user
nss_map_attribute homeDirectory unixHomeDirectory
下面,再来编辑/etc/nsswitch.conf文件。该文件告诉Linux服务器从哪里去查询用户名并解析用户的UID。我是这么设定的:
passwd:         ldap files
group:          ldap files
shadow:         ldap files
这样设定是让Linux服务器先从LDAP中查询数据,如果发现查询的用户和组不存在,则从系统默认的文件中查询(例如:/etc/passwd文件)。你可以用下面命令来确认一下:
# getent passwd
前面的一部分应该就是你配置了的基于AD验证的的UNIX用户的属性。
注意:Debian安装时设定了/etc/nsswitch.conf文件的权限是只有root可读,如果要成功解析所有用户的UID信息你需要修改他的权限为 644:
# chmod 644 /etc/nsswitch.conf
最后一步就是设定用PAM来认证用户。把下面这行加到文件/etc/pam.d/common-auth和/etc/pam.d/common-password中:
auth    sufficient      pam_ldap.so use_first_pass
把下面这行加到文件/etc/pam.d/common-session里:
session required pam_mkhomedir.so skel=/etc/skel/ umask=0022
如果用户的home目录不存在,pam_mkhomedir.so模块会自动为用户创建他的home目录。
就这样了!你能测试用AD来作验证并使用ssh来登录Linux服务器了:
$ ssh jtopjian@bill.hemingway.com
Password:
Last login: Thu Jan  5 22:07:33 2006 from 192.168.1.250
jtopjian@bill:~$ id
uid=10000(jtopjian) gid=100(users) groups=100(users)
jtopjian@bill:~$
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/13902/showart_2085349.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP