在 CentOS 上“保护 HDFS”通常涉及系统层安全 + Hadoop 自身安全机制两方面。下面按实用优先级给你一个较完整的安全加固方案。
useradd hadoop
chown -R hadoop:hadoop /opt/hadoop
su - hadoop
只开放必要端口(如 8020、50070、50010 等)
firewall-cmd --permanent --add-port=8020/tcp
firewall-cmd --permanent --add-port=50070/tcp
firewall-cmd --reload
systemctl disable telnet vsftpd
permissivesetenforce 1
hdfs-site.xml
<property>
<name>dfs.permissions.enabled</name>
<value>true</value>
</property>
防止伪造用户访问 HDFS
yum install krb5-server krb5-workstation
kadmin.local
addprinc -randkey hdfs/node1@EXAMPLE.COM
ktadd hdfs/node1@EXAMPLE.COM
core-site.xml
<property>
<name>hadoop.security.authentication</name>
<value>kerberos</value>
</property>
hdfs-site.xml
<property>
<name>dfs.namenode.kerberos.principal</name>
<value>hdfs/_HOST@EXAMPLE.COM</value>
</property>
保护静态数据
hdfs crypto -createZone -keyName mykey -path /secure
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
hdfs dfsadmin -allowSnapshot /data
hdfs dfs -createSnapshot /data snap1
hdfs-site.xml
<property>
<name>dfs.namenode.rpc-bind-host</name>
<value>192.168.x.x</value>
</property>
log4j.properties
hadoop.security.audit.logger=INFO,RFAAUDIT
✅ 非 root 启动
✅ 防火墙限制端口
✅ HDFS 权限开启
✅ Kerberos 认证
✅ 快照 + 副本
✅ 审计日志
如果你能告诉我:
我可以给你更精确的一份配置示例。