总体思路
在 CentOS 上保障 Hadoop(以 HDFS 为主) 的安全,建议从 系统基线、身份认证、访问控制、加密与审计、网络与端口治理、运维与监控 六个层面协同加固,形成闭环防护。
一 系统基线加固
- 账户与权限最小化:清理不必要的超级用户与默认账户,锁定或删除可疑账户;为关键账户设置强口令(长度≥10位,包含大小写字母、数字与特殊字符),并限制 root 直接登录与 su 使用范围。
- 关键文件防护:对 /etc/passwd、/etc/shadow、/etc/group、/etc/gshadow 设置不可变属性(如 chattr +i),降低被篡改风险。
- 会话与登录安全:设置 TMOUT 自动注销;禁用 Ctrl+Alt+Del 重启;仅开启必需的系统服务,及时更新系统与 Hadoop 补丁。
- 远程管理:使用 SSH 密钥登录 替代口令,禁用 root 远程登录,限制可登录用户与来源网段。
以上措施能显著降低操作系统层面的入侵面,为 Hadoop 提供稳固底座。
二 身份认证与授权
- 启用 Kerberos 强认证:在所有节点部署 KDC,为 NameNode、DataNode、ResourceManager、NodeManager、JobHistory 等创建服务主体与 keytab,服务主体命名遵循 服务名/_HOST@REALM 规范,进程以最小权限的专用系统用户运行(如 hdfs、yarn、mapred)。
- 服务级授权与 RPC 保护:开启 hadoop.security.authorization,将 hadoop.rpc.protection 设为 authentication 或更高;为 Hadoop 进程配置 auth-to-local 规则,将 Kerberos 主体安全映射为本地系统用户。
- 代理用户治理:按需配置 hadoop.proxyuser.*,仅允许受控用户/组代理提交作业,避免权限滥用。
- Web 控制台认证:关闭或限制 HTTP 匿名访问(如将 hadoop.http.authentication.simple.anonymous.allowed 设为 false),并为 Web 端启用 Kerberos 或 HTTPS。
上述配置可确保“人-服务-进程”全链路身份可信,避免横向移动与越权访问。
三 加密与数据保护
- 传输加密:开启 RPC/HTTPS/WebHDFS 等通道的 SSL/TLS;在 HDFS 上启用数据传输加密(如设置 dfs.encrypt.data.transfer=true),防止链路窃听与中间人攻击。
- 静态加密:启用 HDFS 透明数据加密(TDE),对落盘数据进行加密,即使介质被物理获取也难以还原明文。
- 完整性校验:依赖 HDFS 的 校验和 机制(如 MD5/SHA-1)保障数据块在读写过程中的完整性,及时发现损坏。
通过传输与静态双重加密以及完整性校验,构建端到端的数据保密性与可用性。
四 访问控制与审计
- 细粒度访问控制:结合 POSIX 权限 与 ACL,为敏感目录/文件设置最小权限;对业务域与项目组实施 RBAC 隔离。
- 审计与可追溯:启用 HDFS 审计日志,记录用户身份、操作类型、时间、目标对象等,配合集中日志平台进行留存与告警分析。
- 安全模式运用:在维护窗口或异常场景下合理使用 NameNode 安全模式,在确保数据块一致性的前提下限制元数据变更。
访问控制与审计结合,既降低误用与滥用风险,又满足合规与取证需求。
五 网络与端口治理
- 最小化暴露面:仅开放必要端口与协议,将服务绑定到内网接口;通过 firewalld/iptables 对来源 IP 进行白名单控制,避免对公网开放管理端口。
- 修改默认端口:将 NameNode、DataNode、ResourceManager、JobHistory 等默认 Web/RPC 端口改为非默认值,降低自动化扫描与爆破成功率。
- 服务最小化:对未使用的组件与接口(如部分 WebHDFS 能力)按需关闭或限制访问来源。
通过“改端口 + 控来源 + 关冗余”的组合,显著缩小攻击面并提升入侵难度。
六 运维与监控
- 补丁与配置基线:建立 定期补丁 与 配置合规 流程,变更前后进行影响评估与回滚演练。
- 备份与恢复:对 NameNode 元数据 与关键业务数据制定 定期备份 与 异地容灾 策略,并进行周期性恢复演练。
- 实时监控与告警:对 认证失败、异常访问、权限变更、磁盘/网络异常 等设定阈值告警,联动工单闭环处置。
持续化的运维与监控能力,是快速发现、定位与止损的关键保障。