복붙노트

[HADOOP] 커버 로스 | 클라우 데라 | KrbException : HMAC SHA1-96와 암호화 유형 AES256 CTS 모드

HADOOP

커버 로스 | 클라우 데라 | KrbException : HMAC SHA1-96와 암호화 유형 AES256 CTS 모드

나는 클라우 데라 매니저 설치 프로그램을 사용하여 설치했다 CDH 4.5 설정에서 Kerberos를 시도하고있다.

지침은 다음 링크에서있다 : http://www.cloudera.com/content/cloudera-content/cloudera-docs/CM4Ent/4.5.2/Configuring-Hadoop-Security-with-Cloudera-Manager/cmeechs_topic_4.html

위 KDC 설정 한 후 나는 자바에 대해 다음 위치에 6 개 파일을 JCE 정책을 복사 : /usr/java/jdk1.6.0_31/lib/security/

다음은 내 "/var/kerberos/krb5kdc/kdc.conf"파일입니다 :

[kdcdefaults]
 kdc_ports = 88
 kdc_tcp_ports = 88

[realms]
 MYREALM.COM = {
  master_key_type = aes256-cts
  acl_file = /var/kerberos/krb5kdc/kadm5.acl
  dict_file = /usr/share/dict/words
  admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab
  supported_enctypes = aes256-cts:normal aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal
 }

다음은 내 "/etc/krb5.conf"파일입니다 :

[logging]
 default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log

[libdefaults]
 default_realm = MYREALM.COM
 dns_lookup_realm = false
 dns_lookup_kdc = false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true

[realms]
 MYREALM.COM = {
  kdc = node1.hcluster
  admin_server = node1.hcluster
 }

[domain_realm]
 .hcluster = MYREALM.COM
 hcluster = MYREALM.COM

이 파일은 모든 노드에 존재한다.

그러나 모든 서비스가 서로 통신하는 데 실패 지침의 모든 단계를 수행 한 후. 네임 노드의 로그에서 예외가 다음과 같은 :

2014-02-05 11:42:35,072 INFO org.apache.hadoop.ipc.Server: IPC Server listener on 8022: readAndProcess threw exception javax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: Failure unspecified at GSS-API level (Mechanism level: Encryption type AES256 CTS mode with HMAC SHA1-96 is not supported/enabled)] from client 10.1.3.104. Count of bytes read: 0
javax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: Failure unspecified at GSS-API level (Mechanism level: Encryption type AES256 CTS mode with HMAC SHA1-96 is not supported/enabled)]
        at com.sun.security.sasl.gsskerb.GssKrb5Server.evaluateResponse(GssKrb5Server.java:159)
        at org.apache.hadoop.ipc.Server$Connection.saslReadAndProcess(Server.java:1250)
        at org.apache.hadoop.ipc.Server$Connection.readAndProcess(Server.java:1456)
        at org.apache.hadoop.ipc.Server$Listener.doRead(Server.java:759)
        at org.apache.hadoop.ipc.Server$Listener$Reader.doRunLoop(Server.java:557)
        at org.apache.hadoop.ipc.Server$Listener$Reader.run(Server.java:532)
Caused by: GSSException: Failure unspecified at GSS-API level (Mechanism level: Encryption type AES256 CTS mode with HMAC SHA1-96 is not supported/enabled)
        at sun.security.jgss.krb5.Krb5Context.acceptSecContext(Krb5Context.java:741)
        at sun.security.jgss.GSSContextImpl.acceptSecContext(GSSContextImpl.java:323)
        at sun.security.jgss.GSSContextImpl.acceptSecContext(GSSContextImpl.java:267)
        at com.sun.security.sasl.gsskerb.GssKrb5Server.evaluateResponse(GssKrb5Server.java:137)
        ... 5 more
Caused by: KrbException: Encryption type AES256 CTS mode with HMAC SHA1-96 is not supported/enabled
        at sun.security.krb5.EncryptionKey.findKey(EncryptionKey.java:481)
        at sun.security.krb5.KrbApReq.authenticate(KrbApReq.java:260)
        at sun.security.krb5.KrbApReq.<init>(KrbApReq.java:134)
        at sun.security.jgss.krb5.InitSecContextToken.<init>(InitSecContextToken.java:79)
        at sun.security.jgss.krb5.Krb5Context.acceptSecContext(Krb5Context.java:724)
        ... 8 more

어떤 도움도 정말 감사합니다.

해결법

  1. ==============================

    1.나는 클라우 데라에서 어떤 도움을받을 수 있었고 실수가 JCE 정책 항아리의 위치에있는 것을 알아 냈다.

    나는 클라우 데라에서 어떤 도움을받을 수 있었고 실수가 JCE 정책 항아리의 위치에있는 것을 알아 냈다.

    올바른 위치는 다음과 같습니다 /usr/java/jdk1.6.0_31/jre/lib/security/.

  2. from https://stackoverflow.com/questions/21586132/kerberos-cloudera-krbexception-encryption-type-aes256-cts-mode-with-hmac-sh by cc-by-sa and MIT license