實現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 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存儲系統