温馨提示×

Debian系统Hadoop安全设置指南

小樊
31
2025-12-07 08:10:12
栏目: 智能运维

Debian系统 Hadoop 安全设置指南

一 基础加固与系统准备

  • 身份与账号
    • 创建专用系统账号与组(如:hdfs、yarn、mapred),各服务以最小权限运行,避免共享账号;为运维与自动化任务配置sudo最小化授权(使用 visudo 精确控制命令白名单)。
  • 系统与软件
    • 保持 DebianHadoop 组件及时更新与补丁;为所有账户启用强密码策略并定期轮换。
  • 主机与网络
    • 启用 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时间同步;为各服务创建 principalkeytab(命名如:服务名/_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/RESTTLS/SSL;对敏感数据实施静态加密(HDFS 透明加密或应用层加密),密钥集中托管与轮换。
  • 持续运营
    • 建立变更管理基线巡检(端口、账号、权限、配置、补丁);对外部暴露面与异常流量设置告警阻断策略。

0