实现Redhat Linux 6和Windows通过Windows Server AD统一认证并共享访问Oracle ZS存储系统

Windows Server 2012 AD设置

1.  建立新的组织单位OU

为用户提前建立好OU,是为了AD用户管理简单清晰。

2.  建立新的用户和用户组

建立新的用户的时候,要同时将用户归属到正确的用户组,同时还要设定用户的Primary Group(主用户组)。每个用户可能属于多个组,选择一个合适的有意义的组作为Primary Group。Linux系统会从Primary Group中获取gidNumber,在文件系统的权限中会显示此用户属于Primary Group。

3.  编辑用户和组的Unix扩展属性

在AD管理中心中选择用户或者组,选择扩展属性页,输入唯一的uidNumber和特定的gidNumber。为了避免出现重复和混乱,建议管理员提前规划分配好每个用户和组的uid和gid值和范围(参考下面的Linux的smb.conf设置),然后再进入AD管理中心操作。

AD用户登录Linux时,会从AD中获取uid和gid,这个可以登录后通过id命令验证。

Windows用户访问Oracle ZS时,用户sid会被Oracle ZS的IDMU转换成AD中预先设置的uid和gid。这个可以ssh Oracle ZS,进入shell,进入/export/查看文件系统验证,也可以通过Oracle ZS管理界面中的Identity Mapping中的Show Mappings工具验证。

这样就行保证Linux和Windows用户共享访问ZS中的文件。

Oracle ZS设置

1.  设置DNS, NTP, AD

在Configuration->Services中设置DNS,NTP,然后加入AD域。

2.  设置IDMU

在Configuration->Services中的Identity Mapping里面,选择IDMU,点击Apply,无需其他配置输入。

3.  验证IDMU

通过Identity Mapping的Show Mappings工具,检查获取到的uid和gid,如果和AD用户uidNumber、gidNumber相同,则为正确,如果出现临时分配的id,则不正确。

4.  FS初始创建

如果是Windows和Linux客户端混合环境,建议创建文件系统时选择UNIX权限方式创建。这样灵活,而且也会让Linux和Windows创建的文件和文件夹权限一致性保持比较好。如果选择使用Windows缺省权限, Root目录的权限默认会是755。

5.  ACL属性设置

文件系统的ACL属性按照默认不需要修改。对访问的基本权限影响不大。

注:如果有人总结出ACL属性对权限有影响,欢迎发邮件给我,我来修正。

Redhat Linux 6 设置

1.  配置SELinux安全参数

在Redhat 6安装时默认SELinux是Enable的。

1.1. 验证是否Enable

# getenforce
Enforcing

1.2. Enable的操作

# getenforce
Permissive
# setenforce
# getenforce
Enforcing

1.3. 编辑/etc/selinux/config,确认重新启动时也是Enable

SELINUX=enforcing

2.  配置samba

2.1. 安装samba包

# yum -y install samba samba-client samba-common samba-winbind samba-winbind-clients

2.2. 验证samba运行

# service smb start
# service smb status
# ps -aef | grep smb

2.3. 使samba在系统启动时运行

# chkconfig smb on
# chkconfig --list smb

3.  同步NTP

3.1. 编辑/etc/ntp.conf

# Enable writing of statistics records.
#statistics clockstats cryptostats loopstats peerstats
server (ntp server name) iburst
server (ntp server ip) iburst

3.2. 应用NTP的修改

Redhat Linux 6:

# service ntpd stop
# ntpdate (ntp server ip)
# service ntpd start

Windows Server:

C:\Users\Administrator> w32tm /query /status | find "Source"

如何创建Windows Server AD服务器为NTP服务器

C:\WINSRV1>w32tm /config /manualpeerlist:"ntp server name or ip"/syncfromflags:manual /update
C:\WINSRV1>w32tm /query /status

3.3. 使NTP在系统启动时运行

# chkconfig ntpd on
# chkconfig --list ntpd

4.  配置DNS

4.1. 编辑/etc/resolv.conf

domain mydomain
search mydomain
nameserver (DNS server ip)

4.2. 编辑/etc/sysconfig/network

HOSTNAME=xxx.mydomain (client server name)

5.  编辑/etc/hosts文件

修改并简化/etc/hosts文件内容为:

127.0.0.1 localhost
xxx.xxx.xxx.xxx(local static ip) xxx.mydomain (client server name)\ xxx (client server name)

6.  安装和配置Kerberos客户端

6.1. 安装Kerberos客户端

# yum -y install krb5workstation

6.2. 验证Kerberos客户端安装成功

# yum list installed | grep krb5
krb5libs.x86_64 1.922.el6_2. @rhel6serverrpms
krb5workstation.x86_64 1.922.el6_2. @rhel6serverrpms
pam_krb5.x86_64 2.3..el6 @anacondaRedHatEnterpriseLinux201111171049.x86_64/6.2

6.3. 修改Kerberos配置文件/etc/krb5.conf,见粗体字

修改前备份krb5.conf文件

[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log [libdefaults]
default_realm = MYDOMAIN
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true [realms] MYDOMAIN = {
kdc = XXX.mydomain (AD Server)
admin_server = XXX.mydomain (AD Server)
} [domain_realm]
.mydomain = MYDOMAIN
mydomain = MYDOMAIN

 6.4. 验证Kerberos配置

清除凭证

# kdestroy
# klist

获得新的Kerberos凭证

# kinit administrator@MYDOMAIN

验证是否获取新的凭证

# klist

7.  安装oddjob-mkhomedir

安装oddjob-mkhomedir包,确保用户home目录可以正确创建。

7.1. 安装

# yum install oddjobmkhomedir.x86_64

7.2. 启动服务并使oddjobd服务在系统启动时运行

# service oddjobd start
# chkconfig oddjobd on
# chkconfig --list oddjobd

8.  自动创建home目录

在下面两个配置文件中增加一行

/etc/pam.d/system-auth
/etc/pam.d/sshd
session  required  pam_mkhomedir.so  skel=/etc/skel/  umask=

注:umask=0077指的是home目录所有者具有全部权限、主要组以及其他人无任何权限。可以设置成umaks=0022, 指的是所有者具有全部权限、主要组以及其他人只有读的权限。

9.  扩大AD用户的uid和gid赋值范围

让AD用户扩展属性中的uidNumber和gidNumber < 30000的用户都可以登陆Linux

将/etc/pam.d/passwd-auth和/etc/pam.d/system-auth文件的:

account     sufficient    pam_succeed_if.so uid <  quiet

修改成:

account     sufficient    pam_succeed_if.so uid <  quiet

注:30000这个值为smb.conf配置项idmap config (MYDOMAIN NetBIOS Name): range = 10000-29999的封顶值。

10.      配置samba/winbind

10.1.   编辑/etc/samba/smb.conf,见粗体字

修改前备份/etc/samba/smb.conf

10.2.   使用AD映射模式配置smb.conf

backend = ad模式是直接获取AD用户和组的uidNumber和gidNumber,需要在AD用户管理的扩展属性中提前设置uidNumber和gidNumber,用户和组都要设置,值的范围由此配置项idmap config (MYDOMAIN NetBIOS Name): range = 10000-29999决定。

[global]
workgroup = (MYDOMAIN NetBIOS Name)
password server = XXX.MYDOMAIN(AD Server)
realm = MYDOMAIN
security = ads
idmap uid = -
idmap gid = -
idmap config (MYDOMAIN NetBIOS Name) : backend = ad
idmap config (MYDOMAIN NetBIOS Name) : default = yes
idmap config (MYDOMAIN NetBIOS Name) : range = -
idmap config (MYDOMAIN NetBIOS Name) : schema_mode = rfc2307
winbind nss info = rfc2307
winbind enum users = yes
winbind enum groups = yes
winbind nested groups = yes
winbind separator = +
winbind use default domain = true
template homedir = /home/%D/%U
template shell = /bin/bash
winbind offline logon = true

 10.3.   验证配置文件

# testparm

10.4.   清除存在的samba cache文件

# service smb stop
# service winbind stop
# rm -f /var/lib/samba/*
# service smb start
# service winbind start

注:如果发现使用AD账户登录后,group名显示不正确,可以尝试此操作再重新登陆。

10.5.   清除Kerberos凭证

# kdestroy
# klist

10.6.   加入AD

# net join -S XXX.MYDOMAIN(AD Server) -U administrator

10.7.   测试AD链接

# net ads testjoin
# net ads info

10.8.   启动winbind和samba服务,激活新的配置

# wbinfo -u
# wbinfo -g

11.      验证登陆服务

# ssh aduser1@mydomain
# hostname
# id
# pwd
# ls -ld
# echo $SHELL

注:

可以通过图形化窗口简化配置过程,但是仍然建议根据以上配置和命令补充完善并检查是否准确。Redhat Linux图形化配置命令system-config-authentication,文本窗口图形化配置命令为setup。

全文完(完整带图片版本可以搜索百度文库)

上一篇:了解一下LDC


下一篇:js区别手机和电脑打开网页