kerberos文檔

1 kadmin

kadmin是 Kerberos V5數據庫管理程序

用法:

kadmin [-O|-N] [-r realm] [-p principal] [-q query] [[-c cache_name]|[-k [-t keytab]]|-n] [-w password] [-s admin_server[:port]] [command args...]

kadmin.local [-r realm] [-p principal] [-q query] [-d dbname] [-e enc:salt ...]  [-m] [-x db_args] [command args...]

描述:

kadmin和kadmin.local都是Kerberos V5管理系統的命令行接口。兩者基本上提供完全相同的功能,唯一的區別是kadmin.local直接訪問KDB數據庫,而kadmin使用kadmind(8)來執行操作。這個文檔中將使用kadmin來指代兩者。kadmin維護Kerberos的賬號(principals),密碼策略以及service key tables(keytabs)。

遠程kamin客戶端通過用服務賬號kadmin/ADMINHOST或者kadmin/admin使用Kerberos認證kadmind。(其中的ADMINHOST是admin服務的完整主機名)。如果認證緩存(credentials cache)包含任意一個這些賬號的ticket,並且指定了-c credentials_cache選項,則這個ticket用於認證kadmind。否則,用-p以及-k選項指定客戶端用於認證的Kerberos的賬號名。一旦kadmin檢查到賬號名,它從KDC請求服務ticket,並用這個服務ticket去向kadmind認證。

因爲kadmin.local直接訪問KDC數據庫,因此它必須直接運行在主KDC上,並有足夠的權限來讀取KDC的數據庫。如果KDC數據庫使用LDAP數據庫模塊,kadmin.local可以運行在任何可以訪問LDAP服務器的機器上。

選項:

-r realm 使用realm作爲默認的數據庫realm

-p principal 使用principal來認證。否則,kadmin將追加/admin到默認cache的主賬號名後面,或者追加到USER環境變量的值後面,或者通過getpwuid獲取的用戶名。

-k 使用一個keytab解密KDC響應信息,而不是提示需要密碼。這種情況下,默認的賬號是host/hostname。如果沒有用-t選項指定keytab,那麼使用默認的keytab

-t keytab 使用keytab來解密KDC的響應,這個只能跟-k選項一塊使用

-d dbname 指定KDC數據庫的名字,這個選項不會用到LDAP數據庫模塊中

-q query 執行指定的查詢然後退出

-s amin_server[:port] 指定kadmin訪問的admin服務器

-m 如果使用kadmin.local,提示需要數據庫密碼,而不是直接從一個存儲文件中讀取

 

2 kadmind

KADM5管理服務器

符號:

kadmind  [-x db_args] [-r realm] [-m] [-nofork] [-proponly] [-port port-number] [-P pid_file] [-p kdb5_util_path] [-K kprop_path] [-k kprop_port] [-F dump_file]

描述:

kadmind啓動Kerberos管理服務器。kadmind通常運行在存着KDC數據庫的主Kerberos服務器上。如果KDC數據庫使用LDAP模塊,管理服務以及KDC服務就沒必要運行在同一臺機器上。kadmind接受從例如kadmin和kpasswd發出的遠程請求,來管理這些數據庫中的信息。

kadmin需要一些配置文件來支持其運行:

kdc.conf

    KDC配置文件包含KDC和admin服務的配置信息。kadmind使用這個文件中的設置來定位Kerberos數據庫以及其他信息。

kadm5.acl

    kadmind的訪問控制列表文件告訴kadmind哪個賬戶允許執行管理動作。到ACL文件的路徑可以在acl_file變量(在kdc.conf文件中)中指定。默認情況下是 /var/kerberos/krb5kdc/kadm5.acl

在server開始運行之後,將其放到後臺運行,並斷開其控制終端。

選項

-r realm 指定kadmind將服務的realm。如果沒有指定,使用主機默認的realm。

-port port-number 指定管理服務監聽連接的端口。默認是由(kdc.conf文件中的)kadmind_port指定的。

3 kinit

獲取並緩存Kerberos TGT(ticket-granting ticket)

用法:

kinit  [-V] [-l lifetime] [-s start_time] [-r renewable_life] [-p | -P] [-f | -F] [-a] [-A] [-C] [-E] [-v] [-R] [-k [-t keytab_file]] [-c cache_name] [-n] [-S service_name] [-I input_ccache] [-T armor_ccache] [-X attribute[=value]] [principal]

描述:

kinit給principal 獲取並緩存一個初始化的TGT。如果principal沒有填,kinit會選擇一個合適的基於已經存在的認證緩存內容或者調用kinit的用戶的本地用戶名來作爲principal名字。部分選項修改選擇的principal名字。

選項:

-l lifetime 持續時間字符串 用lifetime作爲生命週期來請求tickets

例如,kinit -l 5:30 或者 kinit -l 5h30m。如果沒有指定-l選項,使用的是默認的ticket生命週期(由每個站點配置的)。指定一個超過每個站點配置的最大的ticket生命週期將不會覆蓋已經配置的最大的ticket生命週期。

-s start_time 持續時間字符串 請求一個延後生效的ticket。 延後生效的ticket帶有無效標誌,需要在使用之前重複提交到KDC來驗證有效性。start_time指定了ticket變有效的延後的時間。

-r renewable_life 持續時間字符串 請求一個可延長有效期的tickets,其中的renewable_life指定了總的生命週期。

-a 請求限制到主機的本地地址的tickets

-A 請求不限制地址的tickets

-v 請求將緩存中的TGT傳遞到KDC以驗證其有效性。如果ticket是在請求的時間範圍內,將緩存替換爲已經驗證過的ticket

-R 請求TGT的續約。注意一個已經過期的ticket不能續約,即使這個已經過期的ticket仍然在其可續約的生命週期內。

注意已經被klist認爲是過期的可續約tickets,有時候可用這個選項進行續約,因爲KDC應用寬限期來解決客戶端KDC時鐘誤差。參考krb5.conf(5) clockskew設置。

-k [-i|-t keytab_file] 請求一個從在本地主機的keytab中獲取的ticket。keytab的位置可以用-t keytab_file選項指定或者用-i 選項指定使用默認的client keytab;否則使用默認的keytab。默認情況下,請求的是本地主機的ticket,但是可以指定任意的principal。在一個KDC中,特殊的keytab位置KDB用於指示kinit應該打開KDC數據庫並直接查找密鑰。 這允許管理員以支持基於密鑰的身份驗證的任何principal的身份來獲取ticket。

-n 請求匿名式的處理。支持兩類匿名的賬號:

-T  armor_ccache 指定一個已經包含一個ticket的認證cache的名字。如果KDC支持,則此緩存將用於處理請求,防止脫機字典攻擊並允許使用其他預身份驗證機制。 裝甲還確保在傳輸過程中來自KDC的響應不會被修改。

-I input_ccache 指定一個已經包含一個ticket的認證cache的名字。在獲取該票證時,如果還將有關如何獲取該票證的信息也存儲到cache中,則該信息將用於影響如何獲取新憑證,包括預選擇對KDC進行身份驗證的相同方法

-c cache_name  使用cache_name作爲Kerberos 5 認證材料(ticket)的緩存位置。如果沒有用這個選項,那麼使用默認的位置。

默認的cache位置跟系統而變化。如果設置了KRB5CCNAME環境變量,則用這個值來定位默認cache的位置。如果指定了principal名稱,並且默認緩存的類型支持一個集合(例如DIR類型),則將選擇一個包含該principal的憑據的現有cache,或者創建一個新的緩存並變成新的主緩存。 否則,kinit會破壞默認高速緩存的任何現有內容。

-S service_name 指定一個當獲取初始化的tickets時使用的可選的服務名

-X attribute[=value]

-s start_time

-r renewable_file

-f 請求可轉發的tickets

-F 請求不可轉發的tickets
-p 請求可代理的tickets

 

4 klist

列出緩存的Kerberos tickets

用法:

klist [-e] [[-c] [-l] [-A] [-f] [-s] [-a [-n]]] [-C] [-k [-t] [-K]] [-V] [cache_name|keytab_name]

描述:

-e 展示在認證cache中的每個認證(或keytab文件中的每個key)的session key和ticket的加密類型

-l 如果cache集合可用,則展示一個描述存在集合中的cache的表

-A 如果cache集合可用,則展示集合中的所有的cache的內容

-c 列出存在認證cache中的tickets。如果沒有指定-c或者-k選項,這個是默認行爲。

-f 展示認證中的標誌,使用如下的縮寫:

                 F    Forwardable
                 f    forwarded
                 P    Proxiable
                 p    proxy
                 D    postDateable
                 d    postdated
                 R    Renewable
                 I    Initial
                 i    invalid
                 H    Hardware authenticated
                 A    preAuthenticated
                 T    Transit policy checked
                 O    Okay as delegate
                 a    anonymous

-s 讓klist靜默運行,如果認證cache不可讀或者已經過期則1退出;否則0退出

-a 展示認證中的所有的地址列表

-n 展示數字地址而不是反向解析地址

-C 當klist遇到配置數據的時候,列出已經被存在認證cache中的配置數據。默認情況下,配置數據不列出來。
-k 列出keytab文件中的keys

-i 和-k一起使用,如果沒有指定名字,默認是使用默認的client keytab,而不是默認的acceptor keytab。

-t 展示keytab文件中的每個keytab入口中的時間戳

-K 展示keytab文件中的每個keytab入口中的加密key的值

-V 展示Kerberos版本並退出

如果cache_name 或者keytab_name沒有指定,klist將展示在默認認證cache或者keytab文件中的認證信息。如果設置了KRB5CCNAME環境變量,其值用來定位默認的ticket cache。

默認使用的文件位置
       FILE:/tmp/krb5cc_%{uid}
              Default location of Kerberos 5 credentials cache 默認的Kerberos5認證cache位置。

       FILE:/etc/krb5.keytab
              Default location for the local host's keytab file. 默認的本地主機的keytab文件位置。

 

5 kdestroy

銷燬Kerberos tickets

用法:

kdestroy [-A] [-q] [-c cache_name]

描述:

kdestroy工具通過覆寫和刪除包含用戶的活躍的Kerberos認證ticket的認證cache來銷燬。如果沒有指定認證cache,則銷燬默認的認證cache。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章