首页 > 系统相关 >Centos7.9安装kerberos

Centos7.9安装kerberos

时间:2025-01-15 22:32:34浏览次数:1  
标签:Kerberos admin COM kerberos Centos7.9 NODE3 安装

@

目录

一、背景

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

项目背景:公司项目当前采用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”。

我当时犯的毛病就是前两个没完全照着文档安装完成就直接安装的第三个,然后出现各种问题,我还不知道为点啥。人家博客都说了要先安装前两个,再看这个“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.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 = NODE3.COM
# default_ccache_name = KEYRING:persistent:%{uid}

[realms]
 NODE3.COM = {
 # kdc = kdc.node.com
 # admin_server = kdc.node.com
  kdc = 127.0.0.1
  admin_server = 127.0.0.1
  ldap_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.COM
 node3.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 = 88
 kdc_tcp_ports = 88

[realms]
 NODE3.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 camellia128-cts:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal
  max_life = 25h
  max_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.COM

Valid starting       Expires              Service principal
07/14/2020 11:51:17  07/15/2020 11:51:16  krbtgt/NODE3.COM@NODE3.COM
    renew 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
18.windows server2016搭建AD域服务器
19.java连接AD(Microsoft Active Directory)模拟用户登录认证

重要信息


标签:Kerberos,admin,COM,kerberos,Centos7.9,NODE3,安装
From: https://www.cnblogs.com/bigcat26/p/18673833

相关文章

  • Opencv 的下载安装和VisualStudio配置
    Opencv的下载安装和VisualStudio配置1opencv-windows的下载1.1github直接下载链接(需要外网链接)最新4.10.0版本的下载链接为:https://github.com/opencv/opencv/releases/download/4.10.0/opencv-4.10.0-windows.exe1.2官网下载其他版本官网链接:https://opencv.org/rele......
  • 黑群晖最新安装方式|RR新手
    引导盘制作1、下载最新的黑群晖引导镜像原版链接:wjz304/rr百度云盘:链接:https://pan.baidu.com/s/12z3v_kVYUDdWNzWBWN_NTQ?pwd=e67k2、将下载好的压缩包解压,得到一个后缀为img的文件。3、使用写盘工具Rufus将镜像文件写到u盘中,点击选择,找到解压好后缀为img的文件,其他保持......
  • 【Node.js渗透】安装与检测基于Electron的应用程序
    免责声明:⽂中所涉及的技术、思路和⼯具仅供以安全为⽬的的学习交流使⽤,任何⼈不得将其⽤于⾮法⽤途以及盈利等⽬的,否则后果⾃⾏承担。所有渗透都需获取授权!三、说明传送门:......
  • Windows pyenv管理多python 版本环境安装
    前言全局说明Windowspython多版本安装,因为开发功能和客户要求,py脚本会被要求不同版本,但是命令行输入时同一个名字只能对应一个版本,如果多个版本,那只能改名字。比如:python3.8python3.9有什么方法用一个python使用不同版本呢?一、说明1.1环境:Windows11家庭版23H2......
  • 【新教程】Ubuntu 24.04 单节点安装slurm
    背景网上教程老旧,不适用。详细步骤1、安装slurmsudoaptinstallslurm-wlmslurm-wlm-doc-y检查是否安装成功:slurmd--version如果得到slurm-wlm23.11.4,表明安装成功。2、配置slurm。使用命令:sudovi/etc/slurm/slurm.conf在其中输入以下内容:ClusterName=cool......
  • 安装 MySQL 数据库
    安装MySQL数据库下载地址:https://downloads.mysql.com/archives/community/解压mysql-8.0.20-winx64.zip到MySQL文件夹中在MySQL目录下、新建一个my.ini文件(MySQL的配置文件)[mysqld]basedir=D:/ProgramFiles/MySQLdatadir=D:/ProgramFiles/MySQL/d......
  • 2025 年宣布一件大事,Oracle 一键安装脚本开源了!
    大家好,这里是公众号DBA学习之路,致力于分享数据库领域相关知识。目录前言Oracle一键安装脚本脚本下载环境信息安装前准备Centos7.9Redhat8.10脚本参数一键安装11GR219C写在最后前言你没看错,就是Oracle数据库一键安装脚本部分开源了!之前很多朋友咨询我脚本......
  • Debian 安装 Docker
    卸载已有Docker如果你之前安装过DockerEngine之前,你需要卸载旧版本,避免冲突:forpkgindocker.iodocker-docdocker-composepodman-dockercontainerdrunc;dosudoapt-getremove$pkg;done安装方法使用官方安装脚本自动安装(推荐使用)下载官方脚本curl-fsSL......
  • MSI安装包制作工具 Advanced Installer v21.9 注册码
    AdvancedInstaller是一款功能强大、可生成符合MSWindows认证的WindowsInstaller的MSI安装包制作工具,具有友好的图形用户界面,直观而且非常简单的界面,创建MSI文件包非常方便,用户只需添加文件,修改名称,添加按钮就可以了,无需任何脚本方面的知识。该版本已内置注册码,可以使用......
  • 关于Ubuntu安装Mujoco的记录
    前言这篇博客主要用于记录一些关于mujoco如何安装、urdf模型如何导入以及如何进行仿真的记录的事情,特此记录,一方面便于日后自己的温故学习,另一方面也比便于大家的学习和交流。如有不对之处,欢迎评论区指出错误,你我共同进步学习!正文让我们安装mujoco1、安装----安装mojoco----......