Kerberos安装&使用

Hadoop自身是没有安全认证的,所以需要引入第三方的安全认证机制。kerberos是hadoop比较受欢迎的一种认证方式。kerberos配置比较简单。但是实际使用的时候,如果不严格遵守游戏规则。你会经常遇到“奇怪”的问题。

1. 安装kerberos的软件包

yum install krb5*
vi /etc/krb5.conf

2. 修改kerberos的配置文件

# more /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 = LIANG.COM
 dns_lookup_realm = false
 dns_lookup_kdc = false
 ticket_lifetime = 24h
 renew_lifetime = 2d
 forwardable = false
[realms]
 LIANG.COM = {
  kdc = c6701
  admin_server = c6701
  default_domain = liang.com
  key_stash_file = /var/kerberos/krb5kdc/.k5.LIANG.COM
  dict_file = /usr/share/dict/words
 }
[domain_realm]
 .liang.com = LIANG.COM
 liang.com = LIANG.COM

3. 修改kdc配置文件

cat /var/kerberos/krb5kdc/kdc.conf
[kdcdefaults]
 kdc_ports = 88
 kdc_tcp_ports = 88
[realms]
 LIANG.COM = {
  kadmind_port = 749
  master_key_type = aes256-cts-hmac-sha1-96
  acl_file = /var/kerberos/krb5kdc/kadm5.acl
  dict_file = /usr/share/dict/words
  supported_enctypes = des3-cbc-sha1:normal
  max_life = 24h 0m 0s
  max_renewable_life = 7d 0h 0m 0s
  dict_file = /usr/share/dict/words
  key_stash_file = /var/kerberos/krb5kdc/.k5.LIANG.COM
  database_name = /var/kerberos/krb5kdc/principal
 }

执行命令创建kdc数据库

kdb5_util create -s -r HADOOP.LIANG.COM

4. 给数据库管理员添加ACL权限,修改kadm5.acl文件,*代表全部权限

# cat /var/kerberos/krb5kdc/kadm5.acl
*/[email protected]   *

5. 启动服务

# service krb5kdc start
# service kadmin start
# service krb5kdc status
# service kadmin status
# chkconfig krb5kdc on
# chkconfig kadmin on

6. 补充:在每个客户端的系统参数/etc/profile中,加上下面参数,确保每次su - user都能使用同一个tgt,而不是创建一个新的,而找不到,最终导致su的用户kinit失败

# workaround for kerberos loging
export KRB5CCNAME=FILE:/tmp/krb5cc_`id -u`

7. 创建principal

kadmin.local -q "addprinc -pw <password> <username>"

针对hadoop用户,增加主机名,一同创建principal,增加安全性。

注意:hadoop只能通过小写的主机名进行注册。如果主机名有大写字母,手动改成小写。后续kinit的时候,也是使用小写的。hadoop会自动将大写的主机名变成小写。

kadmin.local -q "addprinc -pw <password> hdfs/<hostname>"

8. 创建keytab

kadmin.local -q "ktadd -norandkey -k /root/keytab/<username>.keytab <username>"

9. 注册

kinit -kt /root/keytab/hdfs.keytab <username>

针对hadoop用户,增加主机名,一同创建principal,增加安全性。

kinit -kt /root/keytab/hdfs.keytab hdfs/`hostname`

10. 查询当前用户的kinit情况

$ klist
Ticket cache: FILE:/tmp/krb5cc_1098
Default principal: hdfs/[email protected]
Valid starting     Expires            Service principal
03/26/18 17:19:04  03/27/18 17:19:04  krbtgt/[email protected]
        renew until 04/02/18 17:19:04

11. 查询keytab文件内容

$ klist -kt /etc/security/keytab/hdfs.keytab 
Keytab name: FILE:/root/keytab/hdfs.keytab
KVNO Timestamp         Principal
---- ----------------- --------------------------------------------------------
   1 04/07/17 16:16:04 hdfs/[email protected]
   1 04/07/17 16:16:04 hdfs/[email protected]
   1 04/07/17 16:16:05 hdfs/[email protected]

12. 查询KDC,用户列表

kadmin.local -q "listprincs"

13. 删除用户

kadmin.local -q "delprinc -force HTTP/[email protected]"

14. 修改密码

kpasswd 用户名

原文地址:http://blog.51cto.com/hsbxxl/2091272

时间: 2024-10-25 14:59:28

Kerberos安装&使用的相关文章

Kerberos安装及使用

2. 安装 Kerberos2.1. 环境配置 安装kerberos前,要确保主机名可以被解析. 主机名 内网IP 角色 Vmw201 172.16.18.201 Master KDC Vmw202 172.16.18.202 Kerberos client Vmw203 172.16.18.203 Kerberos client 2.2 Configuring a Kerberos Server2.2.1 确保环境可用 确保所有的clients与servers之间的时间同步以及DNS正确解析2

Centos中,Kerberos安装

1.安装软件包 安装必须的工具 bison, make, binutils 下载压缩包至/usr/local目录下,并解压 [[email protected] local]# ls krb5-1.14.tar.gz krb5-1.14.tar.gz 2.编译Kerberos 切换目录至/krb5-1.14/src 在/krb5-1.14/src文件夹下, 运行configure命令 [[email protected] src]# ./configure --prefix=/usr/local

kerberos安装

配置KDC主服务器 安装需要的包 #yum install krb5-serverkrb5-libs krb5-workstationpam_krb5 -y 修改主机名,如果有DNS服务器,不需要配置 #vim /etc/hosts 10.22.225.212   gamekerberos.opi.com      kerberos1 10.30.33.60       gamekerberos2.opi.com    kerberos2 Master服务器配置 #vim /etc/krb5.c

[转] kerberos安装配置与使用

[From] https://blog.csdn.net/lovebomei/article/details/79807484 1.Kerberos协议: Kerberos协议主要用于计算机网络的身份鉴别(Authentication), 其特点是用户只需输入一次身份验证信息就可以凭借此验证获得的票据(ticket-granting ticket)访问多个服务,即SSO(Single Sign On).由于在每个Client和Service之间建立了共享密钥,使得该协议具有相当的安全性 2.1.

【大数据安全】Kerberos集群安装配置

1. 概述 Kerberos是一种计算机网络认证协议,它允许某实体在非安全网络环境下通信,向另一个实体以一种安全的方式证明自己的身份.它也指由麻省理工实现此协议,并发布的一套免费软件.它的设计主要针对客户-服务器模型,并提供了一系列交互认证--用户和服务器都能验证对方的身份.Kerberos协议可以保护网络实体免受窃听和重复攻击. Kerberos协议基于对称密码学,并需要一个值得信赖的第三方.Kerberos协议的扩展可以为认证的某些阶段提供公钥密码学支持. 2. 环境说明: CDH版本:5.

GitLab安装说明

http://blog.csdn.net/huangzhijie3918/article/details/51330425 GitLab,是一个使用 Ruby on Rails 开发的开源应用程序,与Github类似,能够浏览源代码,管理缺陷和注释,非常适合在团队内部使用. gitlab是基于Ruby on Rails的,安装和配置非常麻烦,不过有傻瓜安装包,https://about.gitlab.com/downloads/,或者,https://bitnami.com/stack/gitl

Linux 编译安装之基础参数篇

此文转载:感谢zjt289198457的专栏 ./configure 该脚本将运行一些测试来猜测一些系统相关的变量并检测你的操作   系统的特殊设置,并且最后在制做树中创建一些文件以记录它找到了什么.         缺省设置将制作服务器和应用程序,还有所有只需要C编译器的客户端程序和接口. 缺省时所有文件都将安装到   /usr/local/pgsql.         你可以通过给出下面   configure   命令行选项中的一个或更多的选项来客户化   制作和安装过程:        

CentOS 自定义安装GitLab

准备工作和说明 说明: 本文主要参考官方文档而来 gitlab 安装路径为/data/git 基于CentOS minimal 系统,系统安装时没有安装依赖包,可以安装开发包,也可依报错信息安装缺少依赖. 主要涉及以下组件安装与配置 依赖包 Ruby Go System Users Database Redis GitLab Nginx 1. 依赖包安装 更新系统及软件包 #以 root 用户运行 yum update -y yum upgrade -y 安装 vim wget yum inst

CentOS源码安装GitLab汉化版第2版

软件版本: CentOS 7.2 Git 2.12.0 Ruby 2.3.3 Node.js 6.10.1 Redis 3.2.8 MariaDB 10.1.20 GitLab 8.8.5汉化版 GitLab Shell 2.7.2 Nginx 1.10.3 Go 1.8 GitLab-Workhorse 0.7.1 一.安装依赖 yum -y install libicu-devel patch gcc-c++ readline-devel zlib-devel libffi-devel op