博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用Windows 2003 Server R2给RHEL和SLES提供身份验证
阅读量:6225 次
发布时间:2019-06-21

本文共 3508 字,大约阅读时间需要 11 分钟。

  hot3.png

一、前言

在企业的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,打开 开始->管理工具->配置您的服务器向导

100034_XW0l_2244328.png

100201_SYzN_2244328.png

100256_Iply_2244328.png

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

100534_l9CL_2244328.jpg

100705_fFqF_2244328.jpg

100800_cPFS_2244328.jpg

100933_ebpn_2244328.jpg

101038_U63u_2244328.jpg

101210_g4ua_2244328.jpg

101304_AOE6_2244328.jpg

101358_uknN_2244328.jpg

101451_jEyf_2244328.jpg

101609_xRyA_2244328.jpg

101725_Ssg6_2244328.jpg

101822_Hcvk_2244328.jpg

101949_NCFJ_2244328.jpg

102039_MZ8B_2244328.jpg

102144_c0gV_2244328.jpg

102237_B6wK_2244328.png

102353_OS7f_2244328.jpg

102447_5K6U_2244328.jpg

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

102652_ZqXs_2244328.jpg

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

102909_Brv9_2244328.jpg

运行Microsoft Identity Management for UNIX

103052_URjH_2244328.jpg

    选择Password Synchronization的属性

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

    103509_3Oj6_2244328.jpg

103527_SMdt_2244328.jpg

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

103722_AX4a_2244328.jpg

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

103852_1tL9_2244328.jpg

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

104017_t6Nt_2244328.jpg

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

104129_PWCq_2244328.jpg

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

104306_ATRG_2244328.jpg

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

104433_BzLT_2244328.jpg

104528_Cspy_2244328.jpg

104654_pinb_2244328.jpg

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

105015_dpk1_2244328.jpg

设置helloworld用户的UNIX账号属性

105126_sMp1_2244328.jpg

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

105241_dy82_2244328.jpg

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

1、RHEL 5.5篇

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

105530_MJfs_2244328.jpg

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

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

105652_S0QC_2244328.jpg

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

URI ldap://adserver.myad.com

BASE dc=myad,dc=com

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

105841_O0Vg_2244328.jpg

为了安全起见,不使用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服务

110035_YBUa_2244328.jpg

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

110202_nNix_2244328.png

2、SLES 11 SP1篇

        (1)检查LDAP组件是否已经安装

110615_KbTp_2244328.jpg

(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

110820_zd12_2244328.jpg

/etc/pam.d/sshd

110927_RjqX_2244328.jpg

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

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

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

111111_Tcqx_2244328.jpg

2、打开IIS管理器

111225_VAo3_2244328.jpg

3、新建虚拟目录

111346_OlrZ_2244328.jpg

4、输入虚拟目录的别名

111502_pbaU_2244328.jpg

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

111722_gqEu_2244328.jpg

6、查看虚拟目录的属性

111836_yDTG_2244328.jpg

7、启用默认内容文档

111948_iqEb_2244328.jpg

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

112105_zmwZ_2244328.jpg

112153_1PoZ_2244328.jpg

转载于:https://my.oschina.net/cytan/blog/359489

你可能感兴趣的文章
mysql+keepalived 双主热备高可用
查看>>
Hive之 hive的三种使用方式(CLI、HWI、Thrift)
查看>>
DOM基础总结
查看>>
微信公众平台源码
查看>>
Struts2--HelloWord
查看>>
linux C学习笔记05--信号量与共享内存(进程同步)
查看>>
go-mysql,一个易用的mysql接口框架实现
查看>>
POJ3320 Jessica's Reading Problem【尺取法】
查看>>
201671010117 2016-2017-2《Java程序设计》第八周学习Java心得
查看>>
画廊视图(Gallery)的功能和用法
查看>>
自己动手编写一个VS插件(七)
查看>>
Android里面的Toast
查看>>
mysql双机热备的实现
查看>>
前加绩中国、信雅达高级全栈工程师:吴劲松
查看>>
-bash: pod: command not found 解决办法
查看>>
GCD hdu1695容斥原理
查看>>
Node.js:回调函数
查看>>
python 发送邮件 <QQ+腾讯企业邮箱>
查看>>
细数JDK里的设计模式
查看>>
Linux~上部署.net MVC出现的问题与解决
查看>>