在 Linux 上配置 HDFS(Hadoop Distributed File System) 时,“安全配置”通常涉及 认证(Authentication)、授权(Authorization)、通信加密 和 系统加固 几个方面。下面按实践优先级给你一个较完整的安全配置指南。
最小化安装
专用用户运行
useradd -m hadoop
防火墙
firewall-cmd --add-port=8020/tcp --permanent
firewall-cmd --add-port=50070/tcp --permanent
firewall-cmd --reload
或只开放集群内网
禁用 root 远程登录
PermitRootLogin no
Kerberos 是 HDFS 安全的核心。
步骤简述:
yum install krb5-server krb5-workstation
/etc/krb5.confkadmin.local -q "addprinc -randkey hdfs/namenode@YOUR.REALM"
kadmin.local -q "xst -k hdfs.keytab hdfs/namenode@YOUR.REALM"
hdfs-site.xml 中启用:<property>
<name>hadoop.security.authentication</name>
<value>kerberos</value>
</property>
<property>
<name>dfs.permissions.enabled</name>
<value>true</value>
</property>
hdfs dfs -setfacl -m user:alice:rwx /data
hdfs dfs -getfacl /data
<property>
<name>hadoop.http.authentication.type</name>
<value>kerberos</value>
</property>
<property>
<name>hadoop.rpc.protection</name>
<value>privacy</value>
</property>
<property>
<name>dfs.encrypt.data.transfer</name>
<value>true</value>
</property>
<property>
<name>dfs.http.policy</name>
<value>HTTPS_ONLY</value>
</property>
<property>
<name>dfs.namenode.audit.loggers</name>
<value>default</value>
</property>
❌ 使用 dfs.permissions.enabled=false
❌ NameNode Web UI 公网开放
❌ 使用 root 启动 Hadoop
❌ 无 Kerberos + 多用户环境
✅ Kerberos
✅ dfs.permissions.enabled=true
✅ RPC + DataTransfer 加密
✅ 专用用户 + 防火墙
✅ 审计日志
如果你愿意,我可以:
你现在是测试环境还是生产环境?