1. 程式人生 > >實現Redhat Linux 6和Windows通過Windows Server AD統一認證並共享訪問Oracle ZS存儲系統

實現Redhat Linux 6和Windows通過Windows Server AD統一認證並共享訪問Oracle ZS存儲系統

mar dns 存儲系統 6.2 cal 5.x 屬性頁 出現 testparm

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 1
# 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.1    @rhel6serverrpms
krb5workstation.x86_64     1.922.el6_2.1    @rhel6serverrpms
pam_krb5.x86_64            2.3.119.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=0077

註: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 < 500 quiet

修改成:

account     sufficient    pam_succeed_if.so uid < 30000 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 = 30000-39999
idmap gid = 30000-39999
idmap config (MYDOMAIN NetBIOS Name) : backend = ad
idmap config (MYDOMAIN NetBIOS Name) : default = yes
idmap config (MYDOMAIN NetBIOS Name) : range = 10000-29999
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。

全文完(完整帶圖片版本可以搜索百度文庫)

實現Redhat Linux 6和Windows通過Windows Server AD統一認證並共享訪問Oracle ZS存儲系統