centos hdfs安全配置指南
导读:CentOS 上 HDFS 安全配置指南 一 系统安全基线 账户与口令 排查并锁定不必要的 UID=0 账户:cat /etc/passwd | awk -F ':' '{print $1,$3}' | grep ' 0$';锁定命令:...
CentOS 上 HDFS 安全配置指南
一 系统安全基线
- 账户与口令
- 排查并锁定不必要的 UID=0 账户:
cat /etc/passwd | awk -F ':' '{ print $1,$3} ' | grep ' 0$';锁定命令:passwd -l < 用户>。 - 强化口令策略:在 /etc/login.defs 设置
PASS_MIN_LEN 10,要求包含大小写字母、数字与特殊字符。 - 保护关键文件:
chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow。 - 限制 root 会话:
echo "TMOUT=600" > > /etc/profile(10 分钟自动注销);仅允许特定组使用 su:编辑 /etc/pam.d/su。
- 排查并锁定不必要的 UID=0 账户:
- 服务与网络
- 仅开放必要端口(如 8020/9000/50070/50075),其余默认拒绝;启用 firewalld 或 iptables 白名单策略。
- 节点间启用 SSH 互信(便于启动/运维),但限制私钥权限为 600,禁用口令登录。
- 全集群 NTP 时间同步,避免 Kerberos 票据异常。
- 加固提示
- 不建议直接关闭 SELinux 或防火墙;如必须临时关闭,应在变更窗口内完成并尽快恢复。
二 启用 Kerberos 强认证
- 安装与初始化
- 安装组件:
sudo yum install -y krb5-server krb5-admin-server krb5-workstation。 - 配置 /etc/krb5.conf:设置默认领域、KDC 与管理服务地址、票据生命周期等。
- 启动服务:
sudo systemctl start krb5kdc、sudo systemctl start kadmind。
- 安装组件:
- 创建主体与密钥表
- 新增主体:
sudo kadmin.local -q "addprinc -randkey hdfs/< nn-host> @YOUR.REALM.COM"。 - 导出密钥表:
sudo kadmin.local -q "ktadd -k /etc/security/keytabs/hdfs.keytab hdfs/< nn-host> ";设置权限:chown hdfs:hadoop /etc/security/keytabs/hdfs.keytab & & chmod 400 /etc/security/keytabs/hdfs.keytab。
- 新增主体:
- Hadoop 启用 Kerberos
- core-site.xml
< property> < name> hadoop.security.authentication< /name> < value> kerberos< /value> < /property> < property> < name> hadoop.security.authorization< /name> < value> true< /value> < /property> - hdfs-site.xml(示例)
< property> < name> dfs.namenode.kerberos.principal< /name> < value> hdfs/< nn-host> @YOUR.REALM.COM< /value> < /property> < property> < name> dfs.namenode.keytab.file< /name> < value> /etc/security/keytabs/hdfs.keytab< /value> < /property> < property> < name> dfs.datanode.kerberos.principal< /name> < value> hdfs/< dn-host> @YOUR.REALM.COM< /value> < /property> < property> < name> dfs.datanode.keytab.file< /value> /etc/security/keytabs/hdfs.keytab< /value> < /property> < property> < name> dfs.namenode.http-authentication.kerberos.principal< /name> < value> HTTP/< nn-host> @YOUR.REALM.COM< /value> < /property> < property> < name> dfs.namenode.http-authentication.kerberos.keytab< /name> < value> /etc/security/keytabs/spnego.keytab< /value> < /property>
- core-site.xml
- 验证
- 使用
kinit hdfs/< nn-host> @YOUR.REALM.COM获取票据后执行hdfs dfs -ls /验证访问;检查 NameNode/DataNode 日志是否出现 SASL/GSSAPI 认证成功信息。
- 使用
三 权限与 ACL 细粒度控制
- 启用权限与默认掩码
- hdfs-site.xml
< property> < name> dfs.permissions.enabled< /name> < value> true< /value> < /property> < property> < name> fs.permissions.umask-mode< /name> < value> 022< /value> < /property>
- hdfs-site.xml
- 基础权限与属主
- 目录基线:
hdfs dfs -chmod 755 /user、hdfs dfs -chown hadoop:hadoop /user(按实际业务调整属主/属组)。 - 共享目录可设置 粘滞位:
hdfs dfs -chmod 1777 /user/tmp,防止非属主删除他人文件。
- 目录基线:
- ACL 细粒度
- 授予额外用户/组:
hdfs dfs -setfacl -m user:< user> :r-x /user/project - 查看 ACL:
hdfs dfs -getfacl /user/project
- 授予额外用户/组:
- 审计与合规
- 启用 HDFS 审计日志(AccessAudit),集中采集并保留至少 90 天;结合 Ranger 实现基于策略的授权与审计。
四 加密与数据保护
- 传输加密
- 启用数据传输加密:
hdfs dfsadmin -setEncryptionPolicy -path /data -policy encrypted(需先创建加密区);或在 hdfs-site.xml 设置dfs.encrypt.data.transfer=true并在集群范围启用 TLS/SSL(如 HTTPS/WebHDFS)。
- 启用数据传输加密:
- 透明数据加密 TDE
- 创建密钥:
hdfs crypto -createZone -keyName zoneKey1 -path /user/secure - 加密目录:
hdfs crypto -encrypt -path /user/secure/data -keyName zoneKey1 - 注意:加密区仅对新写入数据生效,存量数据需迁移或重放写入以完成加密。
- 创建密钥:
- 完整性与备份
- HDFS 默认通过校验和(如 CRC32)保障数据完整性;关键数据实施 定期备份与异地容灾,并定期演练恢复流程。
五 运维与加固清单
- 安全模式与可用性
- 只读维护窗口可手动进入:
hdfs dfsadmin -safemode enter;恢复写入:hdfs dfsadmin -safemode leave;查看状态:hdfs dfsadmin -safemode get。
- 只读维护窗口可手动进入:
- 最小权限与分组治理
- 按业务划分 用户/用户组,遵循 最小权限原则;定期审计 /user、/tmp 等关键目录权限。
- 补丁与监控告警
- 全集群 及时打补丁;启用 主机与HDFS 监控/告警(异常登录、权限变更、NameNode/DataNode 异常、磁盘/副本告警等)。
- 服务最小化
- 关闭不必要的 Web 界面 或限制来源 IP;仅暴露必要端口;禁用未使用的 Hadoop 服务/协议。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos hdfs安全配置指南
本文地址: https://pptw.com/jishu/763461.html
