首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Hadoop HDFS-认证(Kerberos) 部署与配置

Hadoop HDFS-认证(Kerberos) 部署与配置

作者头像
运维小路
发布2025-07-27 10:45:27
发布2025-07-27 10:45:27
21700
代码可运行
举报
文章被收录于专栏:运维小路运维小路
运行总次数:0
代码可运行

作者介绍:简历上没有一个精通的运维工程师,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

中间件,我给它的定义就是为了实现某系业务功能依赖的软件,包括如下部分:

Web服务器

代理服务器

ZooKeeper

Kafka

RabbitMQ

Hadoop HDFS(本章节)

上个小节,我们介绍了kerberos这个网络认证协议,本小节我们就来进行kerberos的部署。

1.安装配置kerberos

这里主要的软件核心如软件是:krb5-server,提供 KDC(密钥分发中心)服务,包含核心的 Kerberos 认证服务。

代码语言:javascript
代码运行次数:0
运行
复制
# 安装 KDC (以 MIT Kerberos 为例)
yum install krb5-server krb5-libs krb5-workstation

# 配置 /etc/krb5.conf
[logging]
 default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log

[libdefaults]
 default_realm = EXAMPLE.COM
 dns_lookup_realm = false
 dns_lookup_kdc = false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true

[realms]
 EXAMPLE.COM = {
  kdc = kdc-server.example.com
  admin_server = kdc-server.example.com
 }

[domain_realm]
 .example.com = EXAMPLE.COM
 example.com = EXAMPLE.COM
  • default_realm:客户端未指定领域时使用的默认领域(必须大写
  • dns_lookup_*:设为 false 避免依赖 DNS,需手动配置 KDC
  • ticket_lifetime:用户票据有效期(建议 24 小时)
  • renew_lifetime:票据总生命周期(续订上限)
  • forwardable:允许代理认证(如 SSH 跳转)
  • EXAMPLE.COM:领域名称(需与 default_realm 一致)
  • kdc:KDC 服务器的主机名或 IP(可端口 kdc = host:88
  • admin_server:KDC 管理服务地址(默认端口 749)
  • 注意:这里不使用dns,就必须通过hosts来实现。

2.初始化数据库

创建 Kerberos 数据库(存储所有主体和密钥),当然我这里并没有输入密码,而是直接回车,所以这里的密码是空密码,当然我这里测试没有问题,生产建议还是需要配置密码。

代码语言:javascript
代码运行次数:0
运行
复制
[root@localhost hadoop-2.10.2]# kdb5_util create -s
Loading random data
Initializing database '/var/kerberos/krb5kdc/principal' for realm 'EXAMPLE.COM',
master key name 'K/M@EXAMPLE.COM'
You will be prompted for the database Master Password.
It is important that you NOT FORGET this password.
Enter KDC database master key: 
Re-enter KDC database master key to verify: 

3.启动服务

  • krb5kdc:密钥分发中心服务(处理票据请求)
  • kadmin:Kerberos 管理服务(管理主体和策略)
代码语言:javascript
代码运行次数:0
运行
复制
systemctl start krb5kdc kadmin
systemctl enable krb5kdc kadmin

4.设置管理员密码

  • 创建管理员主体 admin/admin,这是 Kerberos 系统的超级用户,密码用于后续管理操作(添加/删除主体等),kadmin.local 直接在 KDC 上运行,无需认证。
  • 这里必须要输入密码,无法直接回车跳过,后面也会用到这里的密码。
代码语言:javascript
代码运行次数:0
运行
复制
[root@localhost hadoop-2.10.2]# kadmin.local -q "addprinc admin/admin"
Authenticating as principal root/admin@EXAMPLE.COM with password.
WARNING: no policy specified for admin/admin@EXAMPLE.COM; defaulting to no policy
Enter password for principal "admin/admin@EXAMPLE.COM": 
Re-enter password for principal "admin/admin@EXAMPLE.COM": 
Principal "admin/admin@EXAMPLE.COM" created.
[root@localhost hadoop-2.10.2]# 
#设置密码
  • primary = admin(标识管理员身份)
  • instance = admin(区分管理员类型)
  • 完整名称:admin/admin@EXAMPLE.COM(假设领域为 EXAMPLE.COM)

5.配置hosts和acl

  1. ACL 文件 (kadm5.acl)
    • */admin@EXAMPLE.COM * 表示所有 admin 实例的主体都有完全管理权限
    • 格式:主体 权限* 代表所有权限)
  2. Hosts 文件
    • kdc-server.example.com 解析到 127.0.0.1
    • 解决单机环境 DNS 解析问题
    • 确保 Kerberos 客户端能找到 KDC 服务
代码语言:javascript
代码运行次数:0
运行
复制
[root@localhost hadoop-2.10.2]# echo "*/admin@EXAMPLE.COM *" > /var/kerberos/krb5kdc/kadm5.acl
[root@localhost hadoop-2.10.2]# echo "127.0.0.1 kdc-server.example.com" >> /etc/hosts

6 验证

进行票据验证,列出当前票据。默认票据有效期24小时。

代码语言:javascript
代码运行次数:0
运行
复制
root@localhost hadoop-2.10.2]# kinit admin/admin
Password for admin/admin@EXAMPLE.COM: 
[root@localhost hadoop-2.10.2]# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: admin/admin@EXAMPLE.COM
Valid starting       Expires              Service principal
07/20/2025 23:14:31  07/21/2025 23:14:31  krbtgt/EXAMPLE.COM@EXAMPLE.COM

到这里我们的Kerberos就算部署完成,但是这里的和我们的HDFS还没产生任何关系,因为Kerberos不仅仅支持HDFS,他还支持很多软件,只是在HDFS里面使用最广泛,所以我们拿到这里来讲解。

Kerberos 的通用性使其成为企业级环境中身份认证的首选方案,几乎所有主流的分布式系统、数据库、应用服务器和云服务都提供了对 Kerberos 的支持。在 Hadoop 生态系统中,Kerberos 更是安全认证的标准配置,用于保护集群免受未授权访问。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-07-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维小路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.安装配置kerberos
  • 这里主要的软件核心如软件是:krb5-server,提供 KDC(密钥分发中心)服务,包含核心的 Kerberos 认证服务。
  • 2.初始化数据库
  • 3.启动服务
  • 4.设置管理员密码
  • 5.配置hosts和acl
  • 6 验证
  • 进行票据验证,列出当前票据。默认票据有效期24小时。
  • 到这里我们的Kerberos就算部署完成,但是这里的和我们的HDFS还没产生任何关系,因为Kerberos不仅仅支持HDFS,他还支持很多软件,只是在HDFS里面使用最广泛,所以我们拿到这里来讲解。
  • Kerberos 的通用性使其成为企业级环境中身份认证的首选方案,几乎所有主流的分布式系统、数据库、应用服务器和云服务都提供了对 Kerberos 的支持。在 Hadoop 生态系统中,Kerberos 更是安全认证的标准配置,用于保护集群免受未授权访问。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档