打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
使用AD验证Linux系统账号
 

  
 活动目录(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。参考下图:

500)this.width=500;" border="0">

下一步就要为那些需要在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:~$
 
 
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
? SLES11 AD Authentication using TLS SSO Wind...
用PHP通过LDAP操作活动目录(AD)的笔记
GINA 与 pGINA――实现自定义的 Windows 用户身份认证[转]
命令行配置Samba服务
linux_unix操作系统安全概述
linux系统用户登录限制
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服