如何确保CentOS HDFS安全性
小樊
37
2025-12-13 21:09:11
CentOS 上 HDFS 安全加固清单
一 身份与访问控制
- 启用强认证:部署 Kerberos,在 core-site.xml 设置 hadoop.security.authentication=kerberos,在 hdfs-site.xml 为 NameNode/DataNode/HTTP 配置主体与 keytab(如:dfs.namenode.kerberos.principal、dfs.namenode.http-authentication.kerberos.principal 等),完成后重启相关服务。
- 启用权限校验与默认掩码:在 hdfs-site.xml 开启 dfs.permissions.enabled=true,并通过 fs.permissions.umask-mode 设置合理的默认权限(如 022/027),降低新创建文件/目录的暴露面。
- 精细化授权:在 hdfs-site.xml 开启 dfs.namenode.acls.enabled=true,使用 hdfs dfs -setfacl/-getfacl 为用户/组配置最小权限;对共享目录(如 /user)可按需设置 1777(粘滞位)防止非属主删除。
- 企业级策略:引入 Apache Ranger 统一管理 HDFS 的访问策略与审计,支持按用户/组/路径/操作的细粒度控制与集中审计。
二 加密与传输安全
- 传输加密:为客户端与服务端启用 SSL/TLS(Hadoop 的 HTTPS/安全 RPC),防止数据在网络传输中被窃听或篡改。
- 静态数据加密:使用 HDFS 透明数据加密(TDE) 创建加密区并指定密钥,对敏感目录(如 /user/hadoop/encryptedData)启用加密,确保落盘数据即使被非法获取也无法解读。
三 网络安全与系统加固
- 边界防护:使用 firewalld/iptables 仅放通必要端口与来源网段(如 NameNode/DataNode 通信端口、HTTP/HTTPS 管理端口),默认拒绝其他访问。
- 主机加固:最小化 root 使用,限制 su 切换,设置 TMOUT 自动注销,保护 /etc/shadow 等关键文件(如 chattr +i),仅启用必需服务,及时打补丁。
- 节点互联:在受控网络中配置 SSH 免密 仅用于节点间自动化运维,禁止用于生产登录;启用 SELinux 或最小化开放策略,减少攻击面。
四 审计监控与高可用运维
- 审计与监控:开启并集中存储 HDFS 访问与权限变更审计日志,结合 监控/告警 对异常访问、权限变更、失败登录等进行实时检测与响应。
- 数据完整性与备份:依赖 HDFS 校验和机制保障数据完整性,制定并执行 定期备份与异地容灾 策略,定期演练恢复流程。
- 安全模式与变更窗口:在升级、迁移或修复前,按需进入 安全模式(只读),变更完成后及时退出,避免数据不一致风险。
五 快速检查清单与常用命令
- 快速检查清单
- 已部署 Kerberos,核心服务主体与 keytab 正确,keytab 权限为 600 且仅属 hdfs;
- dfs.permissions.enabled=true、dfs.namenode.acls.enabled=true 已启用,关键目录权限与 ACL 按最小权限配置;
- SSL/TLS 已启用(RPC/HTTP),敏感目录已配置 TDE 加密区;
- 防火墙仅放通必要端口与来源,系统补丁、账号与关键文件加固到位,审计日志集中采集与告警已配置。
- 常用命令示例
- 安全模式:hdfs dfsadmin -safemode get/enter/leave
- 权限与属主:hdfs dfs -chmod 750 /data, hdfs dfs -chown hadoop:hadoop /data
- ACL:hdfs dfs -setfacl -m user:alice:r-x /data, hdfs dfs -getfacl /data
- 加密区:hdfs crypto -createZone -keyName myKey -path /data/enc
- 服务重启:systemctl restart hadoop-namenode hadoop-datanode(按实际服务名调整)