Sun 企業辯證機制使用指南

第 5章 管理主管及政策

本章將說明與管理主管及政策有關的各項程序。同時也會介紹應該如何管理一個主機的密鑰表。

本章適用於負責管理主管及政策的使用者參考閱讀。您最好在在使用本章之前先熟悉有關主管及政策,包括任何計劃考量等方面。請分別參閱 第 1章, SEAM 簡介第 2章, SEAM 的計劃

本章所包含的逐步說明清單如下﹕

管理主管及政策的方式

主 KDC 之上的 Kerberos 資料庫包含您範疇的所有 Kerberos 主管、其密碼、政策、及其管理資訊。要建立與刪除主管並且修改其屬性,您可以使用 kadmin(1M)gkadmin(1M) 指令。

kadmin 指令可以提供一種管理 Kerberos 主管、政策、及密鑰表的互動式指令行介面。kadmin 指令共有兩種﹕使用 Kerberos 辯證在網路任何一處安全操作的 kadmin 指令,以及必須直接在主 KDC 之上執行的 kadmin.local 指令。除了 kadmin 使用 Kerberos 來辯證使用者之外,兩種指令的功能完全相同。您可以利用本機版來設定足夠的資料庫,以便能使用遠端版本。

此外,SEAM 產品還同時附帶了一個 SEAM 管理工具 gkadmin,是一種互動式的圖形使用者介面 (GUI),與 kadmin 指令的功能大同小異。請參見 "SEAM 管理工具" 中的詳細資訊。

SEAM 管理工具

SEAM 管理工具是一種互動式的圖形使用者介面 (GUI),讓您用來維護 Kerberos 主管及政策。它的功能和 kadmin 指令相同。不過它並不支援密鑰表的管理。您必須使用 kadmin 指令來管理密鑰表,在 "管理密鑰表" 中加以詳述。

正如 kadmin 指令一樣,SEAM Tool 使用 Kerberos 辯證及加密的 RPC 來在網路之上任何一處安全操作。您可以利用 SEAM Tool 來進行下列工作﹕

SEAM Tool 同時也提供與上下文相關的說明及一般性的說明。

下列工作對映圖可以提供您利用 SEAM Tool 所進行的各項工作的指標﹕

同時,請到 "SEAM Tool 面板說明" 以取得有關您可以在 SEAM 工具中指定或檢視的所有主管及政策屬性的說明。

SEAM Tool 的指令行對等指令

本節列出功能與 SEAM Tool 相同的 kadmin 指令,並且可以在不執行 X Window 系統的情況下使用。雖然本章中大部份的程序都使用 SEAM Tool,許多程序中也包括使用指令行對等指令的相應範例。

表 5-1 SEAM Tool 的指令行對等指令

程序 

kadmin 指令

檢視主管清單 

list_principalsget_principals

檢視一位主管的屬性 

get_principal

建立一個新的政策 

add_principal

複製一位主管 

沒有指令行對等指令 

修改一位主管 

modify_principalchange_password

刪除一位主管 

delete_principal

設定建立新主管的預設值 

沒有指令行對等指令 

檢視政策清單 

list_policiesget_policies

檢視一個政策的屬性 

get_policy

建立一個新的政策 

add_policy

修改一個政策 

modify_policy

複製一個政策 

沒有指令行對等指令 

刪除一個政策 

delete_policy

SEAM Tool 所修改的檔案

SEAM Tool 所修改的唯一檔案就是 $HOME/.gkadmin檔案。其中包含建立新主管的預設值,而且可以從「編輯」功能表中選取「內容」來加以更新。

SEAM Tool 的列印及線上「說明」功能

SEAM Tool 可以提供列印及線上說明的功能。您可以從「列印」功能表中將下列內容傳至一個印表機或或檔案中﹕

您可以從「說明」功能表中取得與上下文相關的說明以及一般性的說明。當您從「說明」功能表中選取「與上下文相關的說明」時,「與上下文相關的說明」視窗就會顯示出來,而工具會被切換為說明模式。在說明模式中,當您按一下視窗上的任何一個欄位、標籤、或按鈕,有關該項目的說明內容就會顯示在「說明」視窗當中。要切換回工具的普通模式,請按一下「說明」視窗中的「撤銷」按鈕。

您也可以選取「說明內容」來開啟一個 HTML 瀏覽器,以尋找本章所提及的一般性概觀及工作資訊的指標。

在 SEAM Tool 中使用大型清單

隨著您的網站開始逐漸累積大量的主管及政策,SEAM 工具用來載入與顯示主管及政策清單的時間會愈來愈長,而且也會減緩使用此工具的生產效力。有數種因應之道。

首先,不讓 SEAM 工具執行載入清單的工作而完全省卻載入清單的時間。您可以從「編輯」功能表中選取「內容」並且取消「顯示清單」欄位的核選以設定此選項。當然,當工具不載入清單時,它便無法將清單顯示出來,而您也就無法使用清單面板來選擇主管或政策。相反地,您必須在新名稱欄位中輸入一個主管或政策名稱,然後再選擇您想要執行的操作。基本上,輸入名稱的動作和從清單中選擇一個項目的功效是相等的。

另一個使用大型清單的方法是將它們快取緩衝。事實上,SEAM 工具預設的行為是在有限的時間內快取清單。在一開始 SEAM 工具仍然必須將清單載入快取記憶體,但是之後工具就可以直接使用快取記憶體,而不需要再次擷取清單。因此就省卻了一直從伺服器載入清單的麻煩,自然也就不必花那麼多的時間了。

您可以從「編輯」功能表中選取「內容」來設定清單的快取。快取設定值共有兩種。您可以選擇要永遠快取清單,或者可以指定一個時間限制,好讓工具再從伺服器將清單重新載入快取記憶體中。

即使在快取清單之後,您還是可以使用清單面板來選擇主管及政策,所以不會像第一個選項那樣影響您使用 SEAM Tool。同時,即使快取會讓您無法看見其他人的變更,您還是可以從您的變更來查看最新的清單資訊,因為您的變更會同時更新伺服器及快取記憶體中的清單。而且,如果您想要更新快取記憶體來查看其他人的變更,以取得清單的最新版本,您可以在想要從伺服器刷新快取記憶體時使用「刷新」功能表。

如何開始 SEAM Tool

  1. 使用 gkadmin 指令以開始 SEAM Tool。


    $ /usr/krb5/sbin/gkadmin
    

    「登入」視窗會顯示出來。

    Graphic
  2. 如果您不想使用預設值,請指定新的預設值。

    「登入」視窗中會自動填入預設值。預設的主管名稱是從 USER 環境變數取得您目前的身份然後將 /admin 附加其上而得(使用者名稱/admin)。預設的範疇及主 KDC 欄位是從 /etc/krb5/krb5.conf 檔案中選擇的。如果您想要回到預設值的話,請按一下「從頭開始。


    註解 -

    主管名稱可執行的管理操作係由 Kerberos ACL 檔案 /etc/krb5/kadm5.acl 所負責管理的。請參見 "使用 SEAM Tool。以有限的 Kerberos 管理權限" 中有關限制權限的資訊。


  3. 為指定的主管名稱輸入一個密碼。

  4. 按一下「確定」。

    下列視窗會顯示出來。

    Graphic

管理主管

本節將逐步說明如何使用 SEAM Tool 來管理主管。其中也同時會在每個程序之後使用 kadmin 指令,以介紹適用的指令行對等指令的範例。

管理主管工作對映圖

表 5-2 管理主管工作對映圖

工作 

說明 

如需指示,請到 ... 

檢視主管清單 

按一下「主管」標籤以檢視主管清單。 

"如何檢視主管清單"

檢視一位主管的屬性 

在「主管清單」中選擇「主管」然後按一下「修改」按鈕以檢視一位主管的屬性。 

"如何檢視一位主管的屬性"

建立一位新的主管 

按一下「主管清單」面板中的「建立新的」按鈕以建立一位新的主管。 

"如何建立一位新主管"

複製一位主管 

在「主管清單」中選擇要複製的主管然後按一下「複製」按鈕以複製一位主管。 

"如何複製一位主管"

修改一位主管 

在「主管清單」中選擇要修改的主管然後按一下「修改」按鈕以修改一位主管。 

請注意,您無法修改一位主管的名稱。要將一位主管重新命名,您必須先複製此主管,為它指定一個新的名稱,儲存它,然後再刪除舊的主管。 

"如何修改一位主管"

刪除一位主管 

在「主管清單」中選擇要刪除的主管然後按一下「刪除」按鈕以刪除一位主管。 

"如何刪除一位主管"

設定建立新主管的預設值 

從「編輯」功能表中選取「內容」以設定建立新主管的預設值。 

"如何設定建立新主管的預設值"

修改 Kerberos 管理權限 (kadm5.acl 檔案)

僅限指令行。 Kerberos 管理權限可以決定一位主管在 Kerberos 資料庫中執行的操作為何,如新增與修改等。您必須編輯 /etc/krb5/kadm5.acl 檔案才能修改每位主管的 Kerberos 管理權限。

"如何修改 Kerberos 管理權限"

自動建立新主管

雖然 SEAM Tool 的使用容易,卻無法為您自動建立新的主管。當您必須在短時間內新增十位甚至上百位新主管的時候,就特別需要自動功能。不過您只要使用 Bourne shell 指令檔中的kadmin.local 指令,就可以自動建立許多的主管。

下列的 shell 指令檔文字行將示範如何進行﹕

sed -e 's/^\(.*\)$/ank +needchange -pw \1 \1/' < princnames |         
time /usr/krb5/sbin/kadmin.local> /dev/null

在此特別將本範例分為兩行以便於使用者閱讀。指令檔會讀取一個稱為 princnames 的檔案,並且將其中所含的主管名稱及密碼新增至 Kerberos 資料庫中。您必須建立 princnames 檔案以在每一行中包含一個主管名稱及其密碼,由一或多個空格分隔開來。+needchange 選項會設置主管,使用者在第一次以主管登入時,會被提示要輸入一個新的密碼,以確保 princnames 檔案中的密碼沒有安全上的顧慮。

以上只是其中一個範例。您可以建立更多複雜的指令檔,如使用名稱服務的資訊來取得主管名稱的使用者名稱清單等。您可以視網站的需求和您本身的指令寫作專才,來自行設計適合的指令檔。

如何檢視主管清單

本程序之後有一個相應的指令行對等指令範例。

  1. 如果有必要,請開始 SEAM Tool。

    請參見 "如何開始 SEAM Tool" 中的詳細說明。

  2. 按一下「主管」標籤。

    主管清單會顯示出來。

    Graphic
  3. 要顯示一位特定的主管或主管的子清單,請在「過濾模式」欄位中輸入一個過濾字串,然後按下 return 鍵。如果過濾成功,符合過濾條件的主管清單會顯示出來。

    過濾字串必須包含一或多個字元。因為過濾機制是區分大小寫的,您必須使用正確的大寫及小寫字母來作為過濾條件。例如,若您輸入過濾字串 ge,過濾機制就只會顯示其中有 ge字串的主管(例如, georgeedge)。

    如果您想要顯示整份主管清單,請按一下「清除過濾器」。

範例 - 檢視主管清單(指令行)

下列範例使用 kadminlist_principals 指令來列出所有符合 test* 的主管。萬用字元可以與 list_principals 指令配合使用。


"kadmin: list_principals test*""test1@ACME.COM""test2@ACME.COM""kadmin: quit"

如何檢視一位主管的屬性

本程序之後有一個相應的指令行對等指令範例。

  1. 如果有必要,請開始 SEAM Tool。

    請參見 "如何開始 SEAM Tool" 中的詳細說明。

  2. 按一下「主管」標籤。

  3. 在您想要檢視的清單中選擇主管然後按一下「修改」。

    包含某些主管屬性的「主管基礎資訊」面板會顯示出來。

  4. 繼續按一下「下一步」以查看所有的主管屬性。

    從「說明」功能表中選取「與上下文相關的說明」以取得有關每個視窗中各個屬性的資訊。或者移到 "SEAM Tool 面板說明" 以參考所有主管屬性的說明。

  5. 當您檢視完畢之後,請按一下「取消」。

範例 - 檢視一位主管的屬性

下列範例將顯示檢視 jdb/admin 主管時的第一個視窗。

Graphic

範例 - 檢視一位主管的屬性(指令行)

下列範例使用 kadminget_principal 指令來檢視 jdb/admin 主管的屬性。


"kadmin: getprinc jdb/admin""主管﹕jdb/admin@ACME.COM""截止日期﹕星期五 8 月 25 日 17:19:05 PDT 2000""上一次的密碼變更﹕[永不]""密碼截止日期﹕星期三 4 月 14 日 11:53:10 PDT 1999""最長的許可證壽命﹕1 天 16:00:00 ""最長的可更新壽命﹕1 天 16:00:00 ""上一次修改﹕Thu 1 月 14 11:54:09 太平洋標準時間 1999 (admin/admin@ACME.COM) ""上一次成功的辯證.[永不] ""上一次失敗的辯證﹕[永不] ""失敗的密碼嘗試﹕0 ""密鑰數目﹕1 ""個密鑰﹕vno 1,DES cbc 模式與 CRC-32,沒有 salt ""屬性﹕REQUIRES_HW_AUTH 政策﹕[無] ""kadmin:quit"

如何建立一位新主管

本程序之後有一個相應的指令行對等指令範例。

  1. 如果有必要,請開始 SEAM Tool。

    請參見 "如何開始 SEAM Tool" 中的詳細說明。


    註解 -

    如果您正在建立一位需要新政策的新主管,您應該在建立新主管之前先建立新的政策。請移到 "如何建立一個新政策"


  2. 按一下「主管標籤」。

  3. 按一下「新的」。

    包含一位主管某些屬性的「主管基礎資訊」面板會顯示出來。

  4. 指定一位主管名稱及密碼。

    主管名稱及密碼都是強制性的。

  5. 指定主管的屬性值,並且繼續按一下「下一步」以指定其他的屬性。

    有三個視窗包含屬性資訊。從「說明」功能表中選取「與上下文相關的說明」以取得有關每個視窗中各個屬性的資訊。或者移到 "SEAM Tool 面板說明" 以參考所有主管屬性的說明。

  6. 按一下「儲存」以儲存主管,或是在上一個面板中按一下「完成」。

  7. 如果有必要,您可以設定 /etc/krb5/kadm5.acl 檔案中的新主管 Kerberos 管理權限。

    請參見 "如何修改 Kerberos 管理權限" 中的詳細說明。

範例 - 建立一個新的主管

下列範例中顯示在建立一位稱為 pak 的新主管時出現的「主管基礎資訊」面板。目前政策都被設定為 testuser

Graphic

範例 - 建立一個新的主管(指令行)

下列範例使用 kadminadd_principal 指令來建立一位稱為 pak 的新主管。主管的政策被設定為 testuser


"kadmin: add_principal -policy testuser pak ""輸入主管 "pak@ACME.COM" 的密碼﹕<鍵入密碼>""重新輸入主管 "pak@ACME.COM" 的密碼﹕<再次鍵入密碼>""建立了主管 "pak@ACME.COM"。""kadmin: quit"

如何複製一位主管

本程序將說明如何使用一位現存主管的所有或某些屬性來建立一位新的主管。此程序沒有指令行對等指令。

  1. 如果有必要,請開始 SEAM Tool。

    請參見 "如何開始 SEAM Tool" 中的詳細說明。

  2. 按一下「主管」標籤。

  3. 在您想要複製的清單中選擇主管然後按一下「複製」。

    「主管基礎資訊」面板會顯示出來。除了空白的「主管名稱及密碼」欄位之外,選定主管的所有屬性都會被複製。

  4. 指定一個主管名稱及密碼。

    主管名稱及密碼都是強制性的。如果您想要複製和您所選定的主管完全一樣的副本,請按一下「儲存」然後跳到最後一個步驟。

  5. 為主管的屬性指定不同的數值,並且按一下「下一步」以繼續指定其他屬性。

    有三個視窗包含屬性資訊。從「說明」功能表中選取「與上下文相關的說明」以取得有關每個視窗中各個屬性的資訊。或者移到 "SEAM Tool 面板說明" 以參考所有主管屬性的說明。

  6. 按一下「儲存」以儲存主管,或是在上一個面板中按一下「完成」。

  7. 如果有必要,您可以設定 /etc/krb5/kadm5.acl 檔案中主管的 Kerberos 管理權限。

    請參見 "如何修改 Kerberos 管理權限" 中的詳細說明。

如何修改一位主管

本程序之後有一個相應的指令行對等指令範例。

  1. 如果有必要,請開始 SEAM Tool。

    請參見 "如何開始 SEAM Tool" 中的詳細說明。

  2. 按一下「主管」標籤。

  3. 在您想要修改的清單中選擇主管然後按一下「修改」。

    包含某些主管屬性的「主管基礎資訊」面板會顯示出來。

  4. 修改主管的屬性,然後繼續按一下「下一步」以修改其他的屬性。

    有三個視窗包含屬性資訊。從「說明」功能表中選取「與上下文相關的說明」以取得有關每個視窗中各個屬性的資訊。或者移到 "SEAM Tool 面板說明" 以參考所有主管屬性的說明。


    註解 -

    您無法修改一位主管的名稱。要將一位主管重新命名,您必須先複製此主管,為它指定一個新的名稱,儲存它,然後再刪除舊的主管。


  5. 按一下「儲存」以儲存主管,或是在上一個面板中按一下「完成」。

  6. 修改主管在 /etc/krb5/kadm5.acl 檔案中的 Kerberos 管理權限。

    請參見 "如何修改 Kerberos 管理權限" 中的詳細說明。

範例-修改一位主管的密碼(指令行)

下列範例使用 ch kadmin 的 ange_password 指令來修改 jdb 主管的密碼。change_password 並不允許您將密碼變更為主管的密碼歷程中已有的密碼。


"kadmin: change_password jdb ""輸入主管 "jdb" 的密碼﹕<鍵入新的密碼>""重新輸入主管 "jdb" 的密碼﹕<再次鍵入密碼> ""變更了 "jdb@ACME.COM" 的密碼。""kadmin:quit"

要修改一位主管的其他屬性,您必須使用 kadminmodify_principal 指令。

如何刪除一位主管

本程序之後有一個相應的指令行對等指令範例。

  1. 如果有必要,請開始 SEAM Tool。

    請參見 "如何開始 SEAM Tool" 中的詳細說明。

  2. 按一下「主管」標籤。

  3. 在您想要刪除的清單中選擇主管然後按一下「刪除」。

    在您確認刪除動作之後,主管會被刪除。

  4. 從 Kerberos ACL 檔案 /etc/krb5/kadm5.acl 中將主管移除。

    請參見 "如何修改 Kerberos 管理權限" 中的詳細說明。

範例-刪除一位主管(指令行)

下列範例使用 kadmindelete_principal 指令來刪除 jdb 主管。


"kadmin: delete_principal pak ""您是否確定要刪除主管 "pak@ACME.COM"?(是/否)﹕""主管 "pak@ACME.COM" 被刪除。請確定在您重新使用之前已經從所有的 ACL 中移除此主管。""kadmin: quit"

如何設定建立新主管的預設值

此程序沒有指令行對等指令。

  1. 如果有必要,請開始 SEAM Tool。

    請參見 "如何開始 SEAM Tool" 中的詳細說明。

  2. 從「編輯」功能表中選取內容。

    內容視窗會顯示出來。

    Graphic
  3. 選擇在您建立新主管時想要的預設值。

    從「說明」功能表中選取「與上下文相關的說明」以取得有關每個視窗中各個屬性的資訊。

  4. 按一下「儲存」。

如何修改 Kerberos 管理權限

雖然您的網站可以有許多位使用者主管,最好只讓少數的使用者來管理 Kerberos 資料庫。管理 Kerberos 資料庫的權限是由 Kerberos 存取控制清單 (ACL) 檔案 kadm5.acl(4) 決定的。kadm5.acl 檔案可以讓您允許或否決個別主管的權限,或者您可以使用主管名稱中的 '*' 萬用字元來指定主管群組的權限。

  1. 在主 KDC 之上成為超級使用者。

  2. 編輯 /etc/krb5/kadm5.acl 檔案。

    kadm5.acl 檔案中的一個項目必須為下列格式﹕


    主管   權限  [principal_target]

    主管

    被賦予權限的主管。任何部份的主管名稱都可以包括 '*' 萬用字元,這在提供一個主管群組相同的權限時很有用。例如,若您想為所有主管指定 admin 實例,您就應該使用 */admin@範疇。請注意,admin實例通常的用法是將個別的權限(如管理存取給 Kerberos 資料庫)賦予個別的 Kerberos 主管。例如,使用者 jdb 可能有一個供其管理用途的主管,稱為 jdb/admin。這樣一來,jdb 就只能在實際需要使用那些權限時才能取得 jdb/admin 許可證。

    權限

    指定主管可以或無法執行何種操作。這是一或多個下列字元的字串或其大寫相同字母的清單。如果字元是大寫(或未指定),操作便不被允許。如果字元是小寫的,那麼操作就被准許。 

     

    a

    [Dis]允許附加主管或政策。 

     

    d

    [Dis] 允許刪除主管或政策。 

     

    m

    [Dis]允許修改主管或政策。 

     

    c

    [Dis]允許變更主管的密碼。 

     

    i

    [Dis]允許資料庫查詢。 

     

    l

    [Dis]允許資料庫中的主管或政策清單。 

     

    x*

    允許所有的權限(admcil)。

    principal_target

    在此欄位中指定一位主管時,權限只有在 principal_target 之上操作時才會套用至主管。主管名稱的任何部份都可以包括 '*' 萬用字元,對群組主管很有幫助。

範例-修改 Kerberos 管理權限

下列 kadm5.acl 檔案中的項目會賦予 ACME.COM 範疇中有 admin 實例的任何主管資料庫的所有使用權限。


*/admin@ACME.COM *

下列 kadm5.acl 檔案中的項目會賦予 jdb@ACME.COM 主管新增、列出、與查詢任何有 root 實例主管的權限。


jdb@ACME.COM ali */root@ACME.COM

管理政策

本節將逐步說明使用 SEAM Tool 來管理政策的步驟。其中也同時會在每個程序之後使用 kadmin 指令,以介紹適用的指令行對等指令的範例。

管理政策工作對映圖

表 5-3 管理政策工作對映圖

工作 

說明 

如需指示,請到 ... 

檢視「政策清單」 

按一下「政策」標籤以檢視政策的清單。 

"如何檢視「政策清單」"

檢視一個政策的屬性 

在政策清單中選擇「政策」然後按一下「修改」按鈕以檢視一個政策的屬性。 

"如何檢視一個政策的屬性"

建立一個新政策 

按一下「政策清單」面板中的「建立新的」按鈕以建立一個新的政策。 

"如何建立一個新政策"

複製一個政策 

在「政策清單」中選擇要複製的政策然後按一下「複製」按鈕以複製一個政策。 

"如何複製一個政策"

修改一個政策 

在「政策清單」中選擇要修改的政策然後按一下「修改」按鈕以修改一個政策。 

請注意,您無法修改一個政策的名稱。要將一個政策重新命名,您必須先複製此政策,為它指定一個新的名稱,儲存它,然後再刪除舊的政策。 

"如何修改一個政策"

刪除一個政策 

在「政策清單」中選擇要刪除的政策然後按一下「刪除」按鈕以刪除一個政策。 

"如何刪除一個政策"

如何檢視「政策清單」

本程序之後有一個相應的指令行對等指令範例。

  1. 如果有必要,請開始 SEAM Tool。

    請參見 "如何開始 SEAM Tool" 中的詳細說明。

  2. 按一下政策標籤。

    政策清單就會顯示出來。

    Graphic
  3. 要顯示一個特定的主管或政策子清單,請在「過濾模式」欄位中輸入一個過濾字串,然後按下 return 鍵。如果過濾成功,符合過濾條件的政策清單就會顯示出來。

    過濾字串必須包括一或多個字元。而且因為過濾機制是區分大小寫的,您必須使用正確的大寫及小寫字母來作為過濾條件。例如,若您輸入過濾字串 ge,過濾機制只會顯示包含 ge 字串的政策(例如,georgeedge)。

    如果您想要顯示整個政策清單,請按一下「清除過濾器」。

範例 - 檢視「政策清單」(指令行)

下列範例使用 kadminlist_policies 指令來列出所有符合 *user* 的政策。萬用字元可以與 list_policies 指令配合使用。


"kadmin: list_policies *user*""testuser""enguser""kadmin: quit"

如何檢視一個政策的屬性

本程序之後有一個相應的指令行對等指令範例。

  1. 如果有必要,請開始 SEAM Tool。

    請參見 "如何開始 SEAM Tool" 中的詳細說明。

  2. 按一下政策標籤。

  3. 在您想要檢視的清單中選擇政策然後按一下「修改」。

    政策詳細資訊面板會顯示出來。

  4. 當您檢視完畢之後,請按一下「取消」。

範例 - 檢視一個政策的屬性

下列範例顯示檢視 test 政策時的「政策詳細資訊」面板。

Graphic

範例 - 檢視一個政策的屬性(指令行)

下列範例使用 kadminget_policy 指令來檢視 enguser 政策的屬性。


"kadmin: get_policy enguser  ""政策﹕enguser ""最長的密碼壽命﹕2592000 ""最短的密碼壽命﹕0 ""最小的密碼長度﹕8 ""最小的密碼字元類別數目﹕2 ""保存的舊密鑰數目﹕3 ""參考計數﹕0 ""kadmin:quit"

參考計數為使用該政策的主管數目。

如何建立一個新政策

本程序之後有一個相應的指令行對等指令範例。

  1. 如果有必要,請開始 SEAM Tool。

    請參見 "如何開始 SEAM Tool" 中的詳細說明。

  2. 按一下「政策」標籤。

  3. 按一下「新的」。

    「政策詳細資訊」面板會顯示出來。

  4. 在「政策名稱」欄位中為政策指定一個名稱。

    政策名稱是強制性的。

  5. 指定政策的屬性數值。

    從「說明」功能表中選取「與上下文相關的說明」以取得有關每個視窗中各個屬性的資訊。或者移到 表 5-7 以參考所有政策屬性的說明。

  6. 按一下「儲存」以儲存政策,或是按一下「完成」。

範例 - 建立一個新政策

下列範例將顯示應如何建立一個稱為 build11 的新政策。目前「最小的密碼類別數目」已被變更為 3。

Graphic

範例 - 建立一個新政策(指令行)

下列範例使用 kadminadd_policy 指令來建立 build11 政策,其密碼中需要至少 3 個字元類別。


"$ kadmin""kadmin: add_policy -minclasses 3 build11""kadmin: quit"

如何複製一個政策

此程序將說明如何使用一個現存政策的所有或某些屬性來建立一個新的政策。本程序沒有任何指令行對等指令。

  1. 如果有必要,請開始 SEAM Tool。

    請參見 "如何開始 SEAM Tool" 中的詳細說明。

  2. 按一下「政策」標籤。

  3. 在您想要複製的清單中選擇政策然後按一下「複製」。

    「政策詳細資訊」面板會顯示出來。除了空白的「政策名稱」欄位之外,選定政策的所有屬性都會被複製。

  4. 在「政策名稱」欄位中為複製的政策指定一個名稱。

    政策名稱是強制性的。如果您想要複製和您所選定的政策完全一樣的副本,請按一下「儲存」並且跳至下一步。

  5. 為政策的屬性指定不同數值。

    從「說明」功能表中選取「與上下文相關的說明」以取得有關每個視窗中各個屬性的資訊。或者一到 表 5-7 f以參考所有政策屬性的說明。

  6. 按一下「儲存」以儲存政策,或是按一下「完成」。

如何修改一個政策

本程序之後有一個相應的指令行對等指令範例。

  1. 如果有必要,請開始 SEAM Tool。

    請參見 "如何開始 SEAM Tool" for 詳細說明。

  2. 按一下「政策」標籤。

  3. 在您想要修改的清單中選擇政策然後按一下「修改」。

    政策詳細資訊面板會顯示出來。

  4. 修改政策的屬性。

    從「說明」功能表中選取「與上下文相關的說明」以取得有關每個視窗中各個屬性的資訊。或者一到 表 5-7 f以參考所有政策屬性的說明。


    註解 -

    您無法修改一個政策的名稱。要將一個政策重新命名,您必須先複製此政策,為它指定一個新的名稱,儲存它,然後再刪除舊的政策。


  5. 按一下「儲存」以儲存政策,或是按一下「完成」。

範例 - 修改一個政策(指令行)

下列範例使用 kadminmodify_policy 指令來將一個 build11 政策的密碼最小長度修改為五個字元。


"$ kadmin""kadmin: modify_policy -minlength 5 build11""kadmin: quit"

如何刪除一個政策

本程序之後有一個相應的指令行對等指令範例。

  1. 如果有必要,請開始 SEAM Tool。

    請參見 "如何開始 SEAM Tool" for 詳細說明。

  2. 按一下「政策」標籤。


    註解 -

    在您刪除一個政策之前,您必須從目前使用它的所有主管取消政策(您必須修改主管的政策屬性)。如果有任何主管正在使用此政策的話,便無法將它刪除。


  3. 在您想要刪除的清單中選擇政策然後按一下「刪除」。

    在您確認刪除動作之後,該政策會被刪除。

範例 - 刪除一個政策(指令行)

下列範例使用 kadmin 指令的 delete_policy 指令來刪除 build11 政策。


"kadmin: delete_policy build11 您是否確定要刪除政策 "build11"?(是/否)﹕""yes ""kadmin:quit"

在您刪除一個政策之前,您必須從目前使用它的所有主管取消政策(您必須使用 主管上 kadminmodify_principal -policy指令)。如果有一位主管正在使用 delete_policy 指令的話,它便會失敗。

SEAM Tool 參考資料

本節將說明有關 SEAM Tool 的參考資料。

SEAM Tool 面板說明

本節將說明可在 SEAM 工具中指定或檢視的每個主管及政策的屬性。屬性是由顯示它們的面板所組織的。

表 5-4 主管基礎資訊面板屬性

屬性 

說明 

主管名稱 

主管的名稱(一個完全符合條件的主管名稱的primary/實例部份)。主管是 KDC 可以指派許可證的一個獨特實體。

如果您正在修改一位主管,您便無法編輯一位主管的名稱。 

密碼 

主管的密碼。您可以使用「生成隨機密碼」按鈕來為主管建立一個隨機密碼。 

政策 

主管可用的政策功能表。 

帳號過期 

主管帳號過期的日期及時間。當帳號過期時,主管便不能再取得一張能賦予許可證的許可證 (TGT),而且也無法登入。 

上一次的主管變更  

上一次修改主管資訊的日期。(唯讀) 

上一次的變更者 

上一次修改此主管帳號的主管名稱。(唯讀) 

註解 

與主管有關的註解(例如,'暫存帳號') 

表 5-5 主管詳細資訊面板屬性

屬性 

說明 

上一次成功 

主管上一次成功登入的日期及時間。(唯讀) 

上一次失敗 

主管上一次登入失敗的日期及時間。(唯讀) 

失敗計數 

主管登入發生失敗的次數。(唯讀) 

上一次的密碼變更 

主管的密碼上一次變更的日期及時間。(唯讀) 

密碼過期 

主管目前的密碼將要過期的日期及時間。 

密鑰版本 

主管的密鑰版本編號;通常只有在密碼被竊取的情況下才會變更。 

最長的壽命(秒數) 

可以賦予主管許可證的最長時間(沒有更新)。 

最長的更新(秒數) 

可以更新現存的主管許可證的最長時間。 

表 5-6 主管旗標面板屬性

屬性(選項圓鈕) 

說明 

停用帳號 

核選時,主管便無法登入。這是以任何原因需要暫時凍結一個主管帳號的簡單方法。 

要求密碼變更 

核選時,會使主管目前的密碼過期,強迫使用者改用 kpasswd 指令來建立一個新的密碼。在產生安全上的顧慮而且必須確定取代舊的密碼時非常有用。

允許遠期的許可證 

核選時,允許主管取得遠期的許可證。 

例如,您必須使用遠期的許可證來執行 cron 工作,工作必須在上班時間以外執行,並且因為許可證壽命太短而無法事先取得許可證。 

允許可轉遞的許可證 

核選時,主管便可取得可轉遞的許可證。 

可轉遞的許可證是一張被轉遞至遠端主機的許可證,可以提供單一簽入的作業階段。例如,如果您正在使用可轉遞的許可證,而且您已經透過 ftprsh 來自我辯證的話,不會提示您輸入另一個密碼,就可以使用其他如 NFS 服務的服務。

允許可更新的許可證 

核選時,允許主管取得可更新的許可證。 

主管可以自動延長一張可更新許可證的截止日期或時間(而不需在第一張過期之後取得一張新的許可證)。目前 NFS 服務是唯一可以更新許可證的服務。 

允許可代理的許可證 

核選時,允許主管取得可代理的許可證。 

可代理的許可證是一張可以由代表客戶端執行客戶端操作的服務所用的許可證。一項服務可以利用可代理的許可證來成為一個客戶端的身份,並且為另一項服務取得一張許可證,但它無法取得一張能賦予許可證的許可證。 

允許服務許可證 

核選時,允許核發服務許可證給主管。 

您不應該將服務許可證核發給 kadmin/ 主機名稱changepw/ 主機名稱 主管,以確保這些主管只能更新 KDC 資料庫。

允許以 TGT 為基礎的辯證 

核選時,允許服務主管為另一位主管提供服務。更明確地說,可以允許 KDC 核發一張服務許可證給服務主管。 

本屬性只適用於服務主管。未被核選時,便無法將服務許可證核發給服務主管。 

允許複製辯證 

核選時,允許使用者主管為其他使用者主管取得服務許可證。 

本屬性只適用於使用者主管。未被核選時,使用者主管仍然可以為服務主管,但卻無法為其他使用者主管取得服務許可證。 

所需的事先辯證 

核選時,KDC 在辯證(透過軟體)要求 TGT 的主管身份之後,才會將所要求的能賦予許可證的許可證 (TGT) 傳送給主管。通常是利用一個額外的密碼,例如從一個 DES 卡來進行這種事先辯證。 

未被核選時,KDC 在將要求的 TGT 傳送給主管之前不需要事先辯證它。 

所需的硬體辯證 

核選時,KDC 在辯證(透過硬體)要求 TGT 的主管身份之後,才會將所要求的能賦予許可證的許可證 (TGT) 傳送給主管。Java 環式讀取器就是一種硬體事先辯證。 

未被核選時,KDC 在將要求的 TGT 傳送給主管之前不需要事先辯證它。 

表 5-7 政策基礎資訊面板屬性

屬性 

說明 

政策名稱 

政策的名稱。一個政策是監督主管密碼及許可證的一組規則。 

如果您正在修改一個政策,您便無法編輯一個政策的名稱。 

最小的密碼長度 

主管密碼的最小長度。 

最少的密碼類別 

主管密碼所需的不同字元類型的最小數目。 

例如,一個 2 的最小類別數值表示密碼必須有至少兩種不同的字元類型,如字母及數字 (hi2mom)。一個 3 的值則表示密碼必須有至少三種不同的字元類型,如字母、數字、及標點符號 (hi2mom!) 等等。 

一個 1 的數值基本上對密碼字元類型的數目沒有任何限制。 

儲存的密碼歷程 

已經被主管使用而且無法再重新使用的先前的密碼數目。 

最短的密碼壽命(秒數) 

在可以變更密碼之前必須使用的最短時間。 

最長的密碼壽命(秒數) 

在必須變更密碼之前可以使用的最長時間。 

使用此政策的主管 

目前套用此政策的主管數目。(唯讀) 

使用 SEAM Tool。以有限的 Kerberos 管理權限

如果您的 admin 主管擁有管理 Kerberos 資料庫的所有權限的話,便可以使用 SEAM 管理工具的所有功能。您也可以限制這些權限,如只允許檢視主管清單或變更一位主管的密碼。如果只擁有有限的 Kerberos 管理權限,您仍然可以使用 SEAM 管理工具,不過 SEAM 工具的各個部份會根據您所沒有的 Kerberos 管理權限而變更。表 5-8 將說明 SEAM 工具如何根據您的 Kerberos 管理權限而變更。

當您沒有清單權限時,最容易發現 SEAM 工具的變更。如果沒有清單權限,「清單」面板就不會顯示主管及政策的清單來供您操控。相反地,您必須使用「清單」面板中的「名稱」欄位來指定一個您想要使用的主管或政策。

如果您登入 SEAM 工具而且沒有足夠的權限其其中執行有用的工作,那麼下列的訊息會顯示除了,然後您會被送回「登入」視窗中﹕


使用 gkadmin: ADMCIL 的不足權限。請試著使用另一位主管。

要將一位主管的權限變更為管理 Kerberos 資料庫,請到 "如何修改 Kerberos 管理權限"

表 5-8 以有限的 Kerberos 管理權限來使用 SEAM 工具

如果您沒有此權限 ... 

然後 SEAM 工具會變更為下列各項 ... 

a(新增)

「主管及政策清單」面板中的「建立新的與複製」按鈕無法使用。沒有新增的權限,您便無法建立新的或複製的主管或政策。 

d(刪除)

「主管及政策清單」面板中的「刪除」按鈕無法使用。沒有刪除的權限,您便無法刪除主管或政策。 

m (修改)

「主管及政策清單」面板中的「修改」按鈕無法使用。沒有修改的權限,您便無法修改主管或政策。 

同時,無法使用「修改」按鈕時,即使您擁有變更密碼的權限,您也無法修改一位主管的密碼。 

c(變更密碼)

「主管基礎資訊」面板中的密碼欄位係唯讀,而且無法變更。沒有變更密碼的權限,您便無法修改一位主管的密碼。  

請注意,即使您擁有變更密碼的權限,您還必須擁有變更一位主管密碼的修改權限。 

i(查詢資料庫)

「主管及政策」清單面板中的「修改」及「複製按鈕無法使用。沒有查詢的權限,您無法修改或複製一位主管或一個政策。 

同時,無法使用「修改」按鈕時,即使您擁有變更密碼的權限,您也無法修改一位主管的密碼。 

l(清單)

「清單」面板中的主管及政策清單無法使用。沒有清單的權限,您必須使用「清單」面板中的「名稱」欄位以指定您想要在其上工作的主管或政策。 

管理密鑰表

每一個提供服務的主機都必須有一個稱為 密鑰表(密鑰表的簡稱)的本機檔案,其中包含一個稱為 服務密鑰的正確服務主管。一項服務會使用服務密鑰來向 KDC 自我辯證,而且只有 Kerberos 及服務本身才知道。例如,如果您擁有一個 Kerbero 化NFS 伺服器,該伺服器必須有一個包含其 nfs 服務主管的密鑰表。

要將一個服務密鑰新增至密鑰表中,您使用 kadminktadd 指令來將正確的服務主管新增至一個主機的密鑰表中。而且,因為您是在將一個服務主管新增至密鑰表中,主管必須已經存在於 Kerberos 資料庫中,所以 kadmin 便可以確認其存在。根據預設,密鑰表檔案位於主 KDC 之上的 /etc/krb5/kadm5.keytab 中。根據預設,密鑰表檔案位於提供 Kerbero 化服務的應用程式伺服器之上的 /etc/krb5/krb5.keytab 中。

我們可以將密鑰表比喻為一個使用者的密碼。使用者必須小心防護他們的密碼,同樣地,應用程式伺服器也必須防護其密鑰表。您應該將密鑰表貯存在一個本機的磁碟之上,並且只有 root 有讀取的權限,也不得透過一個不安全的網路來傳送密鑰表。

也有特別的實例來將一位 root 主管新增至一個主機的密鑰表中。基本上,如果您想要 SEAM 客戶端之上的一位使用者使用 Kerberos 辯證來自動裝載 Kerberos 化的NFS 檔案系統,您必須將客戶端的 root 主管新增至客戶端的密鑰表中。否則,使用者必須在他們想要裝載一個 Kerberos 化的NFS 檔案系統時,利用 kinit 指令作為 root,甚至是使用自動裝載器以取得客戶端 root 主管的證書。請參見 "設定 Root 辯證以裝載 NFS 檔案系統" 中的詳細資訊。


註解 -

當您設定一個主 KDC 時,必須將 kadmindchangepw 主管新增至 kadm5.keytab 檔案中,好讓 KDC 解密管理員的 Kerberos 許可證,以決定是否應該賦予它們存取資料庫的權限。


另一個您可以用來管理密鑰表的指令就是 ktutil 指令。 ktutil 是一種互動式的指令行介面公用程式,讓您在沒有 Kerberos 管理權限的情況下,仍然可以管理一個本機主機的密鑰表。因為 ktutil 不像 kadmin 一樣會與 Kerberos 資料庫互動。因此在將一位主管新增至密鑰表之後,您可以使用 ktutil 來檢視密鑰表中的密鑰清單,或是暫時停用一項服務的辯證。

管理密鑰表工作對映圖

表 5-9 管理密鑰表工作對映圖

工作 

說明 

如需指示,請到 ... 

將服務主管新增至一個密鑰表中 

使用 kadminktadd 指令以將一位服務主管新增至密鑰表中。

"如何將一位服務主管新增至密鑰表中"

從一個密鑰表中移除一位服務主管 

使用 kadminktremove 指令以從密鑰表中移除一項服務。

"如何從密鑰表中移除一位服務主管"

顯示一個密鑰表中的密鑰清單(主管) 

使用 ktutil 指令以顯示一個密鑰表中的密鑰清單。

"如何顯示密鑰表中的密鑰清單(主管)"

暫時停用主機之上一項服務的辯證 

本程序將說明一種簡便的方法,在沒有 kadmin 權限的情況下暫時停用一個主機之上的一項服務的辯證。在使用 ktutil 從伺服器的密鑰表中刪除服務主管之前,請將原本的密鑰表複製到一個暫存位置。當您想要再次啟用服務時,只要將原本的密鑰表複製回來即可。

"如何暫時停用主機之上一項服務的辯證"

如何將一位服務主管新增至密鑰表中

  1. 請確定 Kerberos 資料庫中已經有主管的存在。

    請參見 "如何檢視主管清單" 中的詳細資訊。

  2. 在需要將一位主管新增至其密鑰表的主機之上成為超級使用者。

  3. 請開始 kadmin 指令。


    # /usr/krb5/sbin/kadmin
    
  4. 使用 ktadd 指令以將一位主管新增至密鑰表中。


    kadmin: ktadd [-k密鑰表] [-q] [主管 | -globprincipal_exp]

    -k 密鑰表

    指定密鑰表檔案。根據預設,/etc/krb5/krb5.keytab 會被使用。

    -q

    顯示較少的 verbose 資訊。 

    主管

    要新增至密鑰表中的主管。您可以新增下列服務主管﹕hostrootnfs、及 ftp

    -glob principal_exp

    所有符合主管表達式的主管都會被新增至密鑰表中。主管表達式的規則與 kadminlist_principals 指令相同。

  5. 退出 kadmin 指令。


    kadmin: quit
    

範例 - 將一位服務主管新增至密鑰表中

下列範例會將 kadmin/adminkadmin/changepw 主管新增至一個主 KDC 的密鑰表中。就此例而言,密鑰表檔案必須是 kdc.conf 檔案中所指定的。


"kdc1 # /usr/krb5/bin/kadmin.local""kadmin.local:ktadd -k /etc/krb5/kadm5.keytab kadmin/admin kadmin/changepw  ""kvno 3 的主管 kadmin/admin@ACME.COM 項目,加密類型 DES-CBC-CRC   ""新增至密鑰表中WRFILE:/etc/krb5/kadm5.keytab。""kvno 3 的主管 kadmin/changepw@ACME.COM 項目,加密類型 DES-CBC-CRC   ""新增至密鑰表中WRFILE:/etc/krb5/kadm5.keytab。""kadmin.local:quit"

下列範例會將 denverhost主管新增至 denver 的密鑰表檔案中,因此 denver 的網路服務便可以利用 KDC 來辯證。


"denver # /usr/krb5/bin/kadmin ""kadmin:ktadd host/denver@acme.com@ACME.COM""kadmin: kvno 2 的主管 host/denver@acme.com@ACME.COM 項目,""加密類型 DES-CBC-CRC 新增至密鑰表中""RFILE:/etc/krb5/krb5.keytab。""kadmin: quit"

如何從密鑰表中移除一位服務主管

  1. 在有一位要從其密鑰表中移除的服務主管的主機之上成為超級使用者。

  2. 請開始 kadmin 指令。


    # /usr/krb5/bin/kadmin
    
  3. 選擇性的。要顯示密鑰表中目前的主管(密鑰)清單,請使用 ktutil 指令。

    請參見 "如何顯示密鑰表中的密鑰清單(主管)" 中的詳細指示。

  4. 使用 ktremove 指令以從密鑰表中將一位主管移除。


    kadmin: ktremove [-k 密鑰表] [-q] 主管 [kvno | all | old ]

    -k 密鑰表

    指定密鑰表檔案。根據預設,將會使用 /etc/krb5/krb5.keytab

    -q

    顯示較少的 verbose 資訊。 

    主管

    要從密鑰表中移除的主管。 

    kvno

    移除其(密鑰版本編號)與 kvno 相符的指定主管的所有項目。

    all

    移除指定主管的所有項目。 

    old

    除了有最高 kvno 的主管之外,移除指定主管的所有項目。 

  5. 退出 kadmin 指令。


    kadmin: quit
    

範例 - 從密鑰表中將一位服務主管移除

下列範例會從 denver 的密鑰表檔案中將 denverhost主管移除。


"denver # /usr/krb5/bin/kadmin""kadmin: ktremove host/denver.acme.com@ACME.COM ""kadmin: 從密鑰表中移除的 kvno 3 的主管 host/denver.acme.com@ACME.COM 項目 WRFILE:/etc/krb5/krb5.keytab。""kadmin: quit"

如何顯示密鑰表中的密鑰清單(主管)

  1. 以密鑰表在主機之上成為超級使用者。


    註解 -

    雖然您可以建立其他使用者所擁有的密鑰表,密鑰表的預設位置需要 root 所有權。


  2. 請開始 ktutil 指令。


    # /usr/krb5/bin/ktutil
    
  3. 使用 read_kt 指令以將密鑰表讀入密鑰清單緩衝區。


    ktutil: read_kt keytab
    
  4. 使用 list 指令以顯示密鑰清單緩衝區。


     ktutil:清單
    

    目前的密鑰清單緩衝區會顯示出來。

  5. 退出 ktutil 指令。


    ktutil: quit
    

範例 - 顯示密鑰表中的一位密鑰清單(主管)

下列範例會顯示 denver 主機之上 /etc/krb5/krb5.keytab 檔案中的密鑰清單。


"denver # /usr/krb5/bin/ktutil     ""ktutil:read_kt /etc/krb5/krb5.keytab    ktutil: list""插槽 KVNO 主管"" ---- ---- ---------------------------------------    1    5 host/denver@ACME.COM ""ktutil:quit"

如何暫時停用主機之上一項服務的辯證

在您需要暫時停用網路應用程式伺服器之上的一項服務的辯證機制,如 rloginftp 時會出現這類實例。例如,您可能想要在執行維護程序時阻止使用者登入一個系統。您可以利用 ktutil 指令,從伺服器的密鑰表中移除服務主管來達到此目的,而不需要 kadmin 權限。要再次啟用辯證,您只需要將您所儲存的原始密鑰表複製回其原本的位置即可。


註解 -

根據預設,大多數的服務都被設定為要求辯證有效。如果並非如此,即使您停用服務的辯證,服務還是會有效。


  1. 以密鑰表在主機之上成為超級使用者。


    註解 -

    雖然您可以建立其他使用者所擁有的密鑰表,但是密鑰表的預設位置需要 root 的所有權。


  2. 將目前的密鑰表存入一個暫存檔案中。

  3. 請開始 ktutil 指令。


    # /usr/krb5/bin/ktutil
    
  4. 使用 read_kt指令以將密鑰表讀入密鑰清單緩衝區。


    ktutil: read_kt密鑰表
    
  5. 使用 list 指令以顯示密鑰清單緩衝區。


    ktutil: 清單
    

    目前的密鑰清單緩衝區會顯示出來。請注意您想要停用的服務插槽數。

  6. 要暫時停用一個主機的服務,請使用 delete_entry 指令從密鑰清單緩衝區中移除特定的服務主管。


    ktutil: delete_entry slot_number
    

    slot_number

    要刪除的服務主管插槽數,由 list 指令所顯示。

  7. 使用 write_kt指令以將密鑰清單緩衝區寫入密鑰表。


    ktutil: write_kt密鑰表
    
  8. 退出 ktutil 指令。


    ktutil: quit
    
  9. 當您想要再次啟用服務時,請將暫存的(原始的)密鑰表複製回其原本的位置。

範例 - 暫時停用主機上的一項服務

下列範例會暫時停用 denver 主機之上的 host 服務。要重新啟用 denver 之上的主機服務,您必須將 krb5.keytab.temp 檔案複製到 /etc/krb5/krb5.keytab 檔案中。


"denver # cp /etc/krb5/krb5.keytab /etc/krb5/krb5.keytab.temp""denver # /usr/krb5/bin/ktutil""    ktutil:read_kt /etc/krb5/krb5.keytab""    ktutil:list""插槽 KVNO 主管""---- ---- ---------------------------------------""   1    8 root/denver@ACME.COM""   2    5 host/denver@ACME.COM""    ktutil:delete_entry 2""    ktutil:list""插槽 KVNO 主管""---- ---- --------------------------------------""   1    8 root/denver@ACME.COM""    ktutil:write_kt /etc/krb5/krb5.keytab""    ktutil: quit"