1. 基础环境准备
在Debian系统上配置HDFS安全前,需完成以下基础工作:
sudo apt update && sudo apt upgrade,修补已知安全漏洞;sudo apt install openssh-server krb5-user(SSH用于集群通信,Kerberos用于身份认证);/etc/hosts文件,确保集群节点间可通过主机名互相访问(如192.168.1.10 namenode)。2. 用户与组管理
root,为HDFS操作创建专用用户(如hdfsadmin),并将其加入hadoop组:sudo useradd -m -G hadoop hdfsadmin
sudo passwd hdfsadmin # 设置强密码
core-site.xml添加:<property>
<name>hadoop.security.group.mapping</name>
<value>org.apache.hadoop.security.ShellBasedUnixGroupsMapping</value>
</property>
```。
3. 权限模型配置
hdfs-site.xml,将dfs.permissions.enabled设为true(默认开启),强制HDFS检查用户权限;fs.permissions.umask-mode参数设置新文件/目录的默认权限(如022,即文件权限644、目录权限755),避免过度开放:<property>
<name>fs.permissions.umask-mode</name>
<value>022</value>
</property>
/user)的权限设为1777(粘滞位),防止非所有者删除他人文件:hdfs dfs -chmod 1777 /user
```。
4. 访问控制列表(ACL)
hdfs-site.xml,将dfs.namenode.acls.enabled设为true,支持更细粒度的权限控制;hdfs dfs -setfacl命令为用户/组添加权限(如为用户datauser添加对/data目录的读写执行权限):hdfs dfs -setfacl -m user:datauser:rwx /data
hdfs dfs -getfacl命令查看目录/文件的ACL设置:hdfs dfs -getfacl /data
```。
5. Kerberos身份认证
sudo apt install krb5-user,配置/etc/krb5.conf文件(指定KDC服务器、领域等信息);kinit命令获取票据(如kinit hdfsadmin@EXAMPLE.COM),验证身份;core-site.xml和hdfs-site.xml,启用Kerberos认证:<!-- core-site.xml -->
<property>
<name>hadoop.security.authentication</name>
<value>kerberos</value>
</property>
<!-- hdfs-site.xml -->
<property>
<name>hadoop.security.authorization</name>
<value>true</value>
</property>
hdfs.headless.keytab)分发至集群节点,确保服务能自动认证。6. 数据加密
core-site.xml启用SSL,指定证书路径(如ssl.server.keystore.location、ssl.client.truststore.location),保护客户端与服务端之间的数据传输;hdfs crypto -createKey -provider jceks://file/etc/hadoop/keystore.jceks -keyalg AES -keysize 256
编辑core-site.xml和hdfs-site.xml,指定密钥提供者路径及加密区域:<!-- core-site.xml -->
<property>
<name>dfs.encryption.key.provider.path</name>
<value>jceks://file/etc/hadoop/keystore.jceks</value>
</property>
<!-- hdfs-site.xml -->
<property>
<name>dfs.encrypt.data.transfer</name>
<value>true</value>
</property>
```。
7. 监控与审计
core-site.xml,配置审计日志的最大大小(hadoop.security.audit.log.maxsize)和备份数量(hadoop.security.audit.log.maxbackupindex),记录所有HDFS操作(如读、写、删除);Logwatch或Fail2ban,自动监控系统日志,及时发现异常访问(如频繁的失败登录尝试)。8. 其他安全措施
ufw限制入站流量,仅允许必要的端口(如SSH的22端口、HDFS的8020端口、Web UI的9870端口):sudo ufw allow 22/tcp
sudo ufw allow 8020/tcp
sudo ufw allow 9870/tcp
sudo ufw enable
sudo apt upgrade hadoop),修补安全漏洞;制定数据备份策略(如每日增量备份、异地存储),确保数据可恢复。