使用Windows 2003 Server R2给RHEL和SLES提供身份验证

一、前言

在企业的IT环境中,通常既有windows也有unix/linux服务器,传统情况下,每一台机器有自己的帐号和密码,对用户和管理员来说,要记住自己在N台机器上的账号、密码密码是件超级麻烦和恶心的事情,因此我们需要一个集中的、支持异构系统的身份管理解决方案。

Win/linux的身份整合方案大多数人会想到samba+winbind,但这是一个费力而效果不是很理想的方案,微软在Windows 2003 R2上集成了基于活动目录的Identity Management for UNIX,该组件提供Windows域用户的UNIX账号属性,因此我们在Linux系统上不需要winbind就能实现域用户的LDAP身份验证了。

如果您想要基于Linux充当服务器其他win/linux机器充当客户端的方案,我暂时还不知道,但无论如何不建议使用samba(PDC)+winbind。

在实施本方案前,请先了解什么是LDAP,什么是AD,什么是ObjectClass,什么是DN,知道ldapsearch的用法,了解这些有助于诊断在实施过程中遇到的问题。

二、Windows 2003 Server R2安装与配置

在开始之前,需要注意一件事:从windows 2003 Server R2开始才有Identity Management for UNIX。安装完Windows 2003 R2之后,必须给网卡配置一个静态IP和指定DNS。接下来,我们需要配置域控制器和AD,打开 开始->管理工具->配置您的服务器向导

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第1张图片

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第2张图片

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第3张图片

选择配置”域控制器(Active Directory)“,接下一步

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第4张图片

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第5张图片

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第6张图片

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第7张图片

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第8张图片

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第9张图片

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第10张图片

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第11张图片

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第12张图片

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第13张图片

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第14张图片

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第15张图片

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第16张图片

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第17张图片

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第18张图片

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第19张图片

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第20张图片

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第21张图片

 以上只是启用和配置了域控制器,第二步是安装Active Directory Services,进入控制面板->添加删除程序->添加删除Windows组件,出现如下

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第22张图片

把Active Directory 服务打钩,接着出错提示,选择是,别管太多。

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第23张图片

运行Microsoft Identity Management for UNIX

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第24张图片

    选择Password Synchronization的属性

在出现的对话框中,把UNIX to Computers that run on Windows勾上,下面的port Number不改,一定要点New Key。

    使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第25张图片

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第26张图片

        还是在上述对话框中,选择Configuration标签,把最后一项,Enable Windows to NIS(AD) Password Sync打钩。

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第27张图片

以上是密码同步属性配置,第三步是创建域用户和组:

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第28张图片

首先,需要把Domain Users用户组的UNIX账号属性打开

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第29张图片

选择UNIX Attributes标签,选择NIS Domain为myad,GID为10000

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第30张图片

接下来我们才能创建一个可以打开UNIX属性的域用户

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第31张图片

在本例中,创建的用户登录名为helloworld

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第32张图片

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第33张图片

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第34张图片

完成后,回去看helloworld的用户属性,能够看到标签页UNIX Attributes

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第35张图片

设置helloworld用户的UNIX账号属性

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第36张图片

为了能让用户从客户端登录,必须重置密码,至此Windows AD端配置完成

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第37张图片


三、Linux客户端的配置与测试

1、RHEL 5.5篇

(1)首先确保如下有关LDAP的组件已经安装(32bit版的略有不同)

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第38张图片

(2)接下来,编辑/etc/hosts文件,加入adserver.myad.com的IP解析,或者也可以编辑/etc/resolv.conf文件指定namesever为adserver.myad.com的IP地址。

(3)第三步,编辑/etc/nsswitch.conf文件,把passwd,shadow,group的查找指定如下图:

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第39张图片

(4)第四步,编辑/etc/openldap/ldap.conf文件,内容如下:

URI ldap://adserver.myad.com
BASE dc=myad,dc=com

(5)第五步,编辑/etc/ldap.conf文件,在编辑之前,首先把自带的备份。新建的/etc/ldap.conf文件内容如下

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第40张图片

为了安全起见,不使用Administrator来查询,而是创建一个adbind域用户,并加入Domain User、Account Operator组, 如果不加入Account Operator组,用ldapsearch查询DN无法获取unixUserPassword属性值。

上图中的cn=adbind,cn=users,dc=myad,dc=com是查询用户/组账号的LDAP用户DN。

(6) 关闭nscd服务以避免信息缓存的影响

# chkconfig nscd off

# service nscd stop

(7)验证是否已经成功配置AD域验证UNIX/Linux用户

执行如下命令:

[root@rhcs1 ~]# id helloworld

uid=10000(helloworld) gid=10000(Domain Users) groups=10000(Domain Users)

[root@rhcs1 ~]# getent group | grep 'Domain Users'

Domain Users:*:10000:

如果能够看到账户和组的信息,说明身份能够获取,只是身份信息能够获取,我们还需要测试一下登录。在第一次登录之前,helloworld在当前机器的家目录没有创建,其他没有登录的域用户也是一样,为了在第一次登录时自动创建家目录,需要配置一个文件/etc/pam.d/system-auth,在末尾加上一行:

session     optional   pam_mkhomedir.so

现在首先测试ssh登录本地来验证ssh服务

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第41张图片

接下来测试从本地键盘登录:

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第42张图片

2、SLES 11 SP1篇
        (1)检查LDAP组件是否已经安装

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第43张图片

(2)修改/etc/pam.d/common-session,加入一行

session     optional   pam_mkhomedir.so

(3)以下配置文件与RHEL 5.5的配置相同

/etc/nsswitch.conf

/etc/ldap.conf

/etc/openldap.conf

(4)SLES 11 SP1的系统服务启动顺序有些问题,缺省先启动dbus再启动network,这会造成一个阻塞:dbus试图去查找passwd,group信息,而这时nss_ldap会因为network服务没有启动而一直不断尝试连接AD服务器,系统启动到dbus就会挂住。所以我们要分别到/etc/init.d/rc3.d和/etc/init.d/rc5.d下把dbus,network服务改成如下顺序:

lrwxrwxrwx 1 root root 10 Jul 20 03:54 S00network -> ../network

lrwxrwxrwx 1 root root  7 Jul 20 03:52 S01dbus -> ../dbus

lrwxrwxrwx 1 root root  7 Jul 20 03:56 K07dbus -> ../dbus

lrwxrwxrwx 1 root root 10 Jul 20 03:56 K08network -> ../network

(5)关闭nscd服务以避免信息缓存的影响

# chkconfig nscd off

# service nscd stop

(6)SLES 10的配置方法同上

(7)SLES 9的配置方法基本和SLES 10/11一样,但要修改两个文件成如下内容:

/etc/pam.d/login

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第44张图片

/etc/pam.d/sshd

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第45张图片

四、配置使用web修改域用户密码

Linux客户端上的passwd命令还不能修改域用户的密码,因为域用户的密码会涉及三种加密方式:windows系统密码,NTLM密码,UNIX密码。Windows 2003 R2包含了修改域用户密码的web程序,以下是该程序的配置步骤。

1、安装远程管理组件,从控制面板->添加删除程序->添加Windows组件选择“应用程序服务器”,然后在详细信息里依次选择如下图组件:

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第46张图片

2、打开IIS管理器

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第47张图片

3、新建虚拟目录

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第48张图片

4、输入虚拟目录的别名

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第49张图片

5、输入虚拟目录的本地路径

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第50张图片

6、查看虚拟目录的属性

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第51张图片

7、启用默认内容文档

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第52张图片

8、打开设置页面修改密码

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第53张图片

使用Windows 2003 Server R2给RHEL和SLES提供身份验证_第54张图片


你可能感兴趣的:(使用Windows 2003 Server R2给RHEL和SLES提供身份验证)