温馨提示×

CentOS HDFS配置中的安全设置指南

小樊
51
2026-01-11 05:04:32
栏目: 智能运维

CentOS 上 HDFS 安全设置指南

一 前置条件与基础安全

  • 在所有节点完成 系统基线加固:禁用不必要的 root 直登非必要 sudo,为 /etc/passwd、/etc/shadow、/etc/group、/etc/gshadow 设置不可更改属性(如 chattr +i),设置 TMOUT 自动注销,限制 su 使用范围。
  • 统一 时间同步(NTP/chrony),确保 Kerberos 票据与 HDFS 安全机制正常工作。
  • 配置 防火墙(firewalld/iptables) 仅放行必要端口(如 8020/9000 RPC、50070/9870 HTTP、50010/9866 DN 数据传输、50075/9864 HTTP 等),并遵循最小暴露面原则。
  • 集群节点间启用 SSH 互信 仅用于运维自动化,限制为受控账户与跳板机来源。
  • 建立 补丁与变更管理 流程,定期更新 CentOSHadoop 安全补丁。

二 身份认证与访问控制

  • 启用 Kerberos 统一认证:安装 krb5-server/krb5-workstation,配置 /etc/krb5.conf(realm、KDC、admin_server),创建服务主体(如 nn/_HOST@REALM、dn/_HOST@REALM、HTTP/_HOST@REALM),分发 keytab/etc/security/keytabs/ 并设置 600 权限与属主。
  • 配置 Hadoop 启用安全认证与本地映射:
    • core-site.xml:
      • hadoop.security.authentication=kerberos
      • hadoop.security.authorization=true
      • hadoop.security.auth_to_local(示例:RULE:1:$1@$0s/@.*//
    • hdfs-site.xml(示例):
      • dfs.namenode.kerberos.principal=nn/_HOST@YOUR.REALM.COM
      • dfs.namenode.keytab.file=/etc/security/keytabs/hdfs.headless.keytab
      • dfs.datanode.kerberos.principal=dn/_HOST@YOUR.REALM.COM
      • dfs.datanode.keytab.file=/etc/security/keytabs/hdfs.headless.keytab
      • dfs.namenode.http-kerberos.principal=HTTP/_HOST@YOUR.REALM.COM
      • dfs.namenode.http-kerberos.keytab=/etc/security/keytabs/hdfs.headless.keytab
  • 启用 HDFS 权限与 ACL
    • dfs.permissions.enabled=true
    • dfs.namenode.acls.enabled=true(如需对目录设置细粒度权限,可同时启用 dfs.datanode.acls.enabled=true
  • 验证:在各节点执行 kinit 获取票据后,使用 hdfs dfs -ls / 等命令验证访问是否受控。

三 传输与存储加密

  • RPC 通道安全(SASL QoP):
    • 参数:hadoop.rpc.protection,可选 authentication/integrity/privacy;建议生产环境设为 privacy
    • 影响范围:客户端与 NameNodeDataNode↔NameNode、以及 YARN/HBase/Spark/MapReduce 等与 HDFS 交互的 RPC 通道。
    • 注意:修改后通常需要 重启服务重新下载客户端配置 才能生效。
  • 数据传输安全(DataTransfer):
    • 参数:dfs.encrypt.data.transfer=true 开启数据通道加密(客户端↔DataNode、DataNode↔DataNode)。
    • 依赖与算法:当 hadoop.rpc.protection=privacy 时启用;算法可选 3des/rc4/AES/CTR/NoPadding,默认 3des,推荐 AES/CTR/NoPadding,不推荐 rc4
    • 性能提示:大数据量场景开启加密会带来 显著 CPU 开销,需结合业务压测与硬件能力权衡。
  • 存储加密(透明加密,TDE):
    • 建议对敏感目录启用 HDFS 透明加密(Encryption Zones),结合 KMS 管理密钥,确保数据落盘即加密。
  • 完整性校验:HDFS 默认通过 校验和 保障数据完整性,无需额外配置。

四 运维安全与数据保护

  • 安全模式:用于维护一致性,启动或异常恢复阶段可手动控制。
    • 查看:hdfs dfsadmin -safemode get
    • 进入:hdfs dfsadmin -safemode enter
    • 退出:hdfs dfsadmin -safemode leave
  • 回收站(Trash):防止误删,删除文件先入 /user/${username}/.Trash/current,过期自动清理。
    • 配置(core-site.xml):fs.trash.interval(保留分钟,0 为禁用)、fs.trash.checkpoint.interval(检查点间隔,0 则等于前者)。
    • 使用:常规删除进入回收站;跳过回收站加 -skipTrash;清理过期检查点用 hadoop fs -expunge
  • 快照(Snapshot):对关键目录开启快照,用于 误删恢复、增量备份、测试
    • 常用命令:createSnapshot、deleteSnapshot、renameSnapshot、lsSnapshottableDir、snapshotDiff
  • 审计与监控:启用 HDFS 审计日志,记录 用户、操作、时间 等关键要素;结合 监控与告警 及时发现异常访问与性能劣化。

五 快速检查清单

检查项 关键配置/命令 期望结果
系统基线 禁用不必要 root/sudo、chattr +i 关键文件、TMOUT、su 限制、NTP、firewalld 仅受控账户与来源可登录,时间一致,暴露面最小化
Kerberos krb5.conf、kadmin 主体与 keytab、600 权限 票据可获取,服务以主体身份启动
Hadoop 安全 core-site.xml:hadoop.security.authentication=kerberos;hdfs-site.xml:各组件 principal/keytab 未持票无法访问,认证失败快速拒绝
RPC 保护 hadoop.rpc.protection=privacy RPC 全链路认证/完整性/加密
数据传输 dfs.encrypt.data.transfer=true;AES/CTR/NoPadding 客户端↔DN、DN↔DN 传输加密
权限与 ACL dfs.permissions.enabled=true;dfs.namenode.acls.enabled=true 目录/文件权限与 ACL 生效
回收站 fs.trash.interval≥1440(1天) 误删可恢复,过期自动清理
快照 关键目录启用快照 支持快速回滚与差异对比
审计与监控 审计日志采集、告警规则就绪 异常访问与性能异常可观测与告警

0