Sun 企業辯證機制使用指南

如何設置一個主 KDC

要為您提供一個完成的範例,我們假設您並未執行事先設置的程序。如果您在安裝軟體時使用事先設置的程序,那麼此程序中所包括的許多檔案就不需要編輯;不過您還是應該要審閱檔案的內容來確定。

在此程序中必須使用下列的設置參數﹕

  1. 設置一個主 KDC 的先決條件。

    此程序需要先已安裝主 KDC 軟體。此外還必須執行 DNS。如果此主 KDC 要是可調換的話,請參見 "調換主與從屬 KDC" 中特定的命名指示。

  2. 成為主 KDC 之上的超級使用者。

  3. 編輯 Kerberos 設置檔案 (krb5.conf)。

    您必須變更伺服器的範疇名稱及名稱。請參見 krb5.conf(4) 線上援助頁中有關此檔案的詳細說明。如果您是使用設置檔案來安裝 SEAM 軟體的話,請確認檔案內容而不要編輯它。


    kdc1 # cat /etc/krb5/krb5.conf
    [libdefaults]
            default_realm = ACME.COM
    
    [realms]
                    ACME.COM = {
                    kdc = kdc1.acme.com
                    kdc = kdc2.acme.com
                    admin_server = kdc1.acme.com
            }
    
    [domain_realm]
            .acme.com = ACME.COM
    #
    # if the domain name and realm name are equivalent, 
    # this entry is not needed
    #
    [logging]
            default = FILE:/var/krb5/kdc.log
            kdc = FILE:/var/krb5/kdc.log
    
    [appdefaults]
        gkadmin = {
            help_url = http://denver:8888/ab2/coll.384.1/SEAM/@AB2PageView/6956
            }

    在此範例中,default_realmkdcadmin_server、及所有的 domain_realm 項目數行文字都被變更。default_realm 的文字也包括在內以使範例完整,但如果範疇及領域名稱對等的話,安裝過程便不會建立此項目。此外,定義 help_url 的文字也經過編輯。

  4. 編輯 KDC 設置檔案 (kdc.conf)。

    您必須變更範疇名稱。請參見 kdc.conf(4) 線上援助頁中有關此檔案的詳細說明。如果您是使用設置檔案來安裝 SEAM 軟體的話,請確認檔案內容而不要編輯它。


    kdc1 # cat /etc/krb5/kdc.conf
    [kdcdefaults]
            kdc_ports = 88,750
    
    [realms]
            ACME.COM= {
                    profile = /etc/krb5/krb5.conf
                    database_name = /var/krb5/principal
                    admin_keytab = /var/krb5/kadm5.keytab
                    acl_file = /var/krb5/kadm5.acl
                    kadmind_port = 749
                    max_life = 8h 0m 0s
                    max_renewable_life = 7d 0h 0m 0s
            }

    在此範例中,realms 一節中所定義的範疇名稱也經過變更。

  5. 使用 kdb5_util 來建立 KDC 資料庫。

    kdb5_util 指令會建立 KDC 資料庫,而且在與 -s 選項一起使用時,會建立一個在開始kadmindkrb5kdc 常駐程式之前用來向其本身辯證 KDC 的存放檔案。


    kdc1 # /usr/krb5/sbin/kdb5_util create -r ACME.COM -s 
    Initializing database '/var/krb5/principal' for realm 'ACME.COM'
    master key name 'K/M@ACME.COM' 
    You will be prompted for the database Master Password.
    It is important that you NOT FORGET this password.
    Enter KDC database master key:< 鍵入密鑰>	
    Re-enter KDC database master 密鑰 to verify: < 再一次鍵入>
    

    如果範疇名稱對等於伺服器名稱空間領域名稱的話,後面跟著範疇名稱的 -r 選項就非必要。

  6. 編輯 Kerberos 存取控制清單檔案 (kadm5.acl)。

    一旦傳播之後,/etc/krb5/kadm5.acl 應該 包含可以管理 KDC 的所有主管名稱。第一個新增的項目如下所示﹕


    kws/admin@ACME.COM   *

    此項目賦予 ACME.COM 範疇中的 kws/admin 主管修改 KDC 中的主管或政策的功能。預設的安裝包括一個 “*” 以符合所有的管理主管。這可能造成安全上的顧慮,因此包括一份所有管理主管的清單會比較安全。

  7. 開始 kadmin.local

    下幾個步驟可以建立 SEAM 所用的主管。


    kdc1 # /usr/krb5/sbin/kadmin.local
    kadmin.local: 
    1. 使用 kadmin.local 來將管理主管新增至資料庫中。

      您可以隨您所需來新增許多管理主管。您必須新增至少一個管理主管以完成 KDC 的設置過程。在此例中,新增了一個 kws/admin 主管。您可以利用一個適當的主管名稱來取代 “kws。”


      kadmin.local: addprinc kws/
      admin
      Enter password for principal kws/admin@ACME.COM: < 鍵入密碼>
      Re-enter password for principal kws/admin@ACME.COM: < 再一次鍵入> Principal "kws/admin@ACME.COM" created. 
      kadmin.local:
    2. 使用 kadmin.local 來建立一個 kadmin 的密鑰表檔案。

      此指令序列可以利用 kadminchangepw 的主管項目來建立一個特殊的密鑰表檔案。這些主管為 kadmind 服務所需。


      kadmin.local: ktadd -k /etc/krb5/kadm5.keytab kadmin/kdc1.acme.com
      Entry for principal kadmin/kdc1.acme.com with kvno 3, 
      encryption type DES-CBC-CRC
      added to keytab WRFILE:/etc/krb5/kadm5.keytab.
      kadmin.local: ktadd -k /etc/krb5/kadm5.keytab changepw/kdc1.acme.com 
      Entry for principal changepw/kdc1.acme.com with 
      kvno 3, encryption type DES-CBC-CRC added to keytab 
      WRFILE:/etc/krb5/kadm5.keytab.
      kadmin.local: 
    3. 退出 kadmin.local

      您已經新增了下一步的所有必要主管。


      kadmin.local: quit
      
  8. 開始 Kerberos 常駐程式。


    kdc1 # /etc/init.d/kdc startkdc1 # 
    /etc/init.d/kdc.master start
    
  9. 開始 kadmin

    此時您可以使用 SEAM 管理工具來新增主管。此處所示的指令行範例僅供方便之用。您必須以您在此程序之前所建立的其中一個管理主管名稱來登入。


    kdc1 # /usr/krb5/sbin/kadmin -p kws/admin
    Enter password: <輸入 kws/admin 密碼> 
    kadmin:
    1. 使用 kadmin 來建立主 KDC 主機主管。

      主機主管是由 Kerberos 化的應用程式(如 klistkprop)以及 Kerberos 化服務(如 ftptelnet)所使用。


      kadmin: addprinc -randkey host/kdc1.acme.com
      Principal "host/kdc1.acme.com@ACME.COM" created.
      kadmin: 
    2. 可任選﹕使用 kadmin 來建立主 KDC root 主管。

      此主管是用於辯證的 NFS 裝載,因此一個主 KDC 上可能並不需要。


      kadmin: addprinc root/kdc1.acme.com 
      Enter password for principal root/kdc1.acme.com@ACME.COM:< 鍵入密碼> 
      Re-enter password for principal root/kdc1.acme.com@ACME.COM:< 再一次鍵入> 
      Principal "root/kdc1.acme.com@ACME.COM" created. 
      kadmin:
    3. 將主 KDC 主機主管新增至主 KDC 密鑰表檔案中。

      將主機主管新增至密鑰表檔案中以自動使用此主管。


      kadmin: ktadd host/kdc1.acme.com
      kadmin: Entry for principal host/kdc1.acme.com with
        kvno 3, encryption type DES-CBC-CRC added to keytab
        WRFILE:/etc/krb5/krb5.keytab
      kadmin: quit
      
    4. 退出 kadmin


      kadmin: quit
      
  10. 將每個 KDC 的項目新增至傳播設置檔案中 (kpropd.acl)。

    請參見 kprop(1M) 線上援助頁中有關此檔案的詳細說明。如果您是使用設置檔案來安裝 SEAM 軟體的話,請確認檔案內容而不要編輯它。


    kdc1 # cat /etc/krb5/kpropd.acl
    host/kdc1.acme.com@ACME.COM
    host/kdc2.acme.com@ACME.COM
  11. 可任選﹕使用 NTP 或另一個時鐘同步化機制來同步化主 KDC 時鐘。

    雖然沒有必要安裝與使用 NTP,但每個時鐘必須在 krb5.conf 檔案的 libdefaults 一節中所定義的預設時間之內,以確保辯證成功。請參見 "同步化 KDC 及 SEAM 客戶端之間的時鐘" 中有關 NTP 的資訊。