10. 利用AD為其它Mac OS X服務
這一節, 將學習利用AD提供OD服務的SSO.
A. 綁定到AD加入Kerberos
為了利用AD的認證用戶使用服務器服務, 需要綁定服務器到AD域并加入到Kerberos realm. 綁定允許服務器使用AD認證請求,而加入Kerberos為一些服務打開SSO.
這里不重復過程,參見第7節(A的1-4步).
B. 文件服務:AFP
你應該希望Mac用戶登錄后自動得到存取文件共享的認證.蘋果文件服務不需要任何額外配置來使用AD認證. 只需綁定AFP服務器到AD并加入Kerberos realm.
利用下面的步驟來驗證AFP服務.
2. 確認初始化了Kerberos票據, (復習4節的B部分)
3. 在Finder中, 從"Go"菜單選擇"Connect to Server...",鍵入服務器地址, 應該不用認證就可以得到共享列表.
4. 同樣, 檢查Kerberos票據, 應該有另一個afpserver服務票據.
在登錄時有多個方法自動安裝網絡共享, 如果客戶機綁定到主OD然后是AD服務器, 你可以在Login偏好中為OD用戶組和計算機添加共享.
也可以運行登錄腳本來初始化連接:
2. 在Terminal中, 在/Library/Management/login.sh文件中加入:
open afp://services.apple.edu/Users |
3. 是這個腳本可執行
sudo chmod a+x /Library/Management/login.sh |
4. 使它在登錄時運行(一行代碼)
sudo defaults write /var/root/Library/Preferences/com.apple.loginwindow LoginHook “/Library/Management/login.sh” |
5. 使用Ad用戶登陸,系統會自動安裝這個網絡共享,而不需要用戶參與.
C. 文件服務: SMB
SMB服務可以在Server Admin的SMB中打開. 和AFP類似. 不需要額外的配置才能使用AD認證和SSO. 綁定SMB到AD并加入Kerberos realm,然后在Server Admin中打開Windows服務. 只要是用戶使用AD賬號登錄就可以做到SSO存取文件服務.
為了檢驗Windows服務使用SSO, 重復上面的步驟,把相應的部分改為:smb://your.server.edu
D. 文件服務: FTP
FTP文件服務可以在Server Admin中打開. 與AFP和SMB服務類似, 無須特殊配置. 簡單地綁定FTP服務器到AD和加入Kerberos realm, 然后打開FTP服務.Mac OS X沒有內置的Kerberos化的FTP客戶端. 軟件Fetch支持GSSAPI到FTP. 而且Fetch和Mac OS X的KDC工作很好, 目前在xftpd中有一個錯誤,當FTP用戶使用從AD得到的一個可前遞的票據時連接會失敗. 如果希望使FTP用戶可以得到SSO, 使用Kerberos應用(/System/Library/CoreServices/Kerberos.app)改變默認的Kerberos的偏好為 不使用可前遞的票據. 參考第8節的C部分如何從目錄服務強制這個偏好.
也可以參考下面的"安全Shell"的關于SFTP的部分. SFTP是FTP的一個安全的替代, 而且可以使用AD和OD的KDC的SSO.
E. 文件服務: WebDAV
利用Mac OS X服務器上的Apache, 可以提供WebDAV文件服務. 利用綁定到AD和加入AD Kerberos的realm, 可以讓這個服務成為SSO.為了打開SSO存取WebDAV服務, 需要在服務器上創建SSL的web網站.
2. 編輯默認的站點,改變以下設置:
. 域名: 你的服務器的FQDN(或者是服務器的CNAME)
Port: 443
Options:
. 打開WebDAV.
Security:
. 打開SSL
. 證書: 選擇默認的自簽字的證書.(self-signed certificate).
3. 保存并運行網站服務.
4. 使用AD用戶登錄到客戶機并檢查你的初始的Kerberos票據.
5. 在Finder中, 從"Go"菜單選擇"Connect to Server..."輸入服務器地址"https://your.server.edu". 必須使用全域名. 你會得到一個從服務器來的證書失效的警告信息(因為那個自簽字的證書). 點擊"Continue”后,共享應該被自動安裝而不需要認證.
6. 再檢驗Kerberos票據, 應該*沒*有多出來一個票據, 因為現在使用僅僅瀏覽權限訪問站點.
7. 在服務器上, 在/Library/WebServer/Documents/里創建一個新目錄Secret. 復制一個文件或者創建一個子目錄(為了可以看到訪問成功).
8. 在Terminal里, 改變它的訪問權限以使可以讓WebDAV管理:
sudo chown www /Library/WebServer/Documents/Secret |
10. 點擊"Users & Groups"按鈕添加一個AD用戶或者組到Users表, 給它Browse和讀/寫權利, 保存.
11. 返回到客戶機, 如果WebDAV共享已經安裝了, 就重新連接WebDAV, 找到"Secret"目錄, 目錄中的內容應該顯示, 而且一個http票據會出現在kerberos里.
12. 刪除Kerberos票據, 解除WebDAV共享, 然后重新安裝WebDAV, 確認無法看到Secret目錄的內容(因為沒有Kerberos TGT).
F. 安全的Shell
對于多數服務器, 你可能想限制SSH訪問, 而不是打開SSO訪問. 對于簇的頭節點, 可能有數百的基于目錄服務的用戶需要shell訪問服務器.
Kerberos認證在Mac OS X中是默認禁止的, 因為它強迫用戶等待Kerberos TGT認證登錄. 為了使SSH客戶打開Kerberos認證:
sudo nano /etc/ssh_config
2. 去掉注釋下面一行并改變值為 "yes".
GSSAPIAuthentication yes
3. 按Control+X退出編輯器, 鍵入y來保存.
為了檢驗SSH服務允許SSO訪問, 做下面的AD綁定:
2. 在Terminal里, 從File菜單選擇"Connect to Server..."
(譯者注: 應該是菜單Shell > New Remote Connection...)
3. 在Service中, 選擇"Secure Shell(ssh)"
4. 在Server列表中, 找到你的Secure Shell服務器.
5. 填入AD用戶的短名(shortname), 然后點擊連接. 無須進一步認證就可以連接成功. 在Kerberos中應該可以看到"host"服務票據.
Mac OS X服務器的Secure Shell也默認提供Secure FTP(sftp), 不需要附加的設置。
為了驗證,實施下面步驟:
1. 用AD用戶登錄, 檢查初始的Kerberos票據(4節, B部分)
2. 在Terminal里, 從File菜單選擇"Connect to Server..."
(譯者注: 和前面一樣,應該是菜單Shell > New Remote Connection...)
3. 在Service中, 選擇"色簇熱File Transfer (sftp)"
4. 在Server列表中, 找到你的Secure Shell服務器.
5. 填入AD用戶的短名(shortname), 檢查選擇"SFTP(Automatic)"作為連接協議, 然后點擊連接. 無須進一步認證就可以連接成功. 在Kerberos中應該可以看到"host"服務票據.
G. 郵件服務
Email可能使最常使用的基于服務器的仵了, 而且它在很多機構中都是相當重要的. 不幸的是,它也是通過數據包嗅探非法獲取密碼最普遍使用的服務. 通過SSL獲得安全的客戶-服務連接可以解決這個問題, 強制高強度密碼也是一個好辦法. 通過實施支持SSO的Kerberos的KDC, 可以完全避免用戶的密碼在網上傳輸. Mac OS X服務器提供基于Postfix和Cyrus(SMTP, POP和IMAP)的郵件服務, 而且內置的SPAM和病毒控制.用戶的郵件信息都儲存在每個用戶的目錄服務記錄中. Mac OS X服務器對一個給定用戶尋找"apple-user-mailattribute"來確定用戶是否可以訪問服務器上的郵件服務. 因為這是一個Apple特殊的屬性, 一般地需要擴展AD架構來利用AD認證使用Mac OS X的郵件服務. 但是如果你在郵件服務器上實施了SACL(Sevice Access Control List),SACL將覆蓋mailAttribute. 所以添加用戶和組到郵件的SACL并賦予訪問權限就可以了.
依照下面的步驟配置Mac OS X服務器的郵件服務來獲得AD服務器支持的SSO:
2. 在高級和Security項中, 打開為POP, IMAP, 和SMTP的kerberos認證, 保存并激活服務.
3. 在Server Admin > [Server name] > Settings > Access里, 選擇"For Seleted ervice below".
4. 點擊Mail服務, 點擊"Allow only user and groups below".
5. 點擊”+“按鈕在Users/Groups抽屜里, 把希望的用戶和組拖到"Name"欄下, 完成后保存.
6. 在客戶端使用Ad賬號登錄并運行Mail程序. 生成一個POP賬號配置成AD用戶. 空出要求填入密碼的地方. 當Mail嘗試配置的時候會自動從Kerberos認證填入. 對于向外服務器, 選擇"Use Authentication", 同樣只填用戶名而空出密碼.
7. 在退出之前, 在Kerberos程序里檢查有一個pop和smtp服務票據.
8. 在Mail程序的偏好 > Acounts里, 生成另外一個賬號使用IMAP. 檢查是否得到一個IMAP票據.
提示: 查看最后的資源部分參考相關文章看如何創建郵件賬號捆棒. 郵件賬號捆棒對于部署用戶郵件提供方便.
H. VPN
VPN提供給用戶在家里或者其它地方以任何一個網絡連接,包括Internet, 建立安全連接到LAN. 從用戶的角度, VPN就象一個專用的私有連接. VPN技術同時允許企業和分公司通過Internet建立安全的連接通訊. 通過Internet的VPN連接就如同不同地點間的廣域網.Mac OS X提供VPN, DHCP和DNS服務--所有網關需要的服務. Mac OS X服務器的VPN同時支持Kerberos認證(僅限于L2TP). 所以在Mac客戶端可以對SSO支持. 下面舉例來說名在一個綁定到AD并加入Kerberos realm的Mac OS X服務器上如何配置VPN支持SSO.
1. 配置VPN: Server Admin > [your server] > VPN > Settings > L2TP. 例如:
. 開始IP: 10.0.4.50
. 結束IP: 10.0.4.59
. PPP認證: kerberos
. IPsec認證: Shared Secret
搜索域: apple.edu
網絡路由定義:
- Address: 10.0.4.0
- Mask: 255.255.255.0
- Type: Private
4. 使用AD用戶登錄客戶機, 在System Preference中打開Newtork.
5. 按"+"添加一個網絡界面, 選擇"VPN"和"L2TP over IPsec"作為VPN類型. 點擊"Create"按鈕。
6. 提供服務器地址, 可以在用戶名處留空. 點擊"Authentication Settings"按鈕并按如下設置:
- User Authentication: Kerberos
- Machine Authentication: Shared Secret (type in the shared secret)
7. 點擊OK關閉Authentication Settings面板. 點擊"Apply"來保存, 點擊連接按鈕. 這個連接應該不用任何額外的認證, 一個"vpn"票據會出現在Kerberos程序中.
I. Xgrid
Xgrid是一種使部署和管理網格計算簡化的工具, 只在Mac OS X和Mac OS X服務器上有. Xgrid準許管理把一組計算機分組或分簇, 并允許用戶把復雜計算任務方便地分配到一組計算機(本地或/和遠程), 或者是臨時的網格或者是中央管理的簇.
在一個網格中, 認證發生會好多次: 當一個代理加入到一個網格時, 在代理和控制器之間發生; 當客戶端發送一個任務請求時, 發生在客戶和控制器之間; 當控制器把任務分配到代理時, 發生在控制器和所有代理之間. Kerberos認證可以使這些工作都對用戶透明而且安全. 利用Mac OS X服務器和一群客戶端, 可以方便快速地形成強大的計算陣容并僅僅使用現有技術投資和AD架構.
注: 這個練習需要你安裝有Xcode 3.0或者更高.
跟著下面的步驟看如何配置SSO:
1. 運行Server Admin并選中服務器的Xgrid服務, 點擊工具欄中的"General"按鈕.
2. 點擊右下方的”Configure Xgrid Service...“按鈕,跟著向導來生成一個網格. 當顯示配置網絡文件時, 在目錄服務管理員的用戶名和密碼處留空.
3. 點擊繼續來結束向導安裝. Xgrid服務(代理和控制器)會被打開.
4. 在客戶端綁定到AD并登錄AD用戶.
5. 在Sharing偏好里, 打開Xgrid服務, 然后點擊Configuration按鈕. 選擇你的服務器作為控制器, 并且總是接受任務. 點擊OK后, 選擇"Single Sign On"作為認證方法. 關閉系統偏好.
6. 打開在/Application/Server/里的Xgrid Admin程序. 如果客戶端和服務器在同一個子網中,應該自動顯示連接到你的Xgrid服務器. 否則點擊"Add Controller"按鈕把你的服務器地址填入, 點擊連接, 選擇"Single Sign On"作為認證方法.
7. 在概覽標簽中,可以看到當前所有可供使用的處理. 在Agents標簽中, 可以看到客戶端和服務器. 現在最小化Xgrid Admin程序.
8. 在客戶端, 找到"/Developer/Examples/Xgrid/GridMandelbrot/"并雙擊Gridmandelbrot.xcode文件來打開這個Xcode工程文件. 點擊"Build and Go"按鈕.
9. 它會自動提示連接到一個控制器. 選擇你的Xgrid控制器, 然后選擇使用Single Sign On證件. 它將自動開始提交任務到控制器. 然后, 控制器會把任務發布給每一個代理, 回收結果, 然后把結果返回到你的庫護短程序顯示.
10. 返回到Xgrid Admin程序查看CPU的使用情況和代理的狀態以及任務狀態.
11. 在Kerberos程序中檢查票據, 應該有Xgrid服務票據. 認證發生了好多次, 在你的代理和控制器之間, 控制器和代理之間, 客戶端和控制器之間, 還有Xgrid Admin程序和控制器之間. 你一次密碼也不用輸入, 而這些都是Kerberos控制的.
J. 控制服務的訪問
綁定目錄服務的一個負面影響是, 一旦綁定到服務器, 那么任何DS用戶都可以馬上使用所有的服務. 顯然這不受歡迎, 而這就是SACLs(service Access Control List)的用途.
SACLs區分對待不同的用戶和組是否允許使用什么服務. SACLs可以在Server Admin里配置, 并且在本地目錄存儲中形成組. 每一個SACL組(命名為com.apple.access_service)包括有權使用服務的本地或者DS用戶和組的一個列表. 你可以實施同樣的限制到所有服務, 或者對于沒有服務分別設置.
SACLs也可以實施到客戶機,來限制什么用戶可以在機器上登錄. 有關詳細情況, 查看資源部分.
1. 在Server Admin > [server name] > Access > Services里, 選擇"For the selected services below"單選項.
2. 點擊那個要被限制的服務.
3. 選擇"Allow only users and groups below"單選項.
4. 點"+"按鈕并在彈出的抽屜里拖動有權限的用戶和組到"Name"列上.
5. 完成后點"Save"按鈕.
6. 在另外一個Mac OS X機器上, 嘗試使用一個沒有被允許的用戶訪問該服務, 它將不會被允許訪問. 對于不同的服務, 客戶可能得到一個錯誤信息或者是連接失敗的提示.
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
