温馨提示×

linux hdfs配置怎样安全

小樊
56
2026-09-13 16:20:41
栏目: 智能运维

在 Linux 上配置 HDFS(Hadoop Distributed File System) 时,“安全”通常包含以下几个方面:认证(Authentication)、授权(Authorization)、通信加密、数据安全、审计与运维安全。下面按落地优先级给你一个较完整的安全配置指南。


一、基础安全(必须先做)

1. 系统层面安全

  • 专用用户运行 HDFS

    useradd -m hadoop
    
    • NameNode / DataNode 都用 hadoop 用户运行
    • 禁止 root 启动 Hadoop
  • 目录权限

    chown -R hadoop:hadoop /opt/hadoop
    chmod 750 /opt/hadoop
    
  • 防火墙

    firewall-cmd --add-port=8020/tcp --permanent
    firewall-cmd --add-port=50070/tcp --permanent
    firewall-cmd --reload
    
    • 只开放必要端口(NameNode / DataNode)

二、HDFS 认证安全(非常重要)

2. 启用 Kerberos(强烈推荐)

HDFS 默认是“伪用户”,不安全。

步骤简述:

  1. 安装 KDC

    yum install krb5-server krb5-workstation
    
  2. 创建 principal

    kadmin.local
    addprinc -randkey hdfs/node1@EXAMPLE.COM
    addprinc -randkey hdfs/node2@EXAMPLE.COM
    
  3. 生成 keytab

    xst -k hdfs.keytab hdfs/node1@EXAMPLE.COM
    
  4. core-site.xml

    <property>
      <name>hadoop.security.authentication</name>
      <value>kerberos</value>
    </property>
    
  5. hdfs-site.xml

    <property>
      <name>dfs.namenode.kerberos.principal</name>
      <value>hdfs/_HOST@EXAMPLE.COM</value>
    </property>
    <property>
      <name>dfs.datanode.kerberos.principal</name>
      <value>hdfs/_HOST@EXAMPLE.COM</value>
    </property>
    

三、HDFS 授权安全

3. 启用权限检查(默认开启)

<property>
  <name>dfs.permissions.enabled</name>
  <value>true</value>
</property>

4. 目录权限示例

hdfs dfs -chown hdfs:supergroup /data
hdfs dfs -chmod 700 /data

5. 使用 Ranger / Sentry(企业级)

  • Apache Ranger:细粒度 ACL
  • 支持:用户 / 组 / 路径 / 操作类型

四、通信与数据安全

6. 启用 RPC & Data Transfer 加密

hdfs-site.xml

<property>
  <name>dfs.encrypt.data.transfer</name>
  <value>true</value>
</property>

<property>
  <name>dfs.block.access.token.enable</name>
  <value>true</value>
</property>

7. HTTPS(Web UI)

<property>
  <name>dfs.https.enable</name>
  <value>true</value>
</property>

五、Web & 服务暴露安全

8. 禁止匿名访问 WebHDFS

<property>
  <name>dfs.web.authentication.kerberos.keytab</name>
  <value>/etc/security/keytabs/spnego.keytab</value>
</property>

9. NameNode UI 不对外网开放

  • 绑定内网 IP
  • 或使用 Nginx + 认证代理

六、审计与日志

10. 开启 HDFS 审计日志

log4j.properties

log4j.logger.org.apache.hadoop.hdfs.server.namenode.FSNamesystem.audit=INFO

11. 日志集中化

  • 发送到 syslog / ELK

七、运维安全建议

  • 定期轮换 keytab
  • 禁止 hdfs dfs -rm -r / 误操作(可用 Ranger 限制)
  • NameNode 和 DataNode 分离部署
  • 使用 TLS 1.2+(不要用老协议)

八、最小安全配置清单(快速版)

✅ 非 root 用户运行
✅ 防火墙限制端口
✅ Kerberos 认证
✅ 权限开启
✅ 数据传输加密
✅ 审计日志


如果你愿意,我可以:

  • 给你 一份可直接用的 hdfs-site.xml / core-site.xml 安全模板
  • 或按 测试环境 / 生产环境 分别给方案
  • 或只讲 不装 Kerberos 的“相对安全”方案

你现在是哪类环境?

0 踩