1. 系统安全基础配置
在CentOS系统层面强化安全是HDFS防护的前提。首先,禁用非必要超级用户:通过cat /etc/passwd | awk -F ':' '{print$1,$3}' | grep ' 0$'识别超级用户账户,使用passwd -l <用户名>锁定不必要的账户(如adm、lp等),仅保留必需的超级用户(如hdfs);其次,强化密码策略:修改/etc/login.defs文件,设置PASS_MIN_LEN 10(密码长度≥10位),并要求包含大写字母、小写字母、数字和特殊字符;再者,保护关键文件:使用chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow命令锁定口令文件,防止未授权修改;最后,限制敏感操作:通过/etc/pam.d/su文件限制仅特定组(如wheel)用户可使用su切换root,修改/etc/inittab禁用Ctrl+Alt+Delete重启命令。
2. HDFS身份认证强化
采用Kerberos协议实现强身份验证是HDFS安全的核心。需完成以下步骤:安装Kerberos客户端并配置/etc/krb5.conf文件(指定KDC服务器和默认域);获取Kerberos票据(kinit <用户名>);在HDFS配置文件(core-site.xml)中启用Kerberos认证:hadoop.security.authentication=kerberos,并设置hadoop.security.authorization=true(启用授权);为HDFS服务(NameNode、DataNode)创建专用Kerberos principal(如nn/_HOST@EXAMPLE.COM),并分发keytab文件至各节点。
3. 细粒度权限与访问控制
通过权限模型和ACL实现精准访问控制:
hdfs-site.xml中设置dfs.permissions.enabled=true(默认开启),强制检查用户对文件/目录的访问权限;dfs.namenode.acls.enabled=true),使用hdfs dfs -setfacl命令为用户/组添加额外权限(如hdfs dfs -setfacl -m user:hue:rwx /data/project),并通过hdfs dfs -getfacl验证设置;fs.permissions.umask-mode参数(如设置为022)控制新生成文件/目录的默认权限(用户:rwx,组:r-x,其他:r-x);4. 数据加密保护
传输层加密:使用SSL/TLS协议加密HDFS客户端与服务端之间的数据传输,在core-site.xml中配置hadoop.ssl.enabled=true,并指定证书路径(hadoop.ssl.keystore.file、hadoop.ssl.truststore.file);存储层加密:启用HDFS透明数据加密(TDE),在hdfs-site.xml中配置加密算法(如AES-256)和密钥提供者(如Java KeyStore),加密存储在磁盘上的数据,确保即使数据泄露也无法解读。
5. 网络与访问控制
通过防火墙限制对HDFS节点的访问:使用firewalld或iptables配置规则,仅允许受信任的IP地址/网段访问HDFS关键端口(NameNode默认50070、DataNode默认50075);网络隔离:将HDFS节点部署在专用VLAN或私有网络中,减少与其他网络区域的通信,降低潜在攻击面。
6. 审计与监控机制
启用审计日志:在core-site.xml中配置审计日志参数(如hadoop.security.audit.log.maxsize=1000000、hadoop.security.audit.log.maxbackupindex=10),记录所有用户操作(如读、写、删除)及系统事件;实时监控:使用Prometheus+Grafana等工具监控HDFS集群状态(如节点健康度、数据吞吐量),及时发现异常行为(如大量失败登录尝试)。
7. 数据备份与恢复
制定定期备份策略:使用hdfs dfs -cp命令或第三方工具(如DistCp)将HDFS数据备份至异地存储(如另一台服务器或云存储),备份频率根据业务需求设置为每日/每周;测试恢复流程:定期演练数据恢复步骤(如从备份副本还原/user/data目录),确保备份数据的完整性和可用性。
8. 其他增强措施
chattr +i锁定core-site.xml、hdfs-site.xml等关键配置文件,防止未授权修改。