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
