版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、1?前言假設你的Openldap已經(jīng)配置好并成功運行,本文只是介紹如何使Openldap使用Kerberos來驗證用戶身份。本配置在FC5上通過,在使用rhe時,很可能會有不同的情況。2?名詞解釋2.1 ?Kerberos基于共享密鑰的安全機制,由MIT發(fā)明,現(xiàn)在已經(jīng)被標準化,最新是版本5,簡稱krb5。Kerberos特別適合局域網(wǎng)絡,Windows2k及以上系統(tǒng)的安全機制即基于kerberos。Kerberos有多個實現(xiàn)版本,本文使用的一個它的實現(xiàn)叫做mit?-kerberos。2.2 ?SASL簡單認證和安全層(SimpleAuthenticationandSecurityLayer)。
2、也是一套RFC定義的標準。它的核心思想是把用戶認證和安全傳輸從應用程序中隔離出來。像SMTP協(xié)議在定義之初都沒有考慮到用戶認證等問題,現(xiàn)在SMTP可以配置使用SASL來完成這方面的工作。Openldap同樣如此。SASL支持多種認證方法,比如?ANONYMOUS:需認證。?PLAIN:明文密碼方式(cleartextpassword)?DIGEST-MD5:HTTPDigest兼容的安全機制,基于MD5可以提供數(shù)據(jù)的安全傳輸層。這個是方便性和安全性結合得最好的一種方式。也是默認的方式。?GSSAP:IGenericSecurityServicesApplicationProgramInterf
3、aceGssapi本身是一套API,由IETF標準化。其最主要也是著名的實現(xiàn)是基于Kerberos的。所以一般說到gssapi都暗指kerberos實現(xiàn)。?EXTERNAL認證已經(jīng)在環(huán)境中實現(xiàn)了,比如SSL/TLS,IPSec.2.3 ?CyrusSASLCyrus-SASL是SASL協(xié)議最常用的一個實現(xiàn)。其他實現(xiàn)還有GNUSAS等。3?環(huán)境準備3.1 ?環(huán)境3.2 ?安裝軟件包Kerberosserver:Krb5-serverSasl-gssapi:Cyrus-sasl-gssapiKerberosclient:Krb5-client如果依賴于別的包,也一并安裝4?配置Kerberosse
4、rver配置文件包括下面3個文件1.?/etc/krb5.conf2.?/var/kerberos/krb5kdc/kdc.conf3.?/var/kerberos/krb5kdc/kadm5.acl4.1 ?配置/etc/krb5.conf這個配置文件設置整個kerberos環(huán)境的,所以不但server,而且client也會使用它。loggingdefault=FILE:/var/log/krb5libs.logkdc=FILE:/var/log/krb5kdc.logadmin_server=FILE:/var/log/kadmind.loglibdefaultsdefault_realm
5、=EXAMPLE.COMdefault_tgs_enctypes=des3-hmac-sha1des-cbc-crcdes-cbc-md5default_tkt_enctypes=des3-hmac-sha1des-cbc-crcdes-cbc-md5permitted_enctypes=des3-hmac-sha1des-cbc-crcdes-cbc-md5dns_lookup_realm=falsedns_lookup_kdc=falseticket_lifetime=24hforwardable=yesrealmsEXAMPLE.COM=?kdc=?admin_server=?defau
6、lt_domain=domain_realm=EXAMPLE.COM=EXAMPLE.COMkdcprofile=/var/kerberos/krb5kdc/kdc.confappdefaultspam=?debug=false?ticket_lifetime=36000?renew_lifetime=36000?forwardable=true?krb4_convert=false4.2 ?配置/var/kerberos/krb5kdc/kdc.conf這個配置文件是專門為kdc定義的參數(shù)kdcdefaultsv4_mode=nopreauthrealmsEXAMPLE.COM=?#mast
7、er_key_type=des3-hmac-sha1?acl_file=/var/kerberos/krb5kdc/kadm5.acl?dict_file=/usr/share/dict/words?admin_keytab=/var/kerberos/krb5kdc/kadm5.keytab?supported_enctypes=des3-hmac-sha1:normalarcfour-hmac:normaldes-hmac-sha1:normaldes-cbc-md5:normaldes-cbc-crc:normaldes-cbc-crc:v4des-cbc-crc:afs34.3 ?配置
8、/var/kerberos/krb5kdc/kadm5.acl此文件是Accesscontrol配置。下面是一個最簡單但系統(tǒng)可以工作的配置。根據(jù)實際情況設置你自己的訪問控制*/adminEXAMPLE.COM?*4.4 ?創(chuàng)建realm>kdb5_utilcreate-rEXAMPLE.COM-skerbers數(shù)據(jù)庫文件都放在/var/kerberos/krb5kdc/下面。啟動krb5kdc和kadmin兩個service>servicekrb5kdcstart>servicekadminstart4.5 ?創(chuàng)建Principal在Kerberos安全機制里,一個princ
9、ipal就是realm里的一個對象,一個principal總是和一個密鑰(secretkey)成對出現(xiàn)的。這個principal的對應物可以是service,可以是host,也可以是user,對于Kerberos來說,都沒有區(qū)別。Kdc(Keydistributecenter)知道所有principal的secretkey,但每個principal對應的對象只知道自己的那個secretkey。這也是“共享密鑰“的由來。作為例子,下面我們將會創(chuàng)建3個principal,類型分別是service,host,user。4.5.1 ?創(chuàng)建principalforuser>Kadmin.local
10、-q"addprincldapadminEXAMPLE.COM系統(tǒng)會提示輸入密碼(password)。請注意密碼本身并不是key。這里只是為了人類使用的方便而使用密碼。真正的key是算法作用在密碼上產(chǎn)生的一串byte序列。4.5.2 ?創(chuàng)建principalforldapservice>kadmin.local-q"addprinc-randkey注意這次系統(tǒng)不會提示輸入密碼,因為我們使用了-randkey指定了一個隨機密碼。因為ldapserver是程序,它不會介意使用真正的key。4.5.3 ?創(chuàng)建principalforhost>kadmin.local-
11、q"addprinc-randkey同樣,我們?yōu)橐粋€主機生成了一個principal?;谕瑯拥睦碛?,我們使用了-randkey參數(shù)。4.6 ?獲得key創(chuàng)建了principal之后,我們需要把key從kdc里取出來(kdc知道所有principal的key),交給對應的對象。在kerberos世界里,這個key一般存放在以keytab作為擴展名的文件里。4.6.1 ?取得ldapservice的key>kadmin.local-q"ktadd-k/tmp/ldapsrv.keytab-k指定把key存放在一個本地文件中4.6.2 ?取得host的key>kad
12、min.local-q"ktadd-k4.6.3 ?如果你高興的話,你甚至也可以取得user的key>kadmin.local-q"ktadd-k/tmp/user_ldapadmin.keytabldapadmin但是我不建議你這樣做,因為一旦這樣做以后,你先前設置的密碼就失效了。以后只能使用此過身份驗證。keytab文件來通4.7 ?測試那么下面的步驟演示了kerberos驗證用戶身份。>kinitldapadmin系統(tǒng)會提示輸入密碼,如果一切正常,那么會安靜的返回。實際上,你已經(jīng)通過了kerberos的身份驗證,且獲得了一個ServiceTGT(Ticke
13、t-GrantingTicket).ServiceTGT的意義是,在一段時間內(nèi),你都可以用此TGT去請求某些service,比如ldapservice,而不需要再次通過kerberos的認證。>klist這條命令會查看系統(tǒng)當前的ticket>kdestory這條命令會destroy掉系統(tǒng)當前cache的所有ticket>kinitkldapadmint/tmp/user_ldapadmin.keytab這里演示了你確實可以直接使用user的key,而不是口令來通過kerberos的驗證。如果你在前面導出了userldapadmin的key,可以驗證一下。同時如果你運行kini
14、tldapadmin,那么即使輸入了正確的password,系統(tǒng)仍然提示密碼錯誤。5?配置Ldap使用kerberosLdap是如何使用kerberos的呢?這個過程是這樣的。Ldap使用SASL的GSSAPI做身份驗證。而SASL-GSSAPI的實現(xiàn)正好是Kerberos。首先要配置ldapserver,然后配置Kerberos5.1 ?配置ldapserver>vi/etc/openldap/slapd.conf添加一行rootdn?"uid=ldapadmin,cn=gssapi,cn=auth"注釋掉下面兩行,如果有的話#rootdn?"cn=Man
15、ager,dc=example,dc=com"#rootpw?SSHA7XF8TnEH8Hlv+0XU2Tiqk9bTR32Ixtbx5.2 ?配置kerberos環(huán)境>scp/etc#這里使用scp,你也可以通過其他方便的方式。>scp/tmp>ktutil>rkt/tmp/ldapsrv.keytab#讀取key到內(nèi)存中>wkt/etc/krb5.keytab#寫key到系統(tǒng)的默認keytab文件,一般是?/etc/krb5.keytab然后重啟ldapserver>serviceldaprestart5.3 ?測試>klistklist
16、:Nocredentialscachefound(ticketcacheFILE:/tmp/krb5cc_0)Kerberos4ticketcache:/tmp/tkt0klist:Youhavenoticketscached>ldapsearch?-h#注意不要用-x參數(shù)SASL/GSSAPIauthenticationstartedldap_sasl_interactive_bind_s:Localerror(-2)?additionalinfo:SASL(-1):genericfailure:GSSAPIError:UnspecifiedGSSfailure.?Minorcodem
17、ayprovidemoreinformation(Nocredentialscachefound)>kinitldapadmin#用戶ldapadmin通過kerberos的驗證>klist查看ticket,注意下面兩行?Defaultprincipal:ldapadminEXAMPLE.COM?Validstarting?Expires?Serviceprincipal?01/03/0813:59:39?01/04/0813:59:39?krbtgt/EXAMPLE.COMEXAMPLE.COM>ldapsearch-hSomethingprintedout.Yougoti
18、t!>klist注意,現(xiàn)在多了一條訪問ldapservice的ticket。?validstarting?Expires?Serviceprincipal?01/03/0813:59:39?01/04/0813:59:39?krbtgt/EXAMPLE.COMEXAMPLE.COM?01/03/0814:02:12?01/04/085.4 ?配置ldapclientserver的能力。一般這種配置是為了使用ldap作為系統(tǒng)的身份認證機制,和PAM吉合起來使用。這方面的配置我也不太了解,也沒法深入介紹。我這里只是演示如何使用hostprincipal。和上面一樣,首先把krb5.conf和keytab文件拷貝到本地。>scp/etc>scp/tmp初始化hostprincipal,取得tgt>kinit-k-t/tmp/host_client.keytab>klist測試>ldapsearch-h6?調試Kerbers和LDAP都是比較復雜的系統(tǒng)。一般出現(xiàn)問題后都要現(xiàn)把問題定位到ldap或kerberos。下面是一些查看log信息的機制。查看kdc的log>tail-100f/var/log/krb5kdc.log查看某個prin
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高速路施工安全教育培訓
- 腦出血氣切護理查房
- 工藝品直播合作協(xié)議書范文范本
- 手機攝影教程培訓
- 人教版英語八年級下冊 Unit 7-8周測
- 企業(yè)如何做好培訓工作
- 水處理設施管道施工方案
- 培訓如何上好一堂課
- 砂石路面施工質量保障方案
- 神經(jīng)內(nèi)科專業(yè)技術培訓
- 江南藥王的傳奇課件
- 淺談博物館陳列從設計到布展-以大同市博物館為例
- 河北省保定市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會明細及行政區(qū)劃代碼
- 非常規(guī)時段施工安全管理方案
- 如何培養(yǎng)農(nóng)村中學生自主學習的能力
- 單項式乘以單項式-完整版PPT
- 初中語文人教九年級上冊環(huán)境描寫的作用
- 三年級數(shù)學下冊課件-4.2 兩位數(shù)乘兩位數(shù)1-人教版(共11張PPT)
- 汽車數(shù)據(jù)安全管理合規(guī)清單
- 消防安全安全隱患排查整改臺帳
- 福建廣播電視大學中國現(xiàn)當代文學名著導讀(2)-形成性考核一答案
評論
0/150
提交評論