在 Linux 上配置 HDFS(Hadoop Distributed File System) 时,“安全”通常包含以下几个方面:认证(Authentication)、授权(Authorization)、通信加密、数据安全、审计与运维安全。下面按落地优先级给你一个较完整的安全配置指南。
专用用户运行 HDFS
useradd -m hadoop
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
HDFS 默认是“伪用户”,不安全。
安装 KDC
yum install krb5-server krb5-workstation
创建 principal
kadmin.local
addprinc -randkey hdfs/node1@EXAMPLE.COM
addprinc -randkey hdfs/node2@EXAMPLE.COM
生成 keytab
xst -k hdfs.keytab 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>
<property>
<name>dfs.datanode.kerberos.principal</name>
<value>hdfs/_HOST@EXAMPLE.COM</value>
</property>
<property>
<name>dfs.permissions.enabled</name>
<value>true</value>
</property>
hdfs dfs -chown hdfs:supergroup /data
hdfs dfs -chmod 700 /data
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>
<property>
<name>dfs.https.enable</name>
<value>true</value>
</property>
<property>
<name>dfs.web.authentication.kerberos.keytab</name>
<value>/etc/security/keytabs/spnego.keytab</value>
</property>
log4j.properties
log4j.logger.org.apache.hadoop.hdfs.server.namenode.FSNamesystem.audit=INFO
hdfs dfs -rm -r / 误操作(可用 Ranger 限制)✅ 非 root 用户运行
✅ 防火墙限制端口
✅ Kerberos 认证
✅ 权限开启
✅ 数据传输加密
✅ 审计日志
如果你愿意,我可以:
你现在是哪类环境?