1. 首页 > Hadoop教程 > 正文

大数据教程FG112-Hadoop安全管理与Kerberos实战

目录大纲

Part01-基础概念与理论知识

1.1 Hadoop安全概述

Hadoop安全主要包括认证、授权、加密和审计四个方面。认证是确认用户身份的过程,授权是控制用户访问权限的过程,加密是保护数据传输和存储安全的过程,审计是记录用户操作的过程。更多视频教程www.fgedu.net.cn

1.2 Kerberos认证原理

  • Kerberos是一种网络认证协议,使用密钥加密技术为客户端/服务器应用程序提供强认证
  • Kerberos认证过程包括:客户端向KDC请求票据,KDC返回TGT,客户端使用TGT请求服务票据,服务器验证服务票据
  • Kerberos的优势:集中式认证,支持单点登录,安全可靠

1.3 Hadoop安全配置

Hadoop安全配置主要包括:启用Kerberos认证,配置访问控制列表(ACL),启用数据加密,配置审计日志等。学习交流加群风哥微信: itpux-com

Part02-生产环境规划与建议

2.1 安全架构设计

# 安全架构设计
# 层次结构:网络层 → 操作系统层 → Hadoop层 → 应用层
# 安全措施:防火墙 → 操作系统安全 → Kerberos认证 → 授权管理 → 数据加密 → 审计日志

2.2 Kerberos部署规划

推荐部署3个Kerberos服务器,形成高可用集群。风哥提示:Kerberos服务器是整个安全架构的核心,必须确保其高可用性。

2.3 安全策略制定

# 安全策略示例
# 1. 密码策略:密码长度至少8位,包含大小写字母、数字和特殊字符,每90天更换一次
# 2. 访问控制策略:基于最小权限原则,只授予用户必要的权限
# 3. 加密策略:所有数据传输使用TLS加密,敏感数据存储加密
# 4. 审计策略:记录所有用户操作,保留审计日志至少90天

Part03-生产环境项目实施方案

3.1 Kerberos服务部署

# 安装Kerberos服务
[root@fgedu.net.cn ~]# yum install -y krb5-server krb5-workstation krb5-libs

# 配置Kerberos
[root@fgedu.net.cn ~]# vi /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 = FGEDU.NET.CN
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true

[realms]
FGEDU.NET.CN = {
kdc = fgedu.net.cn
admin_server = fgedu.net.cn
}

[domain_realm]
.fgedu.net.cn = FGEDU.NET.CN
fgedu.net.cn = FGEDU.NET.CN

# 初始化Kerberos数据库
[root@fgedu.net.cn ~]# kdb5_util create -s
Enter KDC database master key:
Re-enter KDC database master key to verify:

# 创建Kerberos管理员
[root@fgedu.net.cn ~]# kadmin.local
kadmin.local: addprinc admin/admin@FGEDU.NET.CN
Enter password for principal “admin/admin@FGEDU.NET.CN”:
Re-enter password for principal “admin/admin@FGEDU.NET.CN”:
Principal “admin/admin@FGEDU.NET.CN” created.

# 启动Kerberos服务
[root@fgedu.net.cn ~]# systemctl start krb5kdc
[root@fgedu.net.cn ~]# systemctl start kadmin
[root@fgedu.net.cn ~]# systemctl enable krb5kdc
[root@fgedu.net.cn ~]# systemctl enable kadmin

3.2 Hadoop安全配置

# 配置core-site.xml
[root@fgedu.net.cn ~]# vi /bigdata/app/hadoop/etc/hadoop/core-site.xml

hadoop.security.authentication
kerberos
hadoop.security.authorization
true


# 配置hdfs-site.xml
[root@fgedu.net.cn ~]# vi /bigdata/app/hadoop/etc/hadoop/hdfs-site.xml

dfs.namenode.kerberos.principal
hdfs/fgedu.net.cn@FGEDU.NET.CN
dfs.namenode.kerberos.keytab.file
/bigdata/app/hadoop/etc/hadoop/hdfs.keytab
dfs.datanode.kerberos.principal
hdfs/fgedu.net.cn@FGEDU.NET.CN
dfs.datanode.kerberos.keytab.file
/bigdata/app/hadoop/etc/hadoop/hdfs.keytab
dfs.webhdfs.enabled
true
dfs.web.authentication.kerberos.principal
HTTP/fgedu.net.cn@FGEDU.NET.CN
dfs.web.authentication.kerberos.keytab
/bigdata/app/hadoop/etc/hadoop/http.keytab


# 配置yarn-site.xml
[root@fgedu.net.cn ~]# vi /bigdata/app/hadoop/etc/hadoop/yarn-site.xml

yarn.resourcemanager.kerberos.principal
yarn/fgedu.net.cn@FGEDU.NET.CN
yarn.resourcemanager.kerberos.keytab
/bigdata/app/hadoop/etc/hadoop/yarn.keytab
yarn.nodemanager.kerberos.principal
yarn/fgedu.net.cn@FGEDU.NET.CN
yarn.nodemanager.kerberos.keytab
/bigdata/app/hadoop/etc/hadoop/yarn.keytab

3.3 安全验证与测试

# 创建Kerberos主体
[root@fgedu.net.cn ~]# kadmin.local
kadmin.local: addprinc hdfs/fgedu.net.cn@FGEDU.NET.CN
kadmin.local: addprinc yarn/fgedu.net.cn@FGEDU.NET.CN
kadmin.local: addprinc mapred/fgedu.net.cn@FGEDU.NET.CN
kadmin.local: addprinc HTTP/fgedu.net.cn@FGEDU.NET.CN
kadmin.local: addprinc fgedu@FGEDU.NET.CN

# 生成keytab文件
[root@fgedu.net.cn ~]# kadmin.local
kadmin.local: xst -k /bigdata/app/hadoop/etc/hadoop/hdfs.keytab hdfs/fgedu.net.cn
kadmin.local: xst -k /bigdata/app/hadoop/etc/hadoop/yarn.keytab yarn/fgedu.net.cn
kadmin.local: xst -k /bigdata/app/hadoop/etc/hadoop/http.keytab HTTP/fgedu.net.cn

# 设置keytab文件权限
[root@fgedu.net.cn ~]# chown hdfs:hadoop /bigdata/app/hadoop/etc/hadoop/hdfs.keytab
[root@fgedu.net.cn ~]# chown yarn:hadoop /bigdata/app/hadoop/etc/hadoop/yarn.keytab
[root@fgedu.net.cn ~]# chown hdfs:hadoop /bigdata/app/hadoop/etc/hadoop/http.keytab
[root@fgedu.net.cn ~]# chmod 400 /bigdata/app/hadoop/etc/hadoop/*.keytab

# 启动集群
[root@fgedu.net.cn ~]# start-dfs.sh
[root@fgedu.net.cn ~]# start-yarn.sh

# 测试Kerberos认证
[root@fgedu.net.cn ~]# kinit fgedu
Password for fgedu@FGEDU.NET.CN:

# 测试HDFS访问
[root@fgedu.net.cn ~]# hdfs dfs -ls /
Found 3 items
drwxr-xr-x – hdfs supergroup 0 2023-04-08 10:00 /hbase
drwxr-xr-x – hdfs supergroup 0 2023-04-08 10:00 /tmp
drwxr-xr-x – hdfs supergroup 0 2023-04-08 10:00 /user

Part04-生产案例与实战讲解

4.1 企业级Hadoop安全部署

案例背景

某企业需要构建安全的Hadoop集群,保护敏感数据,满足合规要求。

实施步骤

  1. 部署Kerberos服务
  2. 配置Hadoop安全参数
  3. 创建用户和服务主体
  4. 测试安全认证
  5. 配置访问控制

实施效果

安全部署完成后,集群实现了强认证和授权,保护了敏感数据,满足了合规要求。from bigdata视频:www.itpux.com

4.2 Kerberos认证实战

# Kerberos认证脚本
#!/bin/bash
# kerberos_auth.sh
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: `http://www.fgedu.net.cn`

# 导出环境变量
export KRB5_CONFIG=/etc/krb5.conf

# 检查kerberos ticket
klist > /dev/null 2>&1
if [ $? -ne 0 ]; then
echo “请输入Kerberos密码:”
kinit fgedu
fi

# 执行HDFS操作
echo “执行HDFS操作…”
hdfs dfs -ls /

# 执行YARN操作
echo “执行YARN操作…”
yarn node -list

4.3 安全审计与监控

# 配置审计日志
[root@fgedu.net.cn ~]# vi /bigdata/app/hadoop/etc/hadoop/hdfs-site.xml
dfs.audit.logger
INFO,RFAAUDIT
dfs.audit.log.maxfilesize
256MB
dfs.audit.log.maxbackupindex
20

# 查看审计日志
[root@fgedu.net.cn ~]# tail -f /bigdata/app/hadoop/logs/hadoop-hdfs-namenode-fgedu.net.cn-audit.log
2023-04-08 10:00:00,000 INFO FSNamesystem.audit: allowed=true ugi=fgedu@FGEDU.NET.CN (auth:KERBEROS) ip=192.168.1.10 cmd=listStatus src=/ dst=null perm=null proto=RPC

Part05-风哥经验总结与分享

5.1 安全最佳实践

  • 使用Kerberos进行强认证
  • 配置细粒度的访问控制
  • 启用数据传输和存储加密
  • 建立完善的审计机制
  • 定期更新密码和密钥
  • 实施网络隔离和防火墙策略

5.2 常见安全问题与解决方案

问题 原因 解决方案
Kerberos认证失败 时钟不同步或配置错误 使用NTP同步时钟,检查配置
权限不足 访问控制配置不当 检查ACL配置,授予必要权限
密钥文件权限错误 keytab文件权限设置不当 设置正确的文件权限(400)
性能下降 安全检查开销 优化安全配置,使用缓存

5.3 安全运维建议

# 安全运维脚本
#!/bin/bash
# security_check.sh
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: `http://www.fgedu.net.cn`

# 检查Kerberos服务状态
systemctl status krb5kdc > /dev/null 2>&1
if [ $? -ne 0 ]; then
echo “Kerberos服务未运行”
systemctl start krb5kdc
fi

# 检查Hadoop安全配置
grep -q “kerberos” /bigdata/app/hadoop/etc/hadoop/core-site.xml
if [ $? -ne 0 ]; then
echo “Hadoop安全配置未启用”
fi

# 检查keytab文件权限
find /bigdata/app/hadoop/etc/hadoop -name “*.keytab” -perm /077
if [ $? -eq 0 ]; then
echo “keytab文件权限过高”
chmod 400 /bigdata/app/hadoop/etc/hadoop/*.keytab
fi

通过Hadoop安全管理与Kerberos的实施,可以保护敏感数据,防止未授权访问,满足合规要求,为企业构建安全可靠的大数据平台。学习交流加群风哥QQ113257174

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息