Debian系统Hadoop安全设置指南
小樊
31
2025-12-07 08:10:12
Debian系统 Hadoop 安全设置指南
一 基础加固与系统准备
- 身份与账号
- 创建专用系统账号与组(如:hdfs、yarn、mapred),各服务以最小权限运行,避免共享账号;为运维与自动化任务配置sudo最小化授权(使用 visudo 精确控制命令白名单)。
- 系统与软件
- 保持 Debian 与 Hadoop 组件及时更新与补丁;为所有账户启用强密码策略并定期轮换。
- 主机与网络
- 启用 UFW 防火墙,仅开放必要端口(如 SSH 22/TCP 与集群内部通信端口),并按需限制来源网段;对公网仅暴露必要入口。
- 进程与目录隔离
- 以不同 Unix 用户运行 NameNode/DataNode/ResourceManager/NodeManager/JobHistory;本地数据目录与日志目录设置严格属主与权限,避免越权访问。
- 时间与时钟
- 全集群启用 NTP/chrony 时间同步,避免因时钟漂移导致 Kerberos 票据异常。
- 安全基线
- 禁用或限制匿名访问、修改默认管理端口、限制 RPC 暴露面,作为上线前的必做项。
二 网络与端口防护
- UFW 最小暴露示例(按需精简与限制来源)
- 启用防火墙:sudo ufw enable
- 常用端口开放(示例):sudo ufw allow 22/tcp;sudo ufw allow 8020/tcp;sudo ufw allow 9000/tcp;sudo ufw allow 8088/tcp;sudo ufw allow 8030:8033/tcp;sudo ufw allow 8040:8042/tcp;sudo ufw allow 50070/tcp;sudo ufw allow 50470/tcp;sudo ufw allow 19888/tcp
- 查看状态:sudo ufw status numbered
- 端口基线参考(按版本区分,生产可改为非默认端口并配合防火墙限制来源)
- 组件与端口(示例)
- HDFS NameNode:RPC 8020/9000,HTTP 50070/9870,HTTPS 50470/9871
- HDFS DataNode:数据传输 50010/9866,HTTP 50075/9864,HTTPS 50475/9865
- YARN ResourceManager:RPC 8030–8033,HTTP 8088/8177,HTTPS 8090/8179
- MapReduce JobHistory:RPC 10020/12202,HTTP 19888/18999
- Secondary NameNode:HTTP 50090/9868,HTTPS 50091/9869
- 加固要点
- 将管理 UI 与 RPC 端口仅对管理网段开放;必要时修改默认端口降低暴露面;对 WebHDFS 与 DataNode 接口实施来源限制与访问控制。
三 认证与授权体系
- 启用 Kerberos 强认证
- 在所有节点正确配置 DNS/hosts 与 时间同步;为各服务创建 principal 与 keytab(命名如:服务名/_HOST@REALM),并在服务配置中指定 keytab 路径与权限(仅属主可读)。
- 核心配置示例(core-site.xml):
- hadoop.security.authentication=kerberos
- hadoop.rpc.protection=authentication(可按需提升至 privacy/integrity)
- 进程与账号:确保 NameNode/DataNode/ResourceManager/NodeManager/JobHistory 以独立系统用户运行,并归属统一组(如 hadoop)。
- 服务级授权与 Web 控制台安全
- 启用服务级授权:hadoop.security.authorization=true
- 禁用 Web UI 匿名访问:hadoop.http.authentication.simple.anonymous.allowed=false
- 为 Web 控制台启用 HTTPS/SSL,避免凭据与敏感信息明文传输。
- HDFS 与 YARN 基础权限
- 启用 HDFS 权限检查:dfs.permissions.enabled=true
- 启用 ACL 细粒度控制:dfs.namenode.acls.enabled=true
- 在 HDFS 上按业务划分目录与权限(如 /tmp、/user、/warehouse 等),并定期审计权限配置。
- 集中式策略与审计(可选)
- 引入 Apache Ranger 实现 HDFS/YARN/Hive 等组件的集中授权、行级权限与审计;对多租户与合规场景强烈推荐。
四 文件权限与本地安全
- 本地目录与文件权限建议(示例)
- dfs.namenode.name.dir、dfs.datanode.data.dir:hdfs:hadoop,700
- $HADOOP_LOG_DIR:hdfs:hadoop,775;$YARN_LOG_DIR:yarn:hadoop,775
- yarn.nodemanager.local-dirs、yarn.nodemanager.log-dirs:yarn:hadoop,755
- container-executor:root:hadoop,6050(setuid/setgid 严格受控)
- container-executor.cfg:root:hadoop,400
- HDFS 顶层目录与关键路径
- /:hdfs:hadoop,755
- /tmp:hdfs:hadoop,1777(粘滞位)
- /user:hdfs:hadoop,755
- yarn.nodemanager.remote-app-log-dir:yarn:hadoop,1777
- mapreduce.jobhistory.intermediate-done-dir:mapred:hadoop,1777
- mapreduce.jobhistory.done-dir:mapred:hadoop,750
- 主机加固
- 按需启用 AppArmor/SELinux 对 Hadoop 进程进行强制访问控制;为 SSH 禁用 root 登录与密码登录,仅保留基于密钥的认证。
五 审计监控与合规
- 日志与审计
- 集中收集 NameNode/DataNode/ResourceManager/NodeManager/JobHistory 日志,关注认证失败、权限拒绝、异常访问与配置变更;对关键目录与表设置定期权限审计。
- 加密与密钥管理
- 启用 Web UI/REST 的 TLS/SSL;对敏感数据实施静态加密(HDFS 透明加密或应用层加密),密钥集中托管与轮换。
- 持续运营
- 建立变更管理与基线巡检(端口、账号、权限、配置、补丁);对外部暴露面与异常流量设置告警与阻断策略。