Ktpass和KTab的主要用法
不少人都沒搞清楚Ktpass跟Ktab的用法,特此寫一篇文章來敘說一下。
我假設你對Kerberos有所認識,可以讀我的一篇文章<Weblogic Security In Action>中篇,里面初步介紹了Kerberos協議(基于Windows KDC)。
在Kerberos中,安全性完全是依賴于Share Secret,也就是,KDC跟Kerberos Service之間都共享著一條Key,Ktpass這個命令行工具承擔著這樣一個角色,它能夠將非Windows Kerberos服務配置一個Service Principal,通常類似于HTTP/Service@DomainName,并且同時生成一個Keytbab,這樣做的目的是在Windows域中的KDC和非Windows的服務(Kerberos Service)建立一種安全的信任關系,Keytab文件中就是存放著那條非常重要的跟KDC打交道的Secret Key。
你更改了Keytab中的Key,就必須同時更改Kerberos database中的Key。操作Keytab,JDK提供了一個很好的工具叫做KTab。
首先,在Windows域控制器上創建一個用戶tomcat2005, 這是一個Windows的用戶,我們使用Ktpass將一個Kerberos service (HTTP/tomcat@MYDAVID.ORG)Mapping到這個用戶上面。Ktpass會修改當前用戶在Windows AD中的用戶登錄名,你可以用setspn -L tomcat2005來查看究竟有多少Service Principal綁定到tomcat2005上。
C:\>ktpass -princ HTTP/tomcat@MYDAVID.ORG -mapuser tomcat2005 -pass tomcat2005 -out tomcat2005_keytab -crypto des-cbc-md5
Successfully mapped HTTP/tomcat to tomcat2005.
Key created.
Output keytab to tomcat2005_keytab:
Keytab version: 0x502
keysize 50 HTTP/tomcat@MYDAVID.ORG ptype 1 (KRB5_NT_PRINCIPAL) vno 1 etype 0x3 (DES-CBC-MD5) keylength 8 (0xb64540dace6e70d3)
Account has been set for DES-only encryption.
接著,執行,目的是往keytab上面增加新的service principal。
C:\>ktab -k tomcat2005_keytab -a HTTP/tomcat@MYDAVID.ORG
Password for HTTP/tomcat@MYDAVID.ORG:tomcat2005
Done!
Service key for HTTP/tomcat@MYDAVID.ORG is saved in C:\\tomcat2005_keytab
你可能問,Ktpass和Ktab都往keytab文件兩面寫Key,其實,他們都是寫同樣的Key,只不過Ktpass還有一個AD帳號Set SPN Name的作用。
還可以通過ktab -l -k tomcat2005_keytab, 來看看里面究竟有針對什么Service的Key
C:\>ktab -l -k tomcat2005_keytab
Keytab name: C:\\tomcat2005_keytab
KVNO Principal
--------------------------------
4 HTTP/tomcat@MYDAVID.ORG
KVNO是Service Key的更新序號,不需要理會,關鍵的是Principal。
posted on 2005-12-02 00:48 david.turing 閱讀(6376) 評論(1) 編輯 收藏 所屬分類: Security領域