kerberos服务器搭建
Kerberos是一种网络身份验证协议。它旨在通过使用秘密密钥加密为客户端/服务器应用程序提供强身份验证。
一. 安装Kerberos服务器
二. 安装Kerberos客户端
一. 安装Kerberos服务器
1. 准备工作
确认添加主机名解析到 /etc/hosts 文件中:
192.168.56.100 hadoop1
192.168.56.101 hadoop2
服务器规划:
主节点(Kerberos Master) | 客户端(Kerberos Client) |
---|---|
hadoop1 | hadoop1 |
hadoop2 |
2. yum安装kerberos
yum -y install krb5-server krb5-lib krb5-workstation
安装完成后需要修改三个配置文件:
- /var/kerberos/krb5kdc/kdc.conf
- /var/kerberos/krb5kdc/kadm5.acl
- /etc/krb5.conf
3.修改配置文件
修改 /var/kerberos/krb5kdc/kdc.conf
[kdcdefaults]
kdc_ports = 88
kdc_tcp_ports = 88
[realms]
GONGHF.COM = {
#master_key_type = aes256-cts
acl_file = /var/kerberos/krb5kdc/kadm5.acl
dict_file = /usr/share/dict/words
admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab
supported_enctypes = 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
}
配置说明:
[kdcdefaults]
kdc_ports :指定KDC的默认端口。
kdc_tcp_ports :指定KDC的TCP协议默认端口。
[realms]
GONGHF.COM :是设定的kerberos域,表示KDC所管辖的范围。(需要根据需要修改)
acl_file :标注了admin的用户权限的文件,若文件不存在,需要用户自己创建。
dict_file :该参数指向包含潜在可猜测或可破解密码的文件。
admin_keytab :KDC 进行校验的 keytab。
supported_enctypes :指定此KDC支持的各种加密类型。
修改 /var/kerberos/krb5kdc/kadm5.acl
*/admin@GONGHF.COM *
配置说明:
指定*/admin@GONGHF.COM用户为管理员用户!拥有全部权限。
上述参数只有两列,第一列为用户名,第二列为权限分配。
文件格式是:Kerberos_principal permissions [target_principal] [restrictions]。
*/admin@GONGHF.COM :表示以"/admin@GONGHF.COM.COM"结尾的用户。
/etc/krb5.conf、/var/kerberos/krb5kdc/kadm5.acl、/var/kerberos/krb5kdc/kdc.conf 中的kerberos域必须一致(GONGHF.COM)。
修改 /etc/krb5.conf
包含KDC的位置,需要所有使用的Kerberos的机器上的配置文件都同步
includedir /etc/krb5.conf.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
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
rdns = false
pkinit_anchors = /etc/pki/tls/certs/ca-bundle.crt
default_realm = GONGHF.COM
[realms]
GONGHF.COM = {
kdc = hadoop1:88 #主机名:端口号
admin_server = hadoop1:749 #主机名:端口号
default_domain = GONGHF.COM
}
[domain_realm]
.gonghf.com = GONGHF.COM
gonghf.com = GONGHF.COM
[kdc]
profile = /var/kerberos/krb5kdc/kdc.conf
配置说明:
[logging]
设置日志的路径
[libdefaults]
dns_lookup_realm :DNS查找域名。
ticket_lifetime :凭证生效的时限(7d | 2h | 20s)。
renew_lifetime :凭证最长可以被延期的时限。
forwardable :转发票据,如果具有TGT的用户登陆到远程系统,则KDC可以颁发新的TGT,不需要再次进行身份验证。
pkinit_anchors :在KDC中配置pkinit的位置。
default_realm :设置 Kerberos 应用程序的默认领域。
[realms]
指定DNS域名和Kerberos域名之间映射关系,注意大小写!!!
[domain_realm]
kdc的配置信息。即指定kdc.conf的位置。
4.初始化数据库
kdb5_util create -r GONGHF.COM -s
注意修改自己所使用的域
这里需要输入一个管理KDC服务器的密码!忘记的话你就只能重新初始化KDC数据库。
初始化完成后/var/kerberos/krb5kdc/下生成principal相关文件。
默认的数据库名字都是principal。可以使用-d指定数据库名字。
- principal :Kerberos数据库文件
- principal.kadm5 :Kerberos数据库管理文件
- principal.kadm5.lock :数据库锁管理文件
- principal.ok :Kerberos数据库文件
如果遇到数据库已经存在的提示,可以把/var/kerberos/krb5kdc/目录下的principal的相关文件都删除掉。
5.启动服务器
启动KDC服务器
systemctl enable krb5kdc #设置开启启动
systemctl start krb5kdc #启功KDC服务器
systemctl status krb5kdc #查看服务器状态
启动Kerberos服务器
systemctl enable kadmin #设置开启启动
systemctl start kadmin #启动Kerberos服务器
systemctl status kadmin #查看服务器状态
6.KDC 服务器上添加超级管理员账户
- kadmin.local 进入管理界面
- listprincs 查看所有用户
- addprinc root/admin 为KDC添加一个管理员用户,在这里需要输入两次密码!
- quit 退出管理界面
二. 安装Kerberos客户端
1. yum安装Kerberos客户端
yum install -y krb5-lib krb5-workstation
2. 将服务端的配置文件拷贝到客户端上
scp /etc/krb5.conf root@hadoop2:$PWD
3. 登陆服务器
klist 查询登录状态
kinit root/admin :以管理员登陆,需要输入刚才创建root/admin的密码
再次输入 klist 出现以下信息登陆成功!!!
Valid starting :登陆开始时间
Expires :票据到期时间
到此Kerberos服务器安装完成!!!