kerberos 常用命令:
kadmin.local //以超管身份进入kadmin
kadmin //进入kadmin模式,需输入密码
kdb5_util create -r JENKIN.COM -s //创建数据库
service krb5kdc start //启动kdc服务
service kadmin start //启动kadmin服务
service kprop start //启动kprop服务
kdb5_util dump /var/kerberos/krb5kdc/slave_data //生成dump文件
kprop -f /var/kerberos/krb5kdc/slave_data master2.com //将master数据库同步是slave
kadmin模式下:
addprinc -randkey root/master1@JENKIN.COM //生成随机key的principal
addprinc admin/admin //生成指定key的principal
listprincs //查看principal
change_password -pw xxxx admin/admin //修改admin/admin的密码
delete_principal admin/admin //删除principal
kinit admin/admin //验证principal是否可用
ktadd -k /etc/security/keytabs/hdfs.keytab hdfs/master@HQGF.COM //kadmin模式下使用
//可生成keytab
kinit -k -t /var/kerberos/krb5kdc/keytab/root.keytab root/master1@JENKIN.COM //测试keytab是否可用
klist -e -k -t /var/kerberos/krb5kdc/keytab/root.keytab //查看keytab
kdestroy //销毁当前获取的票
一,先升级再安装server,执行以下命令
yum install krb5-server krb5-libs krb5-workstation
二、修改三个配置文件
第一个文件 /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 = HQGF.COM
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
[realms]
HQGF.COM = {
kdc = master
admin_server = master
}
[domain_realm]
.example.com = HQGF.COM
example.com = HQGF.COM
第二个文件 /var/kerberos/krb5kdc/kdc.conf
[kdcdefaults]
kdc_ports = 88
kdc_tcp_ports = 88
[realms]
HQGF.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
}
第三个文件 /var/kerberos/krb5kdc/kadm5.acl (注意后面的 “*” 号不可以跟前面的字符连接在一起必须空格)
*/admin@HQGF.COM *
三、创建kerberos 应用
/usr/sbin/kdb5_util create -s -r HQGF.COM
四、启动服务
service krb5kdc start
service kadmin start
五、设置开机启动服务
chkconfig krb5kdc on
chkconfig kadmin on
六、添加principal
[root@ws1es ~]# kadmin.local
Authenticating as principal root/admin@HQGF.COM with password.
kadmin.local: addprinc admin/admin@HQGF.COM
WARNING: no policy specified for admin/admin@HQGF.COM; defaulting to no policy
Enter password for principal "admin/admin@HQGF.COM":
Re-enter password for principal "admin/admin@HQGF.COM":
Principal "admin/admin@HQGF.COM" created.
kadmin.local: listprincs
K/M@HQGF.COM
admin/admin@HQGF.COM
kadmin/admin@HQGF.COM
kadmin/changepw@HQGF.COM
kadmin/ws1es.wondersoft.cn@HQGF.COM
krbtgt/HQGF.COM@HQGF.COM
七、重启服务
service kadmin restart
八、
11.下载JCE
补充1:
JCE(Java Cryptography Extension)是一组包,它们提供用于加密、密钥生成和协商以及 Message Authentication Code(MAC)算法的框架和实现。
它提供对对称、不对称、块和流密码的加密支持,它还支持安全流和密封的对象。它不对外出口,用它开发完成封装后将无法调用。
补充2:
If you are using Oracle JDK, you must distribute and install the JCE on all hosts in the cluster, including the Ambari Server.
Be sure to restart Ambari Server after installng the JCE. If you are using OpenJDK, some distributions of the OpenJDK
come with unlimited strength JCE automatically and therefore, installation of JCE is not required.
For Oracle JDK 1.8:
http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
For Oracle JDK 1.7:
http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html
将下载的JCE解压并覆盖$JAVA_HOME/jre/lib/security/目录下的文件(所有节点)
九、
十、
十一、
十二、
十三、
十四、
十五、
十六、
十七、安装成功后,查看它自动创建的principal和keytab
[root@master krb5kdc]# kadmin.local
Authenticating as principal root/admin@HQGF.COM with password.
kadmin.local: listprincs
HTTP/master.hqgf.com@HQGF.COM
HTTP/master@HQGF.COM
HTTP/slave222.hqgf.com@HQGF.COM
HTTP/slave223.hqgf.com@HQGF.COM
HTTP/slave227.hqgf.com@HQGF.COM
HTTP/slave228.hqgf.com@HQGF.COM
K/M@HQGF.COM
activity_explorer/master.hqgf.com@HQGF.COM
activity_explorer/slave222.hqgf.com@HQGF.COM
admin/admin@HQGF.COM
ambari-qa-hqgf@HQGF.COM
ambari-server-hqgf@HQGF.COM
amshbase/slave222.hqgf.com@HQGF.COM
amszk/slave222.hqgf.com@HQGF.COM
dn/slave223.hqgf.com@HQGF.COM
dn/slave227.hqgf.com@HQGF.COM
dn/slave228.hqgf.com@HQGF.COM
hbase-hqgf@HQGF.COM
hbase/master.hqgf.com@HQGF.COM
hbase/slave222.hqgf.com@HQGF.COM
hdfs-hqgf@HQGF.COM
hive/master.hqgf.com@HQGF.COM
hive/slave222.hqgf.com@HQGF.COM
hive/slave223.hqgf.com@HQGF.COM
hive/slave227.hqgf.com@HQGF.COM
hive/slave228.hqgf.com@HQGF.COM
jhs/master.hqgf.com@HQGF.COM
jn/slave223.hqgf.com@HQGF.COM
jn/slave227.hqgf.com@HQGF.COM
jn/slave228.hqgf.com@HQGF.COM
kadmin/admin@HQGF.COM
kadmin/changepw@HQGF.COM
kadmin/master@HQGF.COM
kafka/slave223.hqgf.com@HQGF.COM
kafka/slave227.hqgf.com@HQGF.COM
kafka/slave228.hqgf.com@HQGF.COM
kiprop/master@HQGF.COM
krbtgt/HQGF.COM@HQGF.COM
livy/master.hqgf.com@HQGF.COM
livy/slave222.hqgf.com@HQGF.COM
nfs/master.hqgf.com@HQGF.COM
nfs/slave222.hqgf.com@HQGF.COM
nm/slave223.hqgf.com@HQGF.COM
nm/slave227.hqgf.com@HQGF.COM
nm/slave228.hqgf.com@HQGF.COM
nn/master.hqgf.com@HQGF.COM
nn/slave222.hqgf.com@HQGF.COM
oozie/master.hqgf.com@HQGF.COM
rangeradmin/master.hqgf.com@HQGF.COM
rangerkms/master.hqgf.com@HQGF.COM
rangerlookup/master.hqgf.com@HQGF.COM
rangertagsync/master.hqgf.com@HQGF.COM
rangerusersync/master.hqgf.com@HQGF.COM
rm/master.hqgf.com@HQGF.COM
rm/slave222.hqgf.com@HQGF.COM
spark-hqgf@HQGF.COM
yarn/master.hqgf.com@HQGF.COM
zookeeper/slave222.hqgf.com@HQGF.COM
zookeeper/slave223.hqgf.com@HQGF.COM
zookeeper/slave227.hqgf.com@HQGF.COM
zookeeper/slave228.hqgf.com@HQGF.COM
当hdfs文件对外是公开的则该其他用户就算没有配置相关的权限一样可以进行相关的操作。
当hdfs文件对外权限是没有开放的,其他用户若需要进行相关操作则需要通过Ranger进行相关权限的配置。
注:笔者发现Ambari管理下的Hive 与 Hbase目录下文件权限默认是对所有用户都开启了读写权限,因此
就算我们通过Ranger对Hive或Hbase中的表进行了相应的权限设置,当用户不通过Hive或Hbase方式获取
数据则依然是没控制好权限。
所以笔者这里通过hdfs 命令首先将Hive与Hbase中文件权限进行设置成600,具体命令如下所示,然后
再通过Ranger对文Hive与Hbase表相关权限的设置。这样非文件拥有者如果没有对应的文件操作权限则无
法对该文件进行操作,当通过Ranger设定了对应权限,则可以通过Hive或Hbase的方式进行数据相关的操
作
hdfs dfs -chmod -R 600 /apps/hive/
hdfs dfs -chmod -R 600 /apps/hbase/