CentOS环境下HDFS安全配置的关键注意事项
cat /etc/passwd | awk -F ':' '{print$1,$3}' | grep ' 0$'
识别超级用户账户,移除多余账户并锁定(passwd -l <用户名>
),降低权限滥用风险。/etc/login.defs
文件,设置PASS_MIN_LEN 10
(密码长度≥10位),强制包含大小写字母、数字和特殊字符;使用chattr +i
命令锁定/etc/passwd
、/etc/shadow
等关键密码文件,防止未授权修改。/etc/pam.d/su
文件,添加auth required pam_wheel.so use_uid
,仅允许wheel
组用户使用su切换至root;在/etc/profile
中设置TMOUT=300
(root用户5分钟无操作自动登出),减少会话暴露时间。集成Kerberos协议实现强身份验证,确保只有合法用户能访问HDFS。配置core-site.xml
中的hadoop.security.authentication
为kerberos
,并通过kinit
命令获取票据;定期更新Kerberos keytab文件,避免密钥过期。
hdfs-site.xml
中设置dfs.permissions.enabled=true
,激活HDFS权限检查,禁止未授权访问。dfs.namenode.acls.enabled=true
,允许为特定用户/组设置更细粒度的权限(如hdfs dfs -setfacl -m user:hue:rwx /data
);使用hdfs dfs -getfacl
验证ACL设置。fs.permissions.umask-mode
参数(如022
)控制新文件/目录的默认权限(用户:读写执行,组:读执行,其他:读执行),避免过度开放权限。hdfs dfs -ls -R /
检查目录权限)。core-site.xml
中的hadoop.ssl.enabled
为true
,并部署证书(如自签名或CA签发)。hdfs-site.xml
中的hadoop.crypto.key.provider.uri
(密钥存储路径)和加密算法(如AES-256),确保存储数据即使被窃取也无法解读。log4j.properties
配置hadoop.security.logger
),记录用户身份、操作类型(如read
、write
)、时间戳等信息,便于后续安全事件调查。firewalld
或iptables
限制HDFS关键端口(如NameNode的8020、DataNode的50010)的访问,仅允许受信任IP地址接入,阻断非法流量。hdfs dfs -copyToLocal
复制到异地服务器),制定并演练恢复流程(如模拟节点故障恢复),确保数据丢失时可快速复原。ssh-keygen
生成密钥对,ssh-copy-id
分发公钥),避免密码泄露风险,提升节点间通信安全性。