Linux7 下Hadoop集群用户管理方案之三 用户认证组件Kerberos安装

xiaoxiao2021-02-28  82

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

10.10.106.156  edu-bigdata-01.novalocal 10.10.106.157 edu-bigdata-02.novalocal 10.10.106.158 edu-bigdata-03.novalocal 2 配置Kerberos Server 2.1 配置DNS。局域网即 /etc/hosts 配置 echo '10.10.106.156   edu-bigdata-01.novalocal' > /etc/hosts echo '10.10.106.157   edu-bigdata-02.novalocal' >> /etc/hosts echo '10.10.106.158   edu-bigdata-03.novalocal' >> /etc/hosts echo '127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4' >> /etc/hosts echo '::1         localhost localhost.localdomain localhost6 localhost6.localdomain6' >> /etc/hosts 2.2 在156上安装  KDC。即Kerberos Server服务。 yum install krb5-server krb5-libs krb5-auth-dialog KDC的主机必须非常自身安全,一般该主机只运行KDC程序。 安装成功后会生成配置文件  /etc/krb5.conf    /var/kerberos/krb5kdc/kdc.conf  /var/kerberos/krb5kdc/kadmin.conf等。 2.3 配置kdc.conf 默认放在  /var/kerberos/krb5kdc/kdc.conf,或者通过配置修改。 # vi /var/kerberos/krb5kdc/kdc.conf [kdcdefaults] kdc_ports = 88 kdc_tcp_ports = 88 [realms] HADOOP.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 max_renewable_life = 7d supported_enctypes = aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal } HADOOP.COM:是设定的realms。名字随意。Kerberos可以支持多个realms,会增加复杂度。本文不探讨。大小写敏感,一般为了识别使用全部大写。这个realms跟机器的host没有大关系。 2.4 配置krb5.conf /etc/krb5.conf: 包含Kerberos的配置信息。例如,KDC的位置,Kerberos的admin的realms 等。需要所有使用的Kerberos的机器上的配置文件都同步。这里仅列举需要的基本配置。 # vi /var/kerberos/krb5kdc/kdc.conf [libdefaults] default_realm = HADOOP.COM dns_lookup_kdc = false dns_lookup_realm = false ticket_lifetime = 86400 renew_lifetime = 604800 forwardable = true default_tgs_enctypes = aes128-cts default_tkt_enctypes = aes128-cts permitted_enctypes = aes128-cts udp_preference_limit = 1 kdc_timeout = 3000 [realms] HADOOP.COM = { kdc =  edu-bigdata-01.novalocal admin_server =  edu-bigdata-01.novalocal } default_realm = HADOOP.COM 默认的realm,必须跟要配置的realm的名称一致。 [realms]:列举使用的realm。 kdc:代表要kdc的位置。格式是 机器:端口  因为配置了hosts  可以使用 edu-bigdata-01.novalocal admin_server:代表admin的位置。格式是机器:端口 default_domain:代表默认的域名 2.5 创建/初始化Kerberos database # /usr/sbin/kdb5_util create -s -r HADOOP.COM 其中,[-s]表示生成stash file,并在其中存储master server key(krb5kdc); 还可以用[-r]来指定一个realm name ―― 当krb5.conf中定义了多个realm时才是必要的。 # 保存路径为/var/kerberos/krb5kdc 如果需要重建数据库,将该目录下的principal相关的文件删除即可

当Kerberos database创建好后,可以看到目录 /var/kerberos/krb5kdc 下生成了几个文件:

kadm5.acl kdc.conf principal principal.kadm5 principal.kadm5.lock principal.ok 2.6 添加database administrator 我们需要为Kerberos database添加administrative principals (即能够管理database的principals) ―― 至少要添加1个principal来使得Kerberos的管理进程kadmind能够在网络上与程序kadmin进行通讯。 在master KDC上执行 # /usr/sbin/kadmin.local -q "addprinc admin/admin" 并设置密码 raysdata 2.7 为database administrator设置ACL权限 在KDC上我们需要编辑acl文件来设置权限,该acl文件的默认路径是 /var/kerberos/krb5kdc/kadm5.acl(也可以在文件kdc.conf中修改)。Kerberos的kadmind daemon会使用该文件来管理对Kerberos database的访问权限。对于那些可能会对pincipal产生影响的操作,acl文件也能控制哪些principal能操作哪些其他pricipals。

将文件/var/kerberos/krb5kdc/kadm5.acl的内容编辑为

*/admin@HADOOP.COM *   代表名称匹配 */admin@HADOOP.COM 都认为是admin,权限是 *。代表全部权限。 这里注意  HADOOP.COM *  M与*中间使用一个空格。否则没法识别配置。导致没有权限的异常。 2.8 在master KDC启动Kerberos daemons # service krb5kdc start # service kadmin start 设置开机自动启动: # chkconfig krb5kdc on # chkconfig kadmin on

现在KDC已经在工作了。这两个daemons将会在后台运行,可以查看它们的日志文件(/var/log/krb5kdc.log 和 /var/log/kadmind.log)。

可以通过命令kinit来检查这两个daemons是否正常工作。 2.9关于AES-256加密 使用 centos5. 6及以上的系统,默认使用 AES-256 来加密的。这就需要集群中的所有节点上安装 Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy File。 下载的文件是一个 zip 包,解开后,将里面的两个文件放到下面的目录中:$JAVA_HOME/jre/lib/security 下载地址: jdk 1.6   http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html jdk 1.7   http://www.oracle.com/technetwork/java/embedded/embedded-se/downloads/jce-7-download-432124.html idk 1.8   http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html 3 配置Kerberos Client 3.1 在client机器上安装 yum install krb5-workstation krb5-libs krb5-auth-dialog 3.2 配置krb5.conf 配置  /etc/krb5.conf 与KDC 上的/etc/krb5.conf 内容一样。 Kerberos操作 登陆 在KDC使用 kadmin.local 在其他client是用 kadmin 账户增删改查 添加:add_principal -randkey shihy@HADOOP.COM   // 随机密码  删除:delprinc  shihy@HADOOP.COM 查询: list_principal 生成keytab:xst -k shihy.keytab shihy@HADOOP.COM  // 在当前目录生成keytab 登陆:kinit -kt shihy.keytab shihy@HADOOP.COM   // 使用keytab登陆 删除认证缓存 :kdestory 查看当前认证:klist
转载请注明原文地址: https://www.6miu.com/read-83369.html

最新回复(0)