首页主机资讯centos hdfs安全配置指南

centos hdfs安全配置指南

时间2025-12-04 13:09:03发布访客分类主机资讯浏览803
导读:CentOS 上 HDFS 安全配置指南 一 系统安全基线 账户与口令 排查并锁定不必要的 UID=0 账户:cat /etc/passwd | awk -F ':' '{print $1,$3}' | grep ' 0$';锁定命令:...

CentOS 上 HDFS 安全配置指南

一 系统安全基线

  • 账户与口令
    • 排查并锁定不必要的 UID=0 账户:cat /etc/passwd | awk -F ':' '{ print $1,$3} ' | grep ' 0$';锁定命令:passwd -l < 用户>
    • 强化口令策略:在 /etc/login.defs 设置 PASS_MIN_LEN 10,要求包含大小写字母、数字与特殊字符。
    • 保护关键文件:chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow
    • 限制 root 会话:echo "TMOUT=600" > > /etc/profile(10 分钟自动注销);仅允许特定组使用 su:编辑 /etc/pam.d/su
  • 服务与网络
    • 仅开放必要端口(如 8020/9000/50070/50075),其余默认拒绝;启用 firewalldiptables 白名单策略。
    • 节点间启用 SSH 互信(便于启动/运维),但限制私钥权限为 600,禁用口令登录。
    • 全集群 NTP 时间同步,避免 Kerberos 票据异常。
  • 加固提示
    • 不建议直接关闭 SELinux 或防火墙;如必须临时关闭,应在变更窗口内完成并尽快恢复。

二 启用 Kerberos 强认证

  • 安装与初始化
    • 安装组件:sudo yum install -y krb5-server krb5-admin-server krb5-workstation
    • 配置 /etc/krb5.conf:设置默认领域、KDC 与管理服务地址、票据生命周期等。
    • 启动服务:sudo systemctl start krb5kdcsudo systemctl start kadmind
  • 创建主体与密钥表
    • 新增主体:sudo kadmin.local -q "addprinc -randkey hdfs/< nn-host> @YOUR.REALM.COM"
    • 导出密钥表:sudo kadmin.local -q "ktadd -k /etc/security/keytabs/hdfs.keytab hdfs/< nn-host> ";设置权限:chown hdfs:hadoop /etc/security/keytabs/hdfs.keytab & & chmod 400 /etc/security/keytabs/hdfs.keytab
  • Hadoop 启用 Kerberos
    • core-site.xml
      <
          property>
          
        <
          name>
          hadoop.security.authentication<
          /name>
          
        <
          value>
          kerberos<
          /value>
          
      <
          /property>
          
      <
          property>
          
        <
          name>
          hadoop.security.authorization<
          /name>
          
        <
          value>
          true<
          /value>
          
      <
          /property>
          
      
    • hdfs-site.xml(示例)
      <
          property>
          
        <
          name>
          dfs.namenode.kerberos.principal<
          /name>
          
        <
          value>
          hdfs/<
          nn-host>
          @YOUR.REALM.COM<
          /value>
          
      <
          /property>
          
      <
          property>
          
        <
          name>
          dfs.namenode.keytab.file<
          /name>
          
        <
          value>
          /etc/security/keytabs/hdfs.keytab<
          /value>
          
      <
          /property>
          
      <
          property>
          
        <
          name>
          dfs.datanode.kerberos.principal<
          /name>
          
        <
          value>
          hdfs/<
          dn-host>
          @YOUR.REALM.COM<
          /value>
          
      <
          /property>
          
      <
          property>
          
        <
          name>
          dfs.datanode.keytab.file<
          /value>
          /etc/security/keytabs/hdfs.keytab<
          /value>
          
      <
          /property>
          
      <
          property>
          
        <
          name>
          dfs.namenode.http-authentication.kerberos.principal<
          /name>
          
        <
          value>
          HTTP/<
          nn-host>
          @YOUR.REALM.COM<
          /value>
          
      <
          /property>
          
      <
          property>
          
        <
          name>
          dfs.namenode.http-authentication.kerberos.keytab<
          /name>
          
        <
          value>
          /etc/security/keytabs/spnego.keytab<
          /value>
          
      <
          /property>
          
      
  • 验证
    • 使用 kinit hdfs/< nn-host> @YOUR.REALM.COM 获取票据后执行 hdfs dfs -ls / 验证访问;检查 NameNode/DataNode 日志是否出现 SASL/GSSAPI 认证成功信息。

三 权限与 ACL 细粒度控制

  • 启用权限与默认掩码
    • hdfs-site.xml
      <
          property>
          
        <
          name>
          dfs.permissions.enabled<
          /name>
          
        <
          value>
          true<
          /value>
          
      <
          /property>
          
      <
          property>
          
        <
          name>
          fs.permissions.umask-mode<
          /name>
          
        <
          value>
          022<
          /value>
          
      <
          /property>
          
      
  • 基础权限与属主
    • 目录基线:hdfs dfs -chmod 755 /userhdfs dfs -chown hadoop:hadoop /user(按实际业务调整属主/属组)。
    • 共享目录可设置 粘滞位hdfs dfs -chmod 1777 /user/tmp,防止非属主删除他人文件。
  • ACL 细粒度
    • 授予额外用户/组:hdfs dfs -setfacl -m user:< user> :r-x /user/project
    • 查看 ACL:hdfs dfs -getfacl /user/project
  • 审计与合规
    • 启用 HDFS 审计日志(AccessAudit),集中采集并保留至少 90 天;结合 Ranger 实现基于策略的授权与审计。

四 加密与数据保护

  • 传输加密
    • 启用数据传输加密:hdfs dfsadmin -setEncryptionPolicy -path /data -policy encrypted(需先创建加密区);或在 hdfs-site.xml 设置 dfs.encrypt.data.transfer=true 并在集群范围启用 TLS/SSL(如 HTTPS/WebHDFS)。
  • 透明数据加密 TDE
    • 创建密钥:hdfs crypto -createZone -keyName zoneKey1 -path /user/secure
    • 加密目录:hdfs crypto -encrypt -path /user/secure/data -keyName zoneKey1
    • 注意:加密区仅对新写入数据生效,存量数据需迁移或重放写入以完成加密。
  • 完整性与备份
    • HDFS 默认通过校验和(如 CRC32)保障数据完整性;关键数据实施 定期备份与异地容灾,并定期演练恢复流程。

五 运维与加固清单

  • 安全模式与可用性
    • 只读维护窗口可手动进入:hdfs dfsadmin -safemode enter;恢复写入:hdfs dfsadmin -safemode leave;查看状态:hdfs dfsadmin -safemode get
  • 最小权限与分组治理
    • 按业务划分 用户/用户组,遵循 最小权限原则;定期审计 /user/tmp 等关键目录权限。
  • 补丁与监控告警
    • 全集群 及时打补丁;启用 主机与HDFS 监控/告警(异常登录、权限变更、NameNode/DataNode 异常、磁盘/副本告警等)。
  • 服务最小化
    • 关闭不必要的 Web 界面 或限制来源 IP;仅暴露必要端口;禁用未使用的 Hadoop 服务/协议

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: centos hdfs安全配置指南
本文地址: https://pptw.com/jishu/763461.html
CentOS HDFS如何优化MapReduce任务 hdfs配置错误怎么解决centos

游客 回复需填写必要信息