用过hbase的朋友可能都有过这样的疑问,我写一个java client,好像提供了zookeeper quorum地址连上hbase了,那么是不是存在安全问题?的确是,如何解决?hbase中引入了kerberos认证。我准备用两篇博文介绍hbase + kerberos的相关内容,本篇主要介绍kerberos的配置。 · 环境准备 · kerberos简介 · kerberos server配置 · kerberos client配置 环境准备 这里我准备了三台server,各自安装上centos 6.5 64bit kb1: kerberos server kbhbase1: kerberos client, 后续也用于安装运行HBase kbjavatest1: kerberos client, 后续将在其上部署java程序访问kbhbase1上的hbase数据库 kerberos简介 kerberos简单来说是一套完全控制机制,它有一个中心服务器(KDC),KDC中有数据库,你可以往里添加各种“人”以及各种“服务”的“身份证”,当某个人要访问某个服务时,他拿着自己的“身份证”联系KDC并告诉KDC他想要访问的服务,KDC经过一系列验证步骤,终依据验证结果允许/拒绝这个人访问此服务。关于kerberos具体的工作流程,参见文章《Explain like I’m 5: Kerberos》 kerberos server配置 安装 #yum install krb5-libs krb5-server krb5-workstation 配置 1)#vim /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 = MH.COM dns_lookup_realm = false dns_lookup_kdc = false ticket_lifetime = 24h renew_lifetime = 7d forwardable = true [realms] MH.COM = { kdc = kb1.mh.com:88 admin_server = kb1.mh.com:749 } [domain_realm] .mh.com = MH.COM mh.com = MH.COM 2)#vim /var/kerberos/krb5kdc/kdc.conf [kdcdefaults] kdc_ports = 88 kdc_tcp_ports = 88 [realms] MH.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 } kerberos中的realm,即kerberos的域,类似于计算机网络中"domain"的概念。