注册
Linux环境Kerberos环境搭建
专栏/培训园地/ 文章详情 /

Linux环境Kerberos环境搭建

A远航小船长 2024/06/21 796 0 0
摘要

Kerberos
1.1 配置Kerberos服务器
1.1.1 安装下载Kerberos
首先在192.168.38.134的虚拟机上安装Kerberos服务端
命令:yum -y install krb5-server openldap-clients
image.png

1.1.2 配置krb5.conf
krb5.conf文件在根目录下的/etc/krb5.conf。需要所有使用的Kerberos的机器上的配置文件都同步,最好是直接复制文件过去,可以避免几个问题
image.png
这里需要修改kdc和admin_server的值,改成服务器的IP地址
kdc:代表kdc的位置,格式是:机器hostname或ip地址admin_server:代表admin的位置,格式是:机器hostname或ip地址

1.1.3 配置kdc.conf
kdc.conf文件默认放在/var/kerberos/krb5kdc/kdc.conf
master_key_type:和supported_enctyps默认使用aes256-cts。由于,JAVA使用aes256-cts验证方式需要安装额外的jar包,推荐不使用。
supported_enctypes:支持的校验方式。需要把aes256-cts去掉。
image.png

1.1.4 配置kadm5.acl
修改服务端192.168.38.134上的配置文件/var/kerberos/krb5kdc/kadm5.acl,以允许具备匹配条件的admin用户进行远程登录权限。这句是在给admin用户所有权限
*/admin@EXAMPLE.COM *
这里配置文件中本身就是这样,不用修改。

1.1.5 启动Kerberos服务
systemctl start krb5kdc
systemctl start kadmin
image.png
然后可以加入开机启动项
systemctl enable krb5kdc
systemctl enable kadmin

1.1.6 创建Kerberos管理员principal

kadmin.local -q "addprinc root/admin"或者可以进入kadmin.local之后再进行操作,pincipal的名字的第二部分是admin,那么根据之前配置的kadm5.acl文件,该principal就拥有administrative privileges,这个账号将会被CDH用来生成其他用户/服务的principal。
image.png
这里需要设置密码
初始化
kinit root/admin
要用到上一步中设置的密码
image.png

1.2 Kerberos配置客户端
1.2.1 安装客户端
在192.168.38.133中安装kerberos客户端,yum -y install krb5-devel krb5-workstation
image.png

1.2.2 修改krb5.conf
将在Kerberos的krb5.conf修改的内容放到这里,直接复制粘贴文件
image.png
1.2.3 验证登录
使用kinit root/admin命令登录,这里可能会出现ip冲突导致的问题,会导致客户端搜索不到服务器。解决方法,修改服务器IP或者关闭其他虚拟机,并重启服务器的虚拟机
image.png

/etc/krb5.conf 文件
krb5.conf 是Kerberos客户端和服务端的主要配置文件,包含了Kerberos使用的全局设定、域和KDC(Key Distribution Center)的信息。

[libdefaults] 部分
default_realm:指定Kerberos的默认域(Realm)。在用户不指定域时,Kerberos会使用这个默认域。

default_realm = EXAMPLE.COM
dns_lookup_realm:指定是否通过DNS查找域名到Realm的映射。如果设置为true,则Kerberos将使用DNS查找域名和Realm的对应关系。

dns_lookup_realm = false
dns_lookup_kdc:指定是否通过DNS查找KDC服务器地址。如果设置为true,则Kerberos将使用DNS查找KDC服务器。

dns_lookup_kdc = true
ticket_lifetime:指定Kerberos票据的有效期。例如,24小时。

ticket_lifetime = 24h
forwardable:指定票据是否可以转发。如果设置为yes,则票据可以被转发到其他主机。

forwardable = yes
[realms] 部分
定义了每个Realm的KDC和管理服务器(admin_server)的位置。

EXAMPLE.COM:这是一个示例Realm的名称。

EXAMPLE.COM = {
kdc = 192.168.38.134
admin_server = 192.168.38.134
}
kdc:指定KDC服务器的地址。在这个例子中是虚拟机IP。

admin_server:指定Kerberos管理服务器的地址,通常与KDC的IP相同。

[domain_realm] 部分
定义了域名和Kerberos Realm之间的映射关系。
.example.com:表示所有属于example.com域的子域都映射到EXAMPLE.COM Realm。

.example.com = EXAMPLE.COM
example.com:表示example.com域映射到EXAMPLE.COM Realm。

example.com = EXAMPLE.COM
/var/kerberos/krb5kdc/kdc.conf 文件
这是KDC(Key Distribution Center)的配置文件,定义了KDC的具体行为。

[kdcdefaults] 部分
kdc_ports:定义KDC使用的端口,默认是88。

kdc_ports = 88
kdc_tcp_ports:定义KDC使用的TCP端口,默认是88。

kdc_tcp_ports = 88
[realms] 部分
定义每个Realm的具体配置。

database_name:指定Kerberos数据库文件的位置。

database_name = /var/kerberos/krb5kdc/principal
admin_keytab:指定KDC的管理密钥表文件的位置。

admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab
acl_file:指定KDC的访问控制列表文件。

acl_file = /var/kerberos/krb5kdc/kadm5.acl
dict_file:指定密码字典文件,用于检查密码强度。

dict_file = /usr/share/dict/words
key_stash_file:指定存储主密钥的文件。

key_stash_file = /var/kerberos/krb5kdc/.k5.EXAMPLE.COM
max_life:定义票据的最大有效期。

max_life = 10h 0m 0s
max_renewable_life:定义票据的最大可续期时间。

max_renewable_life = 7d 0h 0m 0s
master_key_type:定义主密钥的加密类型。

master_key_type = aes256-cts
supported_enctypes:定义支持的加密类型。

supported_enctypes = aes256-cts:normal aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal
default_principal_flags:定义默认的Principal标志。

default_principal_flags = +renewable, +forwardable
这些参数共同决定了Kerberos系统的工作方式,从用户认证到票据的生命周期管理等各个方面。了解这些参数的意义和作用可以帮助更好地配置和管理Kerberos环境。

注:达梦想要使用Kerberos登录远程验证需要安全版本,其余版本不支持

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服