使用AD验证Linux系统帐号
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
使用AD验证Linux系统帐号
使用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 pl aced 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://
HOST
要测试于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
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服务器了:
$**************************.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:~$。