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

关于AES-256加密
对于使用 Centos5.6 及以上的系统,默认使用 AES-256 来加密的。这就需要集群中的所有节点上安装 Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy File。
下载的文件是一个 zip 包,解开后,将里面的两个文件放到下面的目录中:$JAVA_HOME/jre/lib/security

3. 创建/var/kerberos/krb5kdc/kadm5.acl
内容为:*/admin@EXAMPLE.COM *
代表名称匹配/admin@EXAMPLE COM 都认为是admin,权限是 * 代表全部权限。
在KDC上我们需要编辑acl文件来设置权限,该acl文件的默认路径是 /var/kerberos/krb5kdc/kadm5.acl(也可以在文件kdc.conf中修改)。

Kerberos的kadmind daemon会使用该文件来管理对Kerberos database的访问权限。对于那些可能会对pincipal产生影响的操作,acl文件也能控制哪些principal能操作哪些其他pricipals。

4. 创建Kerberos数据库
此步可能用时较长,创建完成会在/var/kerberos/krb5kdc/下面生成一系列文件。并且会提示输入数据库管理员的密码。

db5_util create -r EXAMPLE.COM –s # 此处为EXAMPLE.COM与/etc/krb5.conf中的配置保持一致。

其中,[-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

5. 添加database administrator
为Kerberos database添加administrative principals (即能够管理database的principals) —— 至少要添加1个principal来使得Kerberos的管理进程kadmind能够在网络上与程序kadmin进行通讯。

创建管理员并输入密码admin。kadmin.local可以直接运行在KDC上,而无需通过Kerberos认证。

为用户设置密码:

[root@cdh-node-1 /]# kadmin.local -q "addprinc admin/admin" Authenticating as principal root/admin@EXAMPLE.COM with password. WARNING: no policy specified for admin/admin@EXAMPLE.COM; defaulting to no policy Enter password for principal "admin/admin@EXAMPLE.COM": Re-enter password for principal "admin/admin@EXAMPLE.COM": Principal "admin/admin@EXAMPLE.COM" created.

6. 设置kerberos服务为开机启动,关闭防火墙

chkconfig krb5kdc on chkconfig kadmin on chkconfig iptables off

7. 启动krb5kdc和kadmind进程

/usr/sbin/kadmind /usr/sbin/krb5kdc

service krb5kdc start service kadmin start service krb5kdc status

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

8. 检查Kerberos正常运行

kinit admin/admin

9. 集群中的其他主机安装Kerberos Client

yum install krb5-workstation krb5-libs krb5-auth-dialog

配置这些主机上的/etc/krb5.conf,这个文件的内容与KDC中的文件保持一致即可。

10. 在cm节点安装ldap客户端

yum install openldap-clients 5. Kerberos使用

常用命令:

kinit admin/admin@EXAMPLE.COM # 初始化证书 klist # 查看当前证书 kadmin.local -q "list_principals" # 列出Kerberos中的所有认证用户 kadmin.local -q "addprinc user1" # 添加认证用户,需要输入密码 kinit user1 # 使用该用户登录,获取身份认证,需要输入密码 klist # 查看当前用户的认证信息ticket kinit –R # 更新ticket kdestroy # 销毁当前的ticket kadmin.local -q "delprinc user1" # 删除认证用户 5.1 管理员使用

1. 登录
登录到管理员账户,如果在本机上,可以通过kadmin.local直接登录:

[root@cdh-node-1 /]# kadmin.local Authenticating as principal root/admin@EXAMPLE.COM with password. kadmin.local:

其它机器的,先使用kinit进行验证:

[root@cdh-server-1 /]# kinit admin/admin Password for admin/admin@EXAMPLE.COM: [root@cdh-server-1 /]# kadmin Authenticating as principal admin/admin@EXAMPLE.COM with password. Password for admin/admin@EXAMPLE.COM: kadmin:

2. 增删改查账户
在管理员的状态下使用addprinc,delprinc,modprinc,listprincs命令。使用?可以列出所有的命令。

[root@cdh-node-1 /]# kadmin.local Authenticating as principal root/admin@EXAMPLE.COM with password. kadmin.local: delprinc test Are you sure you want to delete the principal "test@EXAMPLE.COM"? (yes/no): yes Principal "test@EXAMPLE.COM" deleted. Make sure that you have removed this principal from all ACLs before reusing. kadmin.local: listprincs HTTP/cdh-node-1@EXAMPLE.COM HTTP/cdh-node-2@EXAMPLE.COM HTTP/cdh-node-3@EXAMPLE.COM ...

3. 生成keytab:使用xst命令或者ktadd命令

[root@cdh-node-1 /]# kadmin:xst -k /xxx/xxx/kerberos.keytab hdfs/hadoop1 5.2 用户使用

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzxgdw.html