centos7 安装 Kerberos


1、安装kerberos

Kerberos Server节点(Kadmin,KDC)执行如下命令:

yum install -y krb5-server krb5-libs krb5-workstation

使用Kerberos的节点(只使用Kerberos认证)执行如下命令: 

yum install -y krb5-devel krb5-workstation 
 

2、配置krb5.conf

vim /etc/krb5.conf   #1、realms模块: admin_server:kadmin服务(即Kerberos administration server)所在节点。 kdc:KDC服务所在节点。
#2、domain_realm模块: 此模块配置了domain name或者hostname同kerberos realm之间的映射关系。 详细说明可参考官网文档:http://web.mit.edu/kerberos/krb5-latest/doc/admin/conf_files/krb5_conf.html   如图:  

3、配置 kdc.conf

根据需要修改 vim /var/kerberos/krb5kdc/kdc.conf

# kdc_ports:KDC服务监听的端口。 # acl_file:ACL文件的路径。Kerberos使用这个ACL文件来确定哪些principal具有哪些权限。 # dict_file:存放一个由多行字符串构成的文本文件,该文件中的字符串禁止作为密码使用。 # admin_keytab:KDC 进行校验的 keytab。 # supported_enctypes:支持的加密算法类型。 # default_principal_flags:默认的principal标识,即创建principal时候无需特殊指定默认自带的标识。   如图:

 4、配置/var/kerberos/krb5kdc/kadm5.acl

# ACL文件用于控制kadmin数据库的访问权限,以及哪些principal可以操作其他的principal。 # 配置文件格式为: # principal permissions [target_principal [restrictions] ] # permissions官网有详细的列表,平时最为常用的是”*“,表示允许所有权限,并将该权限赋予管理员类型的principal。   # 例如我们配置:

 # 表示所有后缀为/admin@ABC.COM的principal具有所有权限,充当管理员角色。

# 官网配置项详细解释参见:http://web.mit.edu/kerberos/krb5-latest/doc/admin/conf_files/kadm5_acl.html

5、初始化Kadmin数据库

命令格式为:

#创建 Kerberos 数据库(密码: ABC.COM)
rm -rf /var/kerberos/krb5kdc/principal*
kdb5_util create -s -r ABC.COM
# -s:表示生成 stash file,并在其中存储 master server key(krb5kdc) # -r:指定 realm name

6、启动Kerberos服务

 
systemctl start krb5kdc
systemctl start kadmin

7、使用(测试)

7.1、Kadmin数据库操作

  • 如果有访问 KDC 服务器的 root 权限,但没有 kerberos admin 账户,使用 kadmin.local  
  • 如果没有访问 KDC服务器的 root 权限,但用 kerberos admin 账户,使用 kadmin  

在运行kadmin的节点上执行如下命令,进入kadmin操作模式:

输入"?"可以获取到所有命令和解释:

列出所有的principal:

添加一个principal

如果没有指定-randkey-nokey参数,需要指定一个密码。

kinit(在客户端认证用户)
kinit root/admin@ABC.COM

klist(查看当前的认证用户)