Hadoop在Ubuntu上的安全设置怎么做
小樊
42
2025-12-26 14:58:07
Hadoop 在 Ubuntu 的安全设置清单
一 基础加固
- 系统与服务账户
- 创建专用的 hadoop 用户与用户组,避免使用 root 运行服务;为各节点间服务通信准备专用的 keytab 与服务主体。
- 主机与网络
- 启用 UFW 防火墙,仅开放必要端口(如 22/8020/9000/50070/50470/50090/50075/50475/50010/50020/8088/8030:8033/8040:8042/10020/19888),并按需限制来源网段;最小化暴露面,管理口与数据口分离。
- SSH 访问
- 使用 SSH 密钥 登录,禁用密码登录与 root 直连;为集群运维建立专用的 运维账户 + sudo 策略,密钥文件权限设为 600。
- 系统与软件
- 保持 Ubuntu 与 Hadoop 的安全补丁为最新;启用自动安全更新(如 unattended-upgrades)。
二 身份与访问控制
- 启用强认证
- 部署 Kerberos:安装 krb5-user,配置 /etc/krb5.conf(如设置 default_realm、DNS 查找策略),为 NameNode/DataNode/ResourceManager/HistoryServer 等生成主体并导出 keytab;在 Hadoop 配置中开启安全认证(例如在 core-site.xml 设置 hadoop.security.authentication=kerberos,在 hdfs-site.xml 配置 dfs.namenode.kerberos.principal 等),完成后用 kinit 验证票据获取与访问。
- 细粒度授权
- 启用 HDFS ACL 与(如适用)Apache Ranger/Sentry 做列/行/路径级授权;对敏感目录设置最小权限(如 700/750),定期审计权限分配。
- 传输加密
- 为 RPC、HTTP/HTTPS Web UI、HDFS 数据传输 启用 SSL/TLS;为 Web 控制台启用 HTTPS(如 50470/50475),并限制仅可信网段访问。
三 网络与端口最小化
- 防火墙规则示例(UFW)
- 启用并放行必要端口:
- 管理/控制面:22/tcp(SSH)、8088/tcp(ResourceManager)、19888/tcp(JobHistory Web UI)
- HDFS:8020/tcp 或 9000/tcp(NameNode RPC)、50070/tcp(NN Web)、50470/tcp(NN HTTPS)、50090/tcp(Secondary NN)、50075/tcp(DataNode Web)、50475/tcp(DN HTTPS)、50010/tcp/50020/tcp(DN 数据传输)
- YARN/MapReduce:8030:8033/tcp(RM IPC)、8040:8042/tcp(NM)
- 历史服务:10020/tcp(MR JobHistory Server)
- 可按需仅对管理网段开放管理端口,数据端口限制为集群内网段。
- 端口基线参考
- 常见端口包括:8020/9000(NameNode RPC)、50070/50470(NN Web/HTTPS)、50090(SNN)、50075/50475(DN Web/HTTPS)、50010/50020(DN 数据传输)、8088(RM)、8030-8033(RM IPC)、8040-8042(NM)、10020/19888(JobHistory)、22(SSH)。
四 审计与监控
- 日志与审计
- 启用 Hadoop 审计日志 与系统审计(如 auditd),集中采集 NameNode/ResourceManager/DataNode 日志;对关键目录与数据访问设置 HDFS 审计 与告警。
- 入侵防护与可用性
- 部署 Fail2Ban 防止 SSH 暴力破解;结合 Snort 等 IDS 做异常流量检测;建立 监控与告警(如端口存活、服务状态、认证失败次数、异常访问)。
五 时间同步与合规
- 时间同步
- Kerberos 对时间敏感,需全集群时间一致。Ubuntu 建议安装 ntp 或 chrony 并配置可靠 NTP 源(如 ntp.aliyun.com),启用并验证服务状态,确保 chronyd/ntpd 正常运行。
- 合规与备份
- 制定并执行 安全基线 与 变更管理;定期 漏洞扫描 与 配置审计;对 HDFS 与元数据实施 定期备份与可验证恢复演练。