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分发公钥),避免密码泄露风险,提升节点间通信安全性。