安装与配置kerberos

一、环境说明

系统说明:html

  • 操做系统:centos 6.6
  • Hadoop版本:CDH 5.5
  • JDK版本: 1.7.0_67

kerberos安装的组件分配:java

74做为master节点,其余节点做为slave节点。咱们在74节点安装kerberos Server,在其余节点安装kerberos client.web

二、安装和配置kerberos

2.1安装kerberos

在74上安装包 krb五、krb5-server 和 krb5-client。算法

# yum install krb5-server -y

在其余节点(7四、7五、7六、77)安装 krb5-devel、krb5-workstation:数据库

# yum install krb5-devel krb5-workstation -y

2.2修改配置文件

kdc 服务器涉及到三个配置文件:centos

/etc/krb5.conf
/var/kerberos/krb5kdc/kdc.conf
/var/kerberos/krb5kdc/kadm5.acl

配置 Kerberos 的一种方法是编辑配置文件 /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 = BIGDATA.COM
 dns_lookup_realm = false
 dns_lookup_kdc = false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true
 clockskew = 120
 udp_preference_limit = 1

[realms]
 BIGDATA.COM = {
  kdc = bd-ops-test-74
  admin_server = bd-ops-test-74
 }

[domain_realm]
 .bigdata.com = BIGDATA.COM
 bigdata.com = BIGDATA.COM

说明:bash

  • [logging]:表示 server 端的日志的打印位置
  • [libdefaults]:每种链接的默认配置,须要注意如下几个关键的小配置
    • default_realm = BIGDATA.COM:设置 Kerberos 应用程序的默认领域。若是您有多个领域,只需向 [realms] 节添加其余的语句。
    • ticket_lifetime: 代表凭证生效的时限,通常为24小时。
    • renew_lifetime: 代表凭证最长能够被延期的时限,通常为一个礼拜。当凭证过时以后,对安全认证的服务的后续访问则会失败。
    • clockskew:时钟误差是不彻底符合主机系统时钟的票据时戳的容差,超过此容差将不接受此票据。一般,将时钟扭斜设置为 300 秒(5 分钟)。这意味着从服务器的角度看,票证的时间戳与它的误差能够是在先后 5 分钟内。
    • udp_preference_limit= 1:禁止使用 udp 能够防止一个 Hadoop 中的错误
  • [realms]:列举使用的 realm。
    • kdc:表明要 kdc 的位置。格式是 机器:端口
    • admin_server:表明 admin 的位置。格式是 机器:端口
  • [default_domain]:表明默认的域名
  • [appdefaults]:能够设定一些针对特定应用的配置,覆盖默认配置。

修改 /var/kerberos/krb5kdc/kdc.conf ,该文件包含 Kerberos 的配置信息。例如,KDC 的位置,Kerbero 的 admin 的realms 等。须要全部使用的 Kerberos 的机器上的配置文件都同步。这里仅列举须要的基本配置。详细介绍参考:krb5conf服务器

[kdcdefaults]
 kdc_ports = 88
 kdc_tcp_ports = 88

[realms]
 BIGDATA.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
  default_principal_flags = +renewable, +forwardable
  max_renewable_life = 10d
 }

说明:oracle

  • BIGDATA.COM: 是设定的 realms。名字随意。Kerberos 能够支持多个 realms,会增长复杂度。大小写敏感,通常为了识别使用所有大写。这个 realms 跟机器的 host 没有大关系。
  • master_key_type:和 supported_enctypes 默认使用 aes256-cts。JAVA 使用 aes256-cts 验证方式须要安装 JCE 包,见下面的说明。为了简便,你能够不使用 aes256-cts 算法,这样就不须要安装 JCE 。
  • acl_file:标注了 admin 的用户权限,须要用户本身建立。文件格式是:Kerberos_principal permissions [target_principal] [restrictions]
  • supported_enctypes:支持的校验方式。
  • admin_keytab:KDC 进行校验的 keytab。

关于AES-256加密

对于使用 centos5. 6 及以上的系统,默认使用 AES-256 来加密的。这就须要集群中的全部节点上安装 JCE,若是你使用的是 JDK1.6 ,则到 Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files for JDK/JRE 6 页面下载,若是是 JDK1.7,则到 Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files for JDK/JRE 7 下载。

下载的文件是一个 zip 包,解开后,将里面的两个文件放到下面的目录中:$JAVA_HOME/jre/lib/security

为了可以不直接访问 KDC 控制台而从 Kerberos 数据库添加和删除主体,请对 Kerberos 管理服务器指示容许哪些主体执行哪些操做。经过编辑文件 /var/lib/kerberos/krb5kdc/kadm5.acl 完成此操做。ACL(访问控制列表)容许您精确指定特权。

#cat kadm5.acl 
*/admin@BIGDATA.COM	*

2.3同步配置文件

将 kdc 中的 /etc/krb5.conf 拷贝到集群中其余服务器便可。

# scp /etc/krb5.conf bd-ops-test-75:/etc/krb5.conf
# scp /etc/krb5.conf bd-ops-test-76:/etc/krb5.conf
# scp /etc/krb5.conf bd-ops-test-77:/etc/krb5.conf

2.4建立数据库

在 bd-ops-test-74 上运行初始化数据库命令。其中 -r 指定对应 realm。

# kdb5_util create -r BIGDATA.COM -s

出现 Loading random data 的时候另开个终端执行点消耗CPU的命令如 cat /dev/sda > /dev/urandom 能够加快随机数采集。该命令会在 /var/kerberos/krb5kdc/ 目录下建立 principal 数据库。

若是遇到数据库已经存在的提示,能够把 /var/kerberos/krb5kdc/ 目录下的 principal 的相关文件都删除掉。默认的数据库名字都是 principal。能够使用 -d 指定数据库名字。

2.5启动服务

在74节点上运行:

# chkconfig --level 35 krb5kdc on
# chkconfig --level 35 kadmin on
# service krb5kdc start
# service kadmin start

2.6建立kerberos管理员

关于 kerberos 的管理,能够使用 kadmin.localkadmin,至于使用哪一个,取决于帐户和访问权限:

  • 若是有访问 kdc 服务器的 root 权限,可是没有 kerberos admin 帐户,使用 kadmin.local
  • 若是没有访问 kdc 服务器的 root 权限,可是用 kerberos admin 帐户,使用 kadmin

在 74 上建立远程管理的管理员:

#手动输入两次密码,这里密码为 bigdata
# kadmin.local -q "addprinc root/admin"

密码务必记住,妥善保存。

2.7 kerberos基本操做

查看当前的认证用户:

# 查看principals
$ kadmin: list_principals

  # 添加一个新的 principal
  kadmin:  addprinc user1
    WARNING: no policy specified for user1@BIGDATA.COM; defaulting to no policy
    Enter password for principal "user1@BIGDATA.COM":
    Re-enter password for principal "user1@BIGDATA.COM":
    Principal "user1@BIGDATA.COM" created.

  # 删除 principal
  kadmin:  delprinc user1
    Are you sure you want to delete the principal "user1@BIGDATA.COM"? (yes/no): yes
    Principal "user1@BIGDATA.COM" deleted.
    Make sure that you have removed this principal from all ACLs before reusing.

  kadmin: exit

也能够直接经过下面的命令来执行:

# 提示须要输入密码
$ kadmin -p root/admin -q "list_principals"
$ kadmin -p root/admin -q "addprinc user2"
$ kadmin -p root/admin -q "delprinc user2"

# 不用输入密码
$ kadmin.local -q "list_principals"
$ kadmin.local -q "addprinc user2"
$ kadmin.local -q "delprinc user2"

建立一个测试用户 test,密码设置为 test:

# echo -e "test\ntest" | kadmin.local -q "addprinc test"

获取 test 用户的 ticket:

#kinit test
Password for test@BIGDATA.COM: 

#klist -e
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: test@BIGDATA.COM

Valid starting     Expires            Service principal
09/02/16 16:43:50  09/03/16 16:43:50  krbtgt/BIGDATA.COM@BIGDATA.COM
	renew until 09/02/16 16:43:50, Etype (skey, tkt): aes256-cts-hmac-sha1-96, aes256-cts-hmac-sha1-96

销毁该 test 用户的 ticket:

#kdestroy 
#klist 
klist: No credentials cache found (ticket cache FILE:/tmp/krb5cc_0)

更新 ticket:

# kinit -R

查看keytab文件详情:

klist -k /etc/krb5.keytab
  Keytab name: FILE:/etc/krb5.keytab
  KVNO Principal
  ---- --------------------------------------------------------------------------
     3 kadmin/admin@LASHOU-INC.COM
     3 kadmin/admin@LASHOU-INC.COM
     3 kadmin/admin@LASHOU-INC.COM
     3 kadmin/admin@LASHOU-INC.COM
     3 kadmin/admin@LASHOU-INC.COM
相关文章
相关标签/搜索