今天需要在hbase上配置kerberos认证,所以需要安装kerberos,安装配置过程如下:
kerberos简介
kerberos简单来说就是一套完全控制机制,它有一个中心服务器(KDC),KDC中有数据库,你可以往里添加各种“人”以及各种“服务”的“身份证”,当某个人要访问某个服务时,他拿着自己的“身份证”联系KDC并告诉KDC他想要访问的服务,KDC经过一系列验证步骤,最终依据验证结果允许/拒绝这个人访问此服务。
kerberos server配置
安装
#yum install krb5-libs krb5-server krb5-workstation
配置
1)#vim /etc/krb5.conf
注意在/etc/krb5.conf文件中,最后的YOUR.DOMAIN_NAME = {
admin_server=mj1
kdc = mj1
}
这里的mj1必须是在/etc/hosts中配置过的域名,我的/etc/hosts的内容如下:
否则在后期的kinit admin/admin命令中,将出现错误如下:
2)#vim /var/kerberos/krb5kdc/kdc.conf
3)#vim /var/kerberos/krb5kdc/kadm5.acl
这个文件是用来控制哪些人可以使用kadmin工具来管理kerberos数据库,我这里就配了一行:
*/admin@MH.COM *
其中前一个*号是通配符,表示像名为“abc/admin”或“xxx/admin”的人都可以使用此工具(远程或本地)管理kerberos数据库,后一个*跟权限有关,*表示所有权限
4)#kdb5_util create -s初始化一个kerberos数据库。
5)现在数据库是空的,想要使用kadmin添加一个人到数据库中,这是需要权限的,那么最开始的那一个人是怎么加到数据库中的?这就需要kadmin.local这个工具,这个工具只能在kerberos server上执行(类似于oracle中的sys用户无密码登录)。
#kadmin.local -q "addprinc admin/admin"
我这里把管理员叫“admin/admin”,你可以叫任何名字,但是因为此前我们在kadm5.acl中的配置,名字必须以/admin结尾。过程中会提示你输入两次密码,记住这个密码,当你在别的机器连接kadmin时,需要这个密码。
启动
- #service krb5kdc start
- #service kadmin start
- #chkconfig krb5kdc on
- #chkconfig kadmin on
验证
- #kinit admin/admin
如果kinit不带参数,则会默认以当前操作系统用户名,比如root,作为名称。因为root在kerberos的数据库中并没有,所以会提示失败
成功的话,会让你输入之前设定的密码。- #klist
正常应该显示如下: