热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Kerberos实战入门指南第二部分

Kerberos的基本原理已在上文(Kerberos入门实战(1)--Kerberos基本原理)介绍过了,本文主要介绍Kerberos的安装及使用,文中使用到的软件版本

Kerberos 入门实战(2)-

Kerberos 的基本原理已在上文(Kerberos 入门实战(1)--Kerberos 基本原理)介绍过了,本文主要介绍 Kerberos 的安装及使用,文中使用到的软件版本:CentOS 7.6、Kerberos5 1.15.1。

1、规划

ip 主机名 用途
10.49.196.10 pxc1 Kerberos Server
10.49.196.11 pxc2 Kerberos Client
10.49.196.12 pxc3 Kerberos Client

三台机器上修改 /etc/hosts 文件:

10.49.196.10 pxc1
10.49.196.11 pxc2
10.49.196.12 pxc3

Kerberos Client 根据需要进行安装,安装后可以使用 kadmin 命令;对应在 Kerberos Server 上使用 kadmin.local 命令。

2、Kerberos Server 安装

在 10.49.196.10 上执行如下命令:

yum install krb5-server

2.1、配置 krb5.conf

根据需要修改 /etc/krb5.conf:

# Configuration snippets may be placed in this directory as well
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 = FILE:/etc/pki/tls/certs/ca-bundle.crt
 default_realm = ABC.COM
 default_ccache_name = KEYRING:persistent:%{uid}

[realms]
 ABC.COM = {
  kdc = 10.49.196.10
  admin_server = 10.49.196.10
 }

[domain_realm]
# .example.com = EXAMPLE.COM
# example.com = EXAMPLE.COM

相关参数说明:

[logging]:日志的位置
[libdefaults]:每种连接的默认配置
  dns_lookup_realm:是否通过 dns 查找需使用的 releam
  ticket_lifetime:凭证的有效时限,一般为 24 小时
  renew_lifetime:凭证最长可以被延期的时限,一般为一周。当凭证过期之后,对安全认证的服务后续访问就会失败
  forwardable:ticket 是否可以被转发(如果用户已经有了一个TGT,当他登入到另一个远程系统,KDC会为他重新创建一个TGT,而不需要让用户重新进行身份认证)
  rdns:如果为 true,则除根据 hostname 正向查找外,同时反向查找对应的 principal。如果 dns_canonicalize_hostname 设置为 false,则此标志不起作用。默认值为 true。
  pkinit_anchors:受信任锚(根)证书的位置;如果用户在命令行上指定X509_anchors,则不使用该配置。
  default_realm:默认的 realm,必须跟要配置的 realm 名称一致
  default_ccache_name:指定默认凭据缓存的名称。默认值为 DEFCCNAME
[realms]:列举使用的 realm
  kdc:kdc 运行的机器
  admin_server:kdc 数据库管理服务运行的机器
[domain_realm]:配置 domain name 或 hostname 对应的 releam

详细说明可参考官网文档:http://web.mit.edu/kerberos/krb5-latest/doc/admin/conf_files/krb5_conf.html。

2.2、配置 kdc.conf

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

[kdcdefaults]
 kdc_ports = 88
 kdc_tcp_ports = 88

[realms]
 ABC.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 = aes256-cts:normal aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal camellia256-cts:normal camellia12
8-cts:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal
 }

相关参数说明:

[kdcdefaults]:KDC 默认配置
kdc_ports:UDP 端口号
kdc_tcp_ports:TCP 端口号
[realms]:realm 数据库配置
master_key_type:主密钥的密钥类型;默认值为 aes256-cts-hmac-sha1-96。
acl_file:用于指定哪些用户可以访问 kdc 数据库的控制文件;如果不需要现在用户访问,该值可以设为空
dict_file:字典文件位置,该文件中的单词不能被用于密码;如果文件为空,或者没有为用户分配策略,则不会执行密码字典检查。
admin_keytab:KDC 进行校验的 keytab。
supported_enctypes:支持的加密方式,默认为 aes256-cts-hmac-sha1-96:normal aes128-cts-hmac-sha1-96:normal。

详细说明可参考官网文档:https://web.mit.edu/kerberos/krb5-latest/doc/admin/conf_files/kdc_conf.html。

2.3、配置 kdc.conf

根据需要修改 /var/kerberos/krb5kdc/kadm5.acl:

*/admin@ABC.COM *

Kerberos kadmind 使用该文件来管理对 Kerberos 数据库的访问权限。对于影响 principa 的操作,ACL 文件还控制哪些 principa 可以对哪些其他 principa 进行操作。文件格式如下:

principal  permissions  [target_principal  [restrictions] ]

ACL 文件中的行顺序很重要,会使用第一个匹配的行来设置用户权限。

相关参数说明:

principal:设置该 principal 的权限;principal 的每个部分都可以使用 *。
permissions: 权限,有如下一些权限:

a [Dis]allows the addition of principals or policies
c [Dis]allows the changing of passwords for principals
d [Dis]allows the deletion of principals or policies
e [Dis]allows the extraction of principal keys
i [Dis]allows inquiries about principals or policies
l [Dis]allows the listing of all principals or policies
m [Dis]allows the modification of principals or policies
p [Dis]allows the propagation of the principal database (used in Incremental database propagation)
s [Dis]allows the explicit setting of the key for a principal
x Short for admcilsp. All privileges (except e)
* Same as x.

target_principal:目标 principal,目标 principal 的每个部分都可以使用 *。
restrictions:针对权限的一些补充限制,如:限制创建的 principal 的票据最长时效。

 详细说明可参考官网文档:https://web.mit.edu/kerberos/krb5-latest/doc/admin/conf_files/kadm5_acl.html

2.4、创建 Kerberos 数据库

 执行如下命令:

kdb5_util create -s -r ABC.COM

-s:表示生成 stash file,并在其中存储 master server key(krb5kdc)
-r:指定 realm name

Kerberos 数据库的目录为:/var/kerberos/krb5kdc,如果需要重建数据库,可删除改目录。

2.5、启停 Kerberos 服务

启动:

systemctl start krb5kdc
systemctl start kadmin

停止:

systemctl stop krb5kdc
systemctl stop kadmin

2.6、kadmin.local

Kerberos 服务机器上可以使用 kadmin.local 来执行各种管理的操作。进入 kadmin.local:

[root@pxc1 kerberos]# kadmin.local 
Authenticating as principal root/admin@ABC.COM with password.
kadmin.local:  

常用操作:

操作 描述 例子
add_principal, addprinc, ank 增加 principal add_principal -rnadkey test@ABC.COM
delete_principal, delprinc 删除 principal delete_principal test@ABC.COM
modify_principal, modprinc 修改 principal modify_principal test@ABC.COM
rename_principal, renprinc 重命名 principal rename_principal test@ABC.COM test2@ABC.COM
get_principal, getprinc 获取 principal get_principal test@ABC.COM
list_principals, listprincs, get_principals, getprincs 显示所有 principal listprincs
ktadd, xst 导出条目到 keytab xst -k /root/test.keytab test@ABC.COM

这里先创建一个 principal,方便 Kerberos Client 登录 kadmin:

kadmin.local:  add_principal root/admin@ABC.COM
WARNING: no policy specified for root/admin@ABC.COM; defaulting to no policy
Enter password for principal "root/admin@ABC.COM": 
Re-enter password for principal "root/admin@ABC.COM": 
Principal "root/admin@ABC.COM" created.
kadmin.local:  

输入两次密码,创建成功。

3、Kerberos Client 安装

在 10.49.196.11、10.49.196.12 上执行如下命令:

yum install krb5-workstation

3.1、配置 krb5.conf

从 10.49.196.10 上拷贝 /etc/krb5.conf 并覆盖本地的 /etc/krb5.conf。

3.2、kadmin

Kerberos 客户端机器上可以使用 kadmin 来执行各种管理的操作。需先在 Kerbers Server 上创建登录的 principal,默认为 {当前用户}/admin@realm;

[root@pxc2 krb5]# kadmin 
Authenticating as principal root/admin@ABC.COM with password.
Password for root/admin@ABC.COM: 
kadmin:  

输入密码,登录成功。kadmin 的操作和 kadmin.local 类似。

3.3、kinit(在客户端认证用户)

[root@pxc2 krb5]# kinit root/admin@ABC.COM
Password for root/admin@ABC.COM:

输入密码认证成功。

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

[root@pxc2 krb5]# klist
Ticket cache: KEYRING:persistent:0:0
Default principal: root/admin@ABC.COM

Valid starting       Expires              Service principal
2021-12-03T17:23:07  2021-12-04T17:23:07  krbtgt/ABC.COM@ABC.COM

3.5、kdestroy(删除当前的认证缓存)

[root@pxc2 krb5]# kdestroy

 


推荐阅读
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • Windows7 64位系统安装PLSQL Developer的步骤和注意事项
    本文介绍了在Windows7 64位系统上安装PLSQL Developer的步骤和注意事项。首先下载并安装PLSQL Developer,注意不要安装在默认目录下。然后下载Windows 32位的oracle instant client,并解压到指定路径。最后,按照自己的喜好对解压后的文件进行命名和压缩。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 本文介绍了一个适用于PHP应用快速接入TRX和TRC20数字资产的开发包,该开发包支持使用自有Tron区块链节点的应用场景,也支持基于Tron官方公共API服务的轻量级部署场景。提供的功能包括生成地址、验证地址、查询余额、交易转账、查询最新区块和查询交易信息等。详细信息可参考tron-php的Github地址:https://github.com/Fenguoz/tron-php。 ... [详细]
  • 本文介绍了在CentOS 6.4系统中更新源地址的方法,包括备份现有源文件、下载163源、修改文件名、更新列表和系统,并提供了相应的命令。 ... [详细]
  • 图像因存在错误而无法显示 ... [详细]
  • 本文介绍了使用Spark实现低配版高斯朴素贝叶斯模型的原因和原理。随着数据量的增大,单机上运行高斯朴素贝叶斯模型会变得很慢,因此考虑使用Spark来加速运行。然而,Spark的MLlib并没有实现高斯朴素贝叶斯模型,因此需要自己动手实现。文章还介绍了朴素贝叶斯的原理和公式,并对具有多个特征和类别的模型进行了讨论。最后,作者总结了实现低配版高斯朴素贝叶斯模型的步骤。 ... [详细]
  • Hibernate延迟加载深入分析-集合属性的延迟加载策略
    本文深入分析了Hibernate延迟加载的机制,特别是集合属性的延迟加载策略。通过延迟加载,可以降低系统的内存开销,提高Hibernate的运行性能。对于集合属性,推荐使用延迟加载策略,即在系统需要使用集合属性时才从数据库装载关联的数据,避免一次加载所有集合属性导致性能下降。 ... [详细]
  • LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ... [详细]
  • Sleuth+zipkin链路追踪SpringCloud微服务的解决方案
    在庞大的微服务群中,随着业务扩展,微服务个数增多,系统调用链路复杂化。Sleuth+zipkin是解决SpringCloud微服务定位和追踪的方案。通过TraceId将不同服务调用的日志串联起来,实现请求链路跟踪。通过Feign调用和Request传递TraceId,将整个调用链路的服务日志归组合并,提供定位和追踪的功能。 ... [详细]
author-avatar
嘟嘟仔2286768
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有