下面按“由浅入深”给你一套 CentOS 上 HDFS 安全配置 的实用方案,涵盖 认证、授权、加密、审计 四个方面,适合生产环境参考。
# 关闭不必要的端口
firewall-cmd --permanent --add-port=8020/tcp
firewall-cmd --permanent --add-port=50070/tcp
firewall-cmd --reload
# 禁用 root 登录
sed -i 's/^PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
useradd -m hdfs
useradd -m yarn
yum install -y krb5-server krb5-workstation
/etc/krb5.conf
[realms]
EXAMPLE.COM = {
kdc = centos01
admin_server = centos01
}
kadmin.local
addprinc -randkey hdfs/centos01@EXAMPLE.COM
ktadd -k /etc/security/keytabs/hdfs.keytab hdfs/centos01@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.namenode.keytab.file</name>
<value>/etc/security/keytabs/hdfs.keytab</value>
</property>
hdfs-site.xml
<property>
<name>dfs.namenode.acls.enabled</name>
<value>true</value>
</property>
hdfs dfs -setfacl -m user:alice:rwx /data
hdfs dfs -getfacl /data
<property>
<name>dfs.http.policy</name>
<value>HTTPS_ONLY</value>
</property>
hdfs crypto -createZone -keyName hdfskey -path /secure
log4j.properties
log4j.logger.org.apache.hadoop.hdfs.server.namenode.FSNamesystem.audit=INFO
tail -f /var/log/hadoop-hdfs/hdfs-audit.log
✅ Kerberos 强制认证
✅ HDFS ACL 控制
✅ 数据传输 HTTPS
✅ 静态数据加密
✅ 最小权限原则
✅ 定期 keytab 轮换
如果你愿意,我可以:
你现在是 测试环境还是生产环境?