Centos7.9安装kerberos

2024-06-21 00:20
文章标签 安装 centos7.9 kerberos

本文主要是介绍Centos7.9安装kerberos,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

文章目录

  • 一、背景
  • 二、Kerberos安装部署
    • 2.1kerberos服务端必要软件安装
    • 2.2配置krb5.conf
    • 2.3配置kdc.conf
    • 2.4配置kadm5.acl
    • 2.5创建Kerberos数据库
    • 2.6启动Kerberos服务
    • 2.7创建Kerberos管理员principal
    • 2.8客户端安装kerberos
    • 2.9Kerberos功能验证
  • 本人其他相关文章链接

一、背景

亲测可用,之前搜索了很多博客,啥样的都有,就是不介绍报错以及配置用处,根本不懂照抄那些配置是干啥的,稀里糊涂的按照博客搭完也跑不起来,因此记录这个。

项目背景:公司项目当前采用http协议+shiro+mysql的登录认证方式,而现在想支持ldap协议认证登录然后能够访问自己公司的项目网站。

举例说明:假设我们公司有自己的门户网站,现在我们收购了一家公司,他们数据库采用ldap存储用户数据,那么为了他们账户能登陆我们公司项目所以需要集成,而不是再把他们的账户重新在mysql再创建一遍,万一人家有1W个账户呢,不累死了且也不现实啊。

需要安装openldap+kerberos,且ldap和kerberos安装在同一台服务器上,当前版本如下:

  • centos 7.9
  • openldap 2.4.44
  • phpldapadmin 1.2.5
  • 服务器IP:10.110.38.162
  • Kerberos :Kerberos 5 release 1.15.1

本博客参考的博客是:

  • ① Openldap安装部署
  • ② Kerberos基本原理、安装部署及用法
  • ③ Openldap集成Kerberos

注意:这个文章是真实可行的,但是有执行顺序,一定要先安装“Openldap安装部署”+“Kerberos基本原理、安装部署及用法”之后,确保安装无误后再去安装“Openldap集成Kerberos”。
在这里插入图片描述

我当时犯的毛病就是前两个没完全照着文档安装完成就直接安装的第三个,然后出现各种问题,我还不知道为点啥。人家博客都说了要先安装前两个,再看这个“Kerberos基本原理、安装部署及用法”。所以一定要注意安装顺序,遇到不懂得配置也没事先照着安。

二、Kerberos安装部署

2.1kerberos服务端必要软件安装

# yum -y install krb5-server openldap-clients

在安装完上述的软件之后,会在KDC主机上生成配置文件/etc/krb5.conf和/var/kerberos/krb5kdc/kdc.conf。

2.2配置krb5.conf

/etc/krb5.conf:包含Kerberos的配置。例如,KDC的位置,Kerberos的admin realms等。需要所有使用的Kerberos的机器上的配置文件都同步。这里仅列举需要的基本配置。(具体配置请参考附件文件)
请替换DOMAIN.COM为自定义域名:(本文档使用的是NODE3.COM)

# Configuration snippets may be placed in this directory as well
includedir /etc/krb5.conf.d/[logging]default = FILE:/var/log/krb5libs.logkdc = FILE:/var/log/krb5kdc.logadmin_server = FILE:/var/log/kadmind.log[libdefaults]dns_lookup_realm = falseticket_lifetime = 24h#renew_lifetime = 7dforwardable = truerdns = falsepkinit_anchors = FILE:/etc/pki/tls/certs/ca-bundle.crtdefault_realm = NODE3.COM
# default_ccache_name = KEYRING:persistent:%{uid}[realms]NODE3.COM = {# kdc = kdc.node.com# admin_server = kdc.node.comkdc = 127.0.0.1admin_server = 127.0.0.1ldap_servers = ldap://127.0.0.1:389# kdc = node3.com:88# admin_server = node3.com:749# default_domain = NODE3.COM}[domain_realm].node3.com = NODE3.COMnode3.com = NODE3.COM

说明

  • [logging]:表示server端的日志的打印位置
  • [libdefaults]:每种连接的默认配置,需要注意以下几个关键的小配置
    • default_realm = NODE3.COM 默认的realm,必须跟要配置的realm的名称一致。
    • udp_preference_limit = 1 禁止使用udp,可以防止一个Hadoop中的错误
    • ticket_lifetime表明凭证生效的时限,一般为24小时
    • renew_lifetime表明凭证最长可以被延期的时限,一般为一周。当凭证过期之后,对安全认证的服务的后续访问则会失败。
  • [realms]:列举使用的realm。
    • kdc:代表kdc的位置,格式是:机器hostname或ip地址
    • admin_server:代表admin的位置,格式是:机器hostname或ip地址
    • default_domain:代表默认的域名
  • [appdefaults]:可以设定一些针对特定应用的配置,覆盖默认配置。
      注:这里需要分发krb5.conf至所有client主机

2.3配置kdc.conf

默认放在/var/kerberos/krb5kdc/kdc.conf

[kdcdefaults]kdc_ports = 88kdc_tcp_ports = 88[realms]NODE3.COM = {#master_key_type = aes256-ctsacl_file = /var/kerberos/krb5kdc/kadm5.acldict_file = /usr/share/dict/wordsadmin_keytab = /var/kerberos/krb5kdc/kadm5.keytabsupported_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:normalmax_life = 25hmax_renewable_life = 8d
}

说明

  • NODE3.COM:是设定的realms,名字随意。Kerberos可以支持多个realms,会增加复杂度。一般为大写。
  • max_renewable_life = 8d 涉及到是否能进行ticket的renew必须配置。
  • master_key_type:和supported_enctyps默认使用aes256-cts。由于,JAVA使用aes256-cts验证方式需要安装额外的jar包,推荐不使用。
  • acl_file:标注了admin的用户权限。文件格式是Kerberos_principal permissions [target_principal] [restrictions]支持通配符等。
  • admin_keytab:KDC进行校验的keytab。
  • supported_enctypes:支持的校验方式。注意把aes256-cts去掉。

2.4配置kadm5.acl

修改服务端上的配置文件/var/kerberos/krb5kdc/kadm5.acl,以允许具备匹配条件的admin用户进行远程登录权限

*/admin@NODE3.COM	*

说明

  • 标注了admin的用户权限,需要用户自己创建。文件格式是Kerberos_principal permissions [target_principal] [restrictions]支持通配符等。最简单的写法是*/admin@NODE3.COM * 代表名称匹配*/admin@NODE3.COM都认为是admin,权限是*代表全部权限。

2.5创建Kerberos数据库

在服务器上对数据库进行初始化,默认的数据库路径为/var/kerberos/krb5kdc,如果需要重建数据库,将该目录下的principal相关的文件删除即可,请牢记数据库密码(为了好记建议密码统一用123456)。

kdb5_util create -r NODE3.COM -s

说明

  • [-s] 表示生成stash file,并在其中存储master server key(krb5kdc)
  • [-r] 来指定一个realm name,当krb5.conf中定义了多个realm时使用
  • 当Kerberos database创建好了之后,在/var/kerberos/中可以看到生成的principal相关文件

2.6启动Kerberos服务

# 启动服务命令
systemctl start krb5kdc
systemctl start kadmin# 加入开机启动项
systemctl enable krb5kdc
systemctl enable kadmin

2.7创建Kerberos管理员principal

# 需要设置两次密码
kadmin.local -q "addprinc root/admin"

pincipal的名字的第二部分是admin,那么根据之前配置的kadm5.acl文件,该principal就拥有administrative privileges,这个账号将会被CDH用来生成其他用户/服务的principal。 注意:需要先kinit保证已经有principal缓存。

[root@master ~]# kinit root/admin
Password for root/admin@NODE3.COM: 
[root@master ~]# klist 				//查看当前票据,出现以下证明安装kerberos成功
Ticket cache: KEYRING:persistent:0:0
Default principal: root/admin@NODE3.COMValid starting       Expires              Service principal
07/14/2020 11:51:17  07/15/2020 11:51:16  krbtgt/NODE3.COM@NODE3.COMrenew until 07/21/2020 11:51:16

Kerberos客户端支持两种,一是使用principal + Password,二是使用principal + keytab。前者适合用户进行交互式应用,例如hadoop fs -ls 这种,后者适合服务,例如yarn的rm、nm等。principal + keytab就类似于ssh免密码登录,登录时不需要密码了。

2.8客户端安装kerberos

# yum -y install krb5-devel krb5-workstation

在安装完上述的软件之后,在kerberos客户端主机上生成配置文件/etc/krb5.conf。 把服务端的/etc/krb5.conf文件拷贝到其他各节点客户端同路径/etc/krb5.conf中,此操作只适用于集群部署,单机部署可略仅供了解。

2.9Kerberos功能验证

在这里插入图片描述
当出现以上内容证明kerberos安装成功,具体kerberos的其它命令操作可自行查询验证,在此不具体阐述。

本人其他相关文章链接

1.Centos7.9安装openldap
2.Centos7.9安装kerberos
3.Openldap集成Kerberos
4.Centos7.9安装phpldapadmin
5.java连接ldap实现用户查询功能
6.java连接kerberos用户认证
7.javax.security.auth.login.LoginException: Unable to obtain password from user
8.javax.security.auth.login.LoginException: null (68)
9.javax.security.auth.login.LoginException: Message stream modified (41)
10.javax.security.auth.login.LoginException: Checksum failed
11.javax.security.auth.login.LoginException: No CallbackHandler available to garner authentication info
12.javax.security.auth.login.LoginException: Cannot locate KDC
13.javax.security.auth.login.LoginException: Receive timed out
14.java: 无法访问org.springframework.context.ConfigurableApplicationContext
15.LDAP: error code 34 - invalid DN
16.LDAP: error code 32 - No Such Object
17.java: 无法访问org.springframework.ldap.core.LdapTemplate

这篇关于Centos7.9安装kerberos的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1079680

相关文章

龙蜥操作系统Anolis OS-23.x安装配置图解教程(保姆级)

《龙蜥操作系统AnolisOS-23.x安装配置图解教程(保姆级)》:本文主要介绍了安装和配置AnolisOS23.2系统,包括分区、软件选择、设置root密码、网络配置、主机名设置和禁用SELinux的步骤,详细内容请阅读本文,希望能对你有所帮助... ‌AnolisOS‌是由阿里云推出的开源操作系统,旨

Ubuntu系统怎么安装Warp? 新一代AI 终端神器安装使用方法

《Ubuntu系统怎么安装Warp?新一代AI终端神器安装使用方法》Warp是一款使用Rust开发的现代化AI终端工具,该怎么再Ubuntu系统中安装使用呢?下面我们就来看看详细教程... Warp Terminal 是一款使用 Rust 开发的现代化「AI 终端」工具。最初它只支持 MACOS,但在 20

mysql-8.0.30压缩包版安装和配置MySQL环境过程

《mysql-8.0.30压缩包版安装和配置MySQL环境过程》该文章介绍了如何在Windows系统中下载、安装和配置MySQL数据库,包括下载地址、解压文件、创建和配置my.ini文件、设置环境变量... 目录压缩包安装配置下载配置环境变量下载和初始化总结压缩包安装配置下载下载地址:https://d

LinuxMint怎么安装? Linux Mint22下载安装图文教程

《LinuxMint怎么安装?LinuxMint22下载安装图文教程》LinuxMint22发布以后,有很多新功能,很多朋友想要下载并安装,该怎么操作呢?下面我们就来看看详细安装指南... linux Mint 是一款基于 Ubuntu 的流行发行版,凭借其现代、精致、易于使用的特性,深受小伙伴们所喜爱。对

Linux(Centos7)安装Mysql/Redis/MinIO方式

《Linux(Centos7)安装Mysql/Redis/MinIO方式》文章总结:介绍了如何安装MySQL和Redis,以及如何配置它们为开机自启,还详细讲解了如何安装MinIO,包括配置Syste... 目录安装mysql安装Redis安装MinIO总结安装Mysql安装Redis搜索Red

python安装完成后可以进行的后续步骤和注意事项小结

《python安装完成后可以进行的后续步骤和注意事项小结》本文详细介绍了安装Python3后的后续步骤,包括验证安装、配置环境、安装包、创建和运行脚本,以及使用虚拟环境,还强调了注意事项,如系统更新、... 目录验证安装配置环境(可选)安装python包创建和运行Python脚本虚拟环境(可选)注意事项安装

gradle安装和环境配置全过程

《gradle安装和环境配置全过程》本文介绍了如何安装和配置Gradle环境,包括下载Gradle、配置环境变量、测试Gradle以及在IntelliJIDEA中配置Gradle... 目录gradle安装和环境配置1 下载GRADLE2 环境变量配置3 测试gradle4 设置gradle初始化文件5 i

Jsoncpp的安装与使用方式

《Jsoncpp的安装与使用方式》JsonCpp是一个用于解析和生成JSON数据的C++库,它支持解析JSON文件或字符串到C++对象,以及将C++对象序列化回JSON格式,安装JsonCpp可以通过... 目录安装jsoncppJsoncpp的使用Value类构造函数检测保存的数据类型提取数据对json数

mac安装redis全过程

《mac安装redis全过程》文章内容主要介绍了如何从官网下载指定版本的Redis,以及如何在自定义目录下安装和启动Redis,还提到了如何修改Redis的密码和配置文件,以及使用RedisInsig... 目录MAC安装Redis安装启动redis 配置redis 常用命令总结mac安装redis官网下

如何安装 Ubuntu 24.04 LTS 桌面版或服务器? Ubuntu安装指南

《如何安装Ubuntu24.04LTS桌面版或服务器?Ubuntu安装指南》对于我们程序员来说,有一个好用的操作系统、好的编程环境也是很重要,如何安装Ubuntu24.04LTS桌面... Ubuntu 24.04 LTS,代号 Noble NumBAT,于 2024 年 4 月 25 日正式发布,引入了众