首页主机资讯Ubuntu如何配置Hadoop安全设置

Ubuntu如何配置Hadoop安全设置

时间2026-01-22 03:04:04发布访客分类主机资讯浏览501
导读:Ubuntu上配置Hadoop安全设置 一 基础加固 启用防火墙并仅开放必要端口(示例为 Ubuntu 的 UFW): 启用:sudo ufw enable 放行端口:sudo ufw allow 8020,9000,50070,504...

Ubuntu上配置Hadoop安全设置

一 基础加固

  • 启用防火墙并仅开放必要端口(示例为 Ubuntu 的 UFW):
    • 启用:sudo ufw enable
    • 放行端口:sudo ufw allow 8020,9000,50070,50470,50090,50075,50475,50010,50020,8088,8030:8033,8040:8042,10020,19888,22
    • 说明:上述端口覆盖 HDFS NameNode/RPC、DataNode、YARN ResourceManager/NodeManager、JobHistory 等常用通信与 Web UI。生产环境可按最小暴露面收敛到管理网段。
  • 强化 SSH 访问:
    • 使用 SSH 密钥认证,禁用密码登录(PasswordAuthentication no),仅允许受控用户与跳板机访问;为运维开通 sudo 并采用最小权限原则。
  • 系统与组件更新:
    • 定期执行 sudo apt update & & sudo apt upgrade,及时修补 Hadoop/Java/OS 漏洞;为关键目录设置最小权限与属主(如 HDFS 数据目录、日志目录)。

二 身份认证 Kerberos

  • 前置条件与规划:
    • 部署 KDC/Realm,完成 正向/反向 DNS;各节点时间同步(见下一节)。
    • 建议以专用系统用户运行守护进程:hdfs(NameNode/DataNode/SecondaryNameNode)、yarn(ResourceManager/NodeManager)、mapred(JobHistoryServer),并统一属组(如 hadoop)。
  • 服务 Principal 与 Keytab:
    • Principal 命名规范:ServiceName/_HOST@REALM.TLD,例如 nn/host1.example.com@EXAMPLE.COM;使用 _HOST 通配符便于同配置多节点分发,但每个节点的 keytab 需包含本机 FQDN 的条目。
    • 常见服务与 keytab 示例:
      • HDFS:nn.service.keytab(NameNode)、sn.service.keytab(Secondary)、dn.service.keytab(DataNode)
      • YARN:rm.service.keytab(ResourceManager)、nm.service.keytab(NodeManager)
      • MapReduce:jhs.service.keytab(JobHistoryServer)
    • 校验 keytab:klist -e -k -t /etc/security/keytab/nn.service.keytab
  • Hadoop 侧关键配置(示例要点):
    • core-site.xml:启用安全(hadoop.security.authentication=kerberos)、设置 hadoop.rpc.protection=authentication|integrity|privacy(按需选择认证/完整性/机密性)。
    • hdfs-site.xml:启用 dfs.permissions.enabled=true;配置 dfs.namenode.kerberos.principal/hadoop.security.token.service.use_ip=false(避免主机名解析差异导致票据校验失败);DataNode 数据传输启用 SASL(默认已启用)。
    • yarn-site.xml:为 ResourceManager/NodeManager 配置 yarn.resourcemanager.principal/yarn.nodemanager.principal 与对应 keytab;启用 yarn.nodemanager.container-executor.class=org.apache.hadoop.yarn.server.nodemanager.LinuxContainerExecutor 并结合 container-executor.cfg 做进程隔离(可选,生产推荐)。
    • mapred-site.xml:为 JobHistoryServer 配置 mapreduce.jobhistory.principal/keytab;客户端提交作业前执行 kinit 获取票据或使用 keytab 程序化登录。
  • 常见排错要点:
    • 日志关键字:Authentication failed for user xxx、SASL negotiation failed;优先检查 DNS 正反解析、时间偏差、keytab 主机名与权限(600)、principal 拼写与 realm 一致性

三 传输加密与 Web 安全

  • RPC 与数据传输加密:
    • core-site.xml 设置 hadoop.rpc.protection=privacy 以启用 RPC 加密;HDFS 数据传输(DataNode 之间)默认通过 SASL 保护,必要时可结合 SSL/TLS 对 HTTP/Web 通道加密(如启用 HTTPS 的 50070→50470、50075→50475)。
  • Web UI 访问控制:
    • 将 Web UI 绑定到 管理网段/内网 VIP,或通过反向代理(如 Nginx/Apache)叠加 TLS基于角色的访问控制;禁用不必要的外网暴露与默认演示账户。

四 授权与审计

  • 文件系统权限与 ACL:
    • 启用 HDFS 权限检查(dfs.permissions.enabled),结合 POSIX ACL 做细粒度授权;对敏感目录设置默认 ACL 与定期审计。
  • 统一授权治理(可选):
    • 引入 Apache RangerApache Sentry(与 Hive/Spark 等组件联动)实现 库/表/列级 策略与审计;在 Hadoop 侧开启 审计日志 并集中到 审计平台(如 ELK/Splunk)进行留存与告警。

五 时间同步与运维安全

  • 时间同步(NTP/Chrony):
    • Ubuntu 建议安装并启用 NTPchrony,使用可靠 NTP 源(如 ntp.aliyun.com),确保所有节点 时钟偏差在秒级 内;Kerberos 对时间敏感,偏差过大将导致票据校验失败。
  • 持续运维与监控:
    • 启用 防火墙日志Hadoop 审计日志,对异常登录、权限变更、作业异常进行告警;定期做 配置基线审计、密钥轮换(keytab)、漏洞扫描与备份演练

名词澄清

  • Hadoop 的“安全模式(Safemode)”是 NameNode 的只读维护状态,用于元数据恢复与副本检查,与 身份认证/授权 无关。常用命令:
    • 查看状态:hdfs dfsadmin -safemode get
    • 手动进入:hdfs dfsadmin -safemode enter
    • 手动退出:hdfs dfsadmin -safemode leave
    • 等待自动退出:hdfs dfsadmin -safemode wait
    • 相关参数:dfs.namenode.safemode.threshold-pct(默认 0.999)、dfs.namenode.safemode.extension(默认 30000 ms)。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu如何配置Hadoop安全设置
本文地址: https://pptw.com/jishu/789453.html
Ubuntu如何利用Hadoop进行大数据分析 Hadoop在Ubuntu上如何进行版本升级

游客 回复需填写必要信息