【RedHat Linux】kerberos 服务端配置
1. 安装软件包
# yum install krb5-server krb5-libs krb5-workstation
2. 修改配置文件 kdc.conf , krb5.conf
# vi /var/kerberos/krb5kdc/kdc.conf //这个不改也可以
[kdcdefaults]
kdc_ports = 88
kdc_tcp_ports = 88
[realms]
EXAMPLE.COM = {
#master_key_type = aes256-cts // 建议不用
acl_file = /var/kerberos/krb5kdc/kadm5.acl // 关于andmin 的 access control list 的配置文件
dict_file = /usr/share/dict/words
admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab // 用于校验的keytab
supported_enctypes = aes256-cts: normal aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal camellia256-cts:normal camellia128-cts:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal // 支持的校验方式, [aes256-cts: normal] 要去掉
}
-----------------------------------------------------------------------------------------------
# vi /etc/krb5.conf //用hostnamectl 修改之后此文件域名部分也会被自动修改?
# Configuration snippets may be placed in this directory as well
includedir /etc/krb5.conf.d/
includedir /var/lib/sss/pubconf/krb5.include.d/ // 头文件,多了一个?
[logging] # 日志位置
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults] // 默认库配置
dns_lookup_realm = false // dns 查找功能
ticket_lifetime = 24h // 票证有效时间
renew_lifetime = 7d // 票证最长延期时间
forwardable = true
rdns = false
# default_realm = EXAMPLE.COM # 默认域, 必须与下面realms的名字一致, 记得去掉注释
default_ccache_name = KEYRING:persistent:%{uid}
default_realm = EXAMPLE.COM
dns_lookup_kdc = false
[realms] // 列举所有使用的域
# EXAMPLE.COM = {
# kdc = kerberos.example.com
# admin_server = kerberos.example.com
# }
EXAMPLE.COM = { // 神奇的是,当本机hostname被修改了之后,此处会自动被配置
kdc = classroom.example.com
admin_server = classroom.example.com
}
[domain_realm] # 动态域配置
# .example.com = EXAMPLE.COM
# example.com = EXAMPLE.COM
example.com = EXAMPLE.COM
.example.com = EXAMPLE.COM
-----------------------------------------------------------------------------
cat /var/kerberos/krb5kdc/kadm5.acl
*/admin@EXAMPLE.COM * // 当kadmin匹配到 admin组 的用户都拥有所有权限, 下文可添加指定权限
3. 创建并初始化kerberos database
kdb5_util create -s -r EXAMPLE.COM // -s 生成stash file用于存储kdc密匙, -r 指定realm name 可忽略
// 输入kdc管理密码, 别忘了哦 root
注意: 以下报错可用上面指令解决, 得先执行 # rm /var/kerberos/krb5kdc/principal*
Authenticating as principal root/admin@EXAMPLE.COM with password.
kadmin.local: Cannot find master key record in database while initializing kadmin.local interface
4. kerberos管理指令
4.1 把相关主机添加到环境中
addprinc -randkey host/classroom.example.com
addprinc -randkey host/server.example.com
addprinc -randkey host/desktop.example.com
4.2 给环境添加服务
addprinc -randkey nfs/server.example.com
addprinc -randkey nfs/desktop.example.com
4.3 创建使用服务的用户
addprinc student
==========================
名词解释:
principal 负责人
policy 政策
privileges 特权
attributes 特质
kadmin.local // 进入kerberos的 本地管理模式
: ? // 查看帮助命令
: addprinc caya/admin // 添加用户名/组 caya/admin
: delprinc caya/admin // 删除用户名/组 caya/admin
: addprinc -randkey host/client.host.com // 增加KDC用户端主机
: addprinc -randkey nfs/client.host.com // 可用nfs服务主机
: modprinc -maxrenewlife 1week caya/admin@EXAMPLE.COM # 修改caya 的 renewlife为7天
: listprincs // 查询所有用户
: cpw caya/admin // 修改用户密码
: exit // 退出kerberos
5. 配置测试远程管理模式
systemctl start krb5kdc
systemctl enable krb5kdc
systemctl start kadmin
systemctl enable kadmin
6. 防火墙配置:
firewall-cmd --add-service=kerberos --zone=trusted --permanent
firewall-cmd --add-service=kadmin --zone=trusted --permanent
firewall-cmd --add-service=kpasswd --zone=trusted --permanent
firewall-cmd --reload