Kerberos協議:
Kerberos協議主要用于計算機網絡的身份鑒別(Authentication), 其特點是用戶只需輸入一次身份驗證信息就可以憑借此驗證獲得的票據(ticket-granting ticket)訪問多個服務,即SSO(Single Sign On)。由于在每個Client和Service之間建立了共享密鑰,使得該協議具有相當的安全性。
2. 安裝 Kerberos
2.1. 環境配置
安裝kerberos前,要確保主機名可以被解析。
主機名 內網IP 角色
Vmw201 172.16.18.201 Master KDCVmw202 172.16.18.202 Kerberos clientVmw203 172.16.18.203 Kerberos client
2.2 Configuring a Kerberos Server
2.2.1 確保環境可用
確保所有的clients與servers之間的時間同步以及DNS正確解析
2.2.2 選擇一個主機來運行KDC,并在該主機上安裝krb-5libs,krb5-server,已經krb5-workstation:
yum install krb5-server krb5-libs krb5-auth-dialog
KDC的主機必須非常自身安全,一般該主機只運行KDC程序。本文中我們選擇vmw201作為運行KDC的主機。
在安裝完上述的軟件之后,會在KDC主機上生成配置文件/etc/krb5.conf和/var/kerberos/krb5kdc/kdc.conf,它們分別反映了realm name 以及 domain-to-realm mappings。
2.2.3 配置kdc.conf
默認放在 /var/kerberos/krb5kdc/kdc.conf?;蛘咄ㄟ^覆蓋KRB5_KDC_PROFILE環境變量修改配置文件位置。
配置示例:
[kdcdefaults]kdc_ports = 88kdc_tcp_ports = 88[realms]HADOOP.COM = {#master_key_type = aes256-ctsacl_file = /var/kerberos/krb5kdc/kadm5.acldict_file = /usr/share/dict/wordsadmin_keytab = /var/kerberos/krb5kdc/kadm5.keytabmax_renewable_life = 7dsupported_enctypes = aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal}
說明:
HADOOP.COM:是設定的realms。名字隨意。Kerberos可以支持多個realms,會增加復雜度。本文不探討。大小寫敏感,一般為了識別使用全部大寫。這個realms跟機器的host沒有大關系。
max_renewable_life = 7d 涉及到是否能進行ticket的renwe必須配置。
master_key_type:和supported_enctypes默認使用aes256-cts。由于,JAVA使用aes256-cts驗證方式需要安裝額外的jar包,更多參考2.2.9關于AES-256加密:。推薦不使用。
acl_file:標注了admin的用戶權限。文件格式是
Kerberos_principal permissions [target_principal] [restrictions]支持通配符等。
admin_keytab:KDC進行校驗的keytab。后文會提及如何創建。
supported_enctypes:支持的校驗方式。注意把aes256-cts去掉。
2.2.4 配置krb5.conf
/etc/krb5.conf: 包含Kerberos的配置信息。例如,KDC的位置,Kerberos的admin的realms 等。需要所有使用的Kerberos的機器上的配置文件都同步。這里僅列舉需要的基本配置。
配置示例:
[logging]default=FILE:/var/log/krb5libs.logkdc = FILE:/var/log/krb5kdc.logadmin_server = FILE:/var/log/kadmind.log[libdefaults]default_realm = HADOOP.COMdns_lookup_realm = falsedns_lookup_kdc = falseticket_lifetime = 24hrenew_lifetime = 7dforwardable = true# udp_preference_limit = 1[realms]HADOOP.COM = {kdc = vmw201admin_server = vmw201}[domain_realm].hadoop.com = HADOOP.COMhadoop.com = HADOOP.COM
新聞熱點
疑難解答