Ubuntu如何配置Hadoop安全设置
导读: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 Ranger 或 Apache Sentry(与 Hive/Spark 等组件联动)实现 库/表/列级 策略与审计;在 Hadoop 侧开启 审计日志 并集中到 审计平台(如 ELK/Splunk)进行留存与告警。
五 时间同步与运维安全
- 时间同步(NTP/Chrony):
- Ubuntu 建议安装并启用 NTP 或 chrony,使用可靠 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
