1. 首页 > Hadoop教程 > 正文

大数据教程FG185-Hadoop安全加固实战

本文详细介绍Hadoop安全加固实战,包括身份认证、授权控制、数据加密、Kerberos、Ranger等内容,适合大数据运维工程师使用。学习交流加群风哥微信: itpux-com

Part01-基础概念与理论知识

1.1 安全概述

安全加固是指通过技术手段和管理措施提高系统安全性。更多视频教程www.fgedu.net.cn

安全三要素:

  • 机密性(Confidentiality)
  • 完整性(Integrity)
  • 可用性(Availability)

1.2 安全风险

安全风险:

# 安全风险
1. 未授权访问
– 身份认证缺失
– 权限控制不严
– 数据泄露

2. 数据篡改
– 数据完整性问题
– 恶意修改数据
– 审计缺失

3. 拒绝服务
– 资源耗尽
– 系统不可用
– 业务中断

4. 内部威胁
– 内部人员滥用
– 权限过大
– 操作不规范

1.3 安全框架

安全框架:

风哥提示:Hadoop安全框架包括Kerberos(认证)、Ranger/Sentry(授权)、加密(传输和存储)、审计。更多学习教程公众号风哥教程itpux_com

Part02-生产环境规划与建议

2.1 安全规划

安全规划:

# 安全规划
1. 安全域划分
– 生产环境
– 测试环境
– 开发环境
– 网络隔离

2. 身份管理
– 统一身份认证
– 账号生命周期管理
– 密码策略

3. 权限管理
– 最小权限原则
– 职责分离
– 权限审批

4. 数据安全
– 数据分类
– 加密策略
– 脱敏策略

2.2 安全策略

安全策略:

安全策略:

  • 认证策略:Kerberos认证
  • 授权策略:Ranger/Sentry
  • 加密策略:TLS/SSL传输加密
  • 审计策略:操作审计日志

from bigdata视频:www.itpux.com

2.3 合规要求

合规要求:

# 合规要求
1. 等级保护
– 等保2.0
– 一级到四级
– 安全测评

2. 行业规范
– 金融行业规范
– 医疗行业规范
– 政府行业规范

3. 数据安全
– 数据安全法
– 个人信息保护法
– 数据出境规定

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

3.1 身份认证

3.1.1 Kerberos认证

# Kerberos认证
# 1. 安装Kerberos
yum install -y krb5-server krb5-libs krb5-workstation

# 2. 配置Kerberos
vi /etc/krb5.conf
[libdefaults]
default_realm = FGEDU.NET.CN
dns_lookup_realm = false
dns_lookup_kdc = false

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

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

# 3. 创建数据库
kdb5_util create -s -r FGEDU.NET.CN

# 4. 启动Kerberos
systemctl start krb5kdc
systemctl start kadmin
systemctl enable krb5kdc
systemctl enable kadmin

# 5. 创建principal
kadmin.local
addprinc admin/admin@FGEDU.NET.CN
addprinc hadoop/fgedu-nn01@FGEDU.NET.CN
addprinc HTTP/fgedu-nn01@FGEDU.NET.CN
ktadd -k /etc/security/keytabs/hadoop.service.keytab hadoop/fgedu-nn01@FGEDU.NET.CN
ktadd -k /etc/security/keytabs/spnego.service.keytab HTTP/fgedu-nn01@FGEDU.NET.CN

# 6. 配置Hadoop使用Kerberos
# core-site.xml hadoop.security.authentication
kerberos
hadoop.security.authorization
true

# hdfs-site.xml dfs.block.access.token.enable
true
dfs.datanode.kerberos.principal
hadoop/_HOST@FGEDU.NET.CN
dfs.datanode.keytab.file
/etc/security/keytabs/hadoop.service.keytab
dfs.namenode.kerberos.principal
hadoop/_HOST@FGEDU.NET.CN
dfs.namenode.keytab.file
/etc/security/keytabs/hadoop.service.keytab
dfs.web.authentication.kerberos.principal
HTTP/_HOST@FGEDU.NET.CN
dfs.web.authentication.kerberos.keytab
/etc/security/keytabs/spnego.service.keytab

3.2 授权控制

3.2.1 Ranger授权

# Ranger授权
# 1. 安装Ranger
# 下载Ranger
# 安装Ranger Admin
# 安装Ranger UserSync
# 安装各组件插件

# 2. 配置Ranger
# Ranger Admin Web UI
# http://ranger-admin:6080
# 默认账号:admin/rangeradmin1

# 3. 创建HDFS策略
# 进入HDFS服务
# 点击Add New Policy
# 配置Policy Name
# 配置Resource Path
# 配置User/Group
# 配置Permissions(Read/Write/Execute)

# 4. 创建Hive策略
# 进入Hive服务
# 点击Add New Policy
# 配置Database
# 配置Table
# 配置Column
# 配置User/Group
# 配置Permissions(Select/Create/Drop/Alter)

# 5. 验证权限
# 测试用户权限
kinit -kt /etc/security/keytabs/fgedu.keytab fgedu@FGEDU.NET.CN
hdfs dfs -ls /
hdfs dfs -put test.txt /

3.3 数据加密

3.4.1 传输加密

# 传输加密
# 1. 配置HDFS加密传输
# hdfs-site.xml dfs.encrypt.data.transfer
true
dfs.encrypt.data.transfer.cipher.key.bitlength
256
dfs.http.policy
HTTPS_ONLY

# 2. 配置YARN加密
# yarn-site.xml yarn.http.policy
HTTPS_ONLY

# 3. 配置SSL
# 生成证书
keytool -genkey -alias fgedu -keyalg RSA -keysize 2048 -keystore fgedu.keystore -validity 3650

# 配置SSL
# ssl-server.xml
ssl.server.keystore.location
/bigdata/certs/fgedu.keystore
ssl.server.keystore.password
fgedu123
ssl.server.keystore.keypassword
fgedu123

风哥提示:安全加固要层层设防。认证、授权、加密、审计一个都不能少。Kerberos+Ranger是常见的组合。学习交流加群风哥QQ113257174

Part04-生产案例与实战讲解

4.1 Kerberos认证

4.1.1 实战案例

# Kerberos实战
# 1. 测试Kerberos认证
kinit -kt /etc/security/keytabs/hadoop.service.keytab hadoop/fgedu-nn01@FGEDU.NET.CN

# 2. 查看票据
klist

# 输出示例:
# Ticket cache: FILE:/tmp/krb5cc_1000
# Default principal: hadoop/fgedu-nn01@FGEDU.NET.CN
#
# Valid starting Expires Service principal
# 04/08/2024 10:00:00 04/08/2024 20:00:00 krbtgt/FGEDU.NET.CN@FGEDU.NET.CN

# 3. 访问HDFS
hdfs dfs -ls /

# 4. 用户认证
kinit fgedu@FGEDU.NET.CN
# 输入密码
hdfs dfs -ls /user/fgedu

# 5. 销毁票据
kdestroy
klist
# klist: No credentials cache found

4.2 Ranger授权

4.2.1 实战案例

# Ranger授权实战
# 1. 登录Ranger UI
# http://ranger-admin:6080
# admin/rangeradmin1

# 2. 创建HDFS策略
# Policy Name: fgedu-hdfs-policy
# Resource Path: /user/fgedu
# User: fgedu
# Permissions: Read, Write, Execute

# 3. 创建Hive策略
# Policy Name: fgedu-hive-policy
# Database: fgedudb
# Table: *
# User: fgedu
# Permissions: Select, Create

# 4. 测试权限
kinit fgedu@FGEDU.NET.CN
hdfs dfs -put test.txt /user/fgedu/
hdfs dfs -ls /user/fgedu/

# 5. 测试无权限
kinit test@FGEDU.NET.CN
hdfs dfs -ls /user/fgedu/
# 应该报错:Permission denied

4.3 审计日志

4.3.1 实战案例

# 审计日志
# 1. 配置HDFS审计
# hadoop-env.sh
export HDFS_AUDIT_LOGGER=INFO,NullAppender

# log4j.properties
log4j.logger.org.apache.hadoop.hdfs.server.namenode.FSNamesystem.audit=INFO,RFAAUDIT
log4j.appender.RFAAUDIT=org.apache.log4j.RollingFileAppender
log4j.appender.RFAAUDIT.File=/bigdata/logs/hdfs/audit.log
log4j.appender.RFAAUDIT.MaxFileSize=100MB
log4j.appender.RFAAUDIT.MaxBackupIndex=10
log4j.appender.RFAAUDIT.layout=org.apache.log4j.PatternLayout
log4j.appender.RFAAUDIT.layout.ConversionPattern=%d{ISO8601} %p %c: %m%n

# 2. 查看审计日志
tail -f /bigdata/logs/hdfs/audit.log

# 输出示例:
# 2024-04-08 10:00:00,000 INFO FSNamesystem.audit: allowed=true ugi=fgedu@FGEDU.NET.CN ip=/192.168.1.100 cmd=listStatus src=/user/fgedu dst=null perm=null

# 3. Ranger审计
# Ranger UI -> Audit
# 查看访问记录
# 查看拒绝记录

生产环境建议:安全加固不是一劳永逸的,要持续关注安全漏洞,及时更新补丁,定期安全审计。更多视频教程www.fgedu.net.cn

Part05-风哥经验总结与分享

5.1 最佳实践

最佳实践:

  • 最小权限:只给必要的权限
  • 职责分离:不同角色不同权限
  • 定期审计:定期审计权限和日志
  • 及时更新:及时更新安全补丁
  • 培训教育:安全意识培训

5.2 安全检查清单

# 安全检查清单
## 身份认证
– [ ] Kerberos认证启用
– [ ] 密码策略配置
– [ ] 账号生命周期管理
– [ ] 闲置账号清理

## 授权控制
– [ ] Ranger/Sentry启用
– [ ] 最小权限原则
– [ ] 权限定期审计
– [ ] 权限变更审批

## 数据安全
– [ ] 传输加密启用
– [ ] 敏感数据加密
– [ ] 数据备份加密
– [ ] 数据脱敏

## 审计安全
– [ ] 审计日志启用
– [ ] 审计日志保护
– [ ] 定期日志审计
– [ ] 日志长期保存

5.3 检查清单

# 检查清单
## 配置检查
– [ ] Kerberos配置正确
– [ ] Ranger配置正确
– [ ] 加密配置正确
– [ ] 审计配置正确
– [ ] 防火墙配置正确

## 功能检查
– [ ] 认证正常工作
– [ ] 授权正常工作
– [ ] 加密正常工作
– [ ] 审计正常工作
– [ ] 定期安全审计

风哥提示:安全是一个持续的过程,没有绝对的安全。要层层设防,持续改进,定期评估,及时响应。安全意识和技术手段同样重要。学习交流加群风哥微信: itpux-com

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

联系我们

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

微信号:itpux-com

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