Hadoop在Linux上如何进行安全审计
导读:Hadoop 在 Linux 上的安全审计实践 一 审计范围与总体架构 覆盖组件与日志源: HDFS:NameNode 审计日志(访问/授权事件)、DataNode 访问日志、HDFS 审计到 Linux syslog。 YARN/Ma...
Hadoop 在 Linux 上的安全审计实践
一 审计范围与总体架构
- 覆盖组件与日志源:
- HDFS:NameNode 审计日志(访问/授权事件)、DataNode 访问日志、HDFS 审计到 Linux syslog。
- YARN/MapReduce:ResourceManager/JobHistoryServer 作业与队列事件日志。
- Linux 系统层:SSH 登录/提权、sudo 命令、PAM 会话、关键系统服务日志。
- 网络层:与 TLS/SSL 相关的握手与证书事件(由系统/代理日志承载)。
- 目标与原则:
- 身份可追溯(强认证)、操作可归因(唯一主体)、行为可还原(时间线完整)、日志防篡改(集中化与只读存储)。
二 启用并加固 Hadoop 审计日志
- 启用 HDFS 审计(NameNode)
- 开启审计与 ACL 检查:
- core-site.xml
- hadoop.security.authorization=true
- hadoop.security.authentication=kerberos
- hdfs-site.xml
- dfs.permissions.enabled=true
- dfs.namenode.acls.enabled=true
- core-site.xml
- 审计输出与滚动(建议写入 Linux 系统日志,便于集中化):
- hdfs-site.xml
- dfs.namenode.audit.log.async=true(异步写,降低 NameNode 抖动)
- dfs.namenode.audit.log.token.tracking.id=true(便于追踪代理/委托场景)
- 审计日志路径示例:/var/log/hadoop-hdfs/audit.log
- 滚动策略示例:dfs.namenode.audit.log.maxsize=10485760(10 MB)、dfs.namenode.audit.log.rotation.period=86400(1 天)
- hdfs-site.xml
- 分发与重启:将配置同步到所有节点,按序重启 NameNode(滚动重启避免业务中断)。
- 开启审计与 ACL 检查:
- 启用 YARN 审计
- 在 yarn-site.xml 开启作业事件审计(如 JobHistoryServer 的访问与作业生命周期事件),并配置日志目录与滚动策略,统一接入 syslog/集中日志平台。
- 代理与委托场景的审计增强
- 若使用 Hadoop 代理用户(proxyuser),务必为代理主体配置最小权限与可审计范围,并在审计日志中结合 token.tracking.id 追踪委托链路,避免“越权不可归因”。
三 系统层与网络层审计
- Linux 系统审计(auditd)
- 记录关键主体与关键操作:
- 审计 SSH 登录与 sudo 提权:
- 示例:
sudo auditctl -a always,exit -F arch=b64 -S execve -k hdfs_sudo - 示例:
sudo auditctl -a always,exit -F path=/usr/sbin/sshd -k sshd_access
- 示例:
- 持久化规则到 /etc/audit/rules.d/hadoop.rules,并启用 auditd 服务。
- 审计 SSH 登录与 sudo 提权:
- 审计日志集中:将 /var/log/audit/audit.log 与 /var/log/hadoop-*.log 统一采集到 rsyslog/ELK/OpenSearch 等平台。
- 记录关键主体与关键操作:
- 网络与加密审计
- 启用 TLS/SSL 加密(Hadoop SSL/TLS 或反向代理/负载均衡层 TLS),并在系统/代理日志中记录握手失败、证书过期与域名不匹配等异常,配合 IDS/态势感知进行告警。
四 日志集中、保护与留存
- 集中化采集与结构化
- 使用 rsyslog/Filebeat/Logstash 将 NameNode 审计日志、DataNode 日志、YARN 日志、auditd 日志统一发送到 ELK/OpenSearch 或 Splunk,并添加统一字段:cluster、host、service、user、src_ip、timestamp。
- 防篡改与访问控制
- 审计日志目录与文件设置为 root:hadoop、0750/0640,并通过 chattr +a 或 WORM(Write Once Read Many) 存储策略防止篡改;集中日志平台启用 只读/只追加 与分权访问。
- 留存与合规
- 依据等保/行业规范设置留存周期(如 ≥180 天),对关键审计日志建立 离线归档 与 取证镜像。
五 审计分析与合规核查
- 常用审计查询范式
- 未授权访问尝试:筛选 access denied、异常 src_ip、失败次数在短时间内激增的账户。
- 超级用户/代理异常:对 proxyuser 的非常规目标路径、非常规时间段的访问进行基线比对与告警。
- 权限变更:对 chmod/chown/setfacl 与 HDFS 策略变更进行前后对比,关联工单/变更单。
- 提权与横向移动:审计 sudo 执行链、SSH 登录来源与失败重试,结合资产拓扑识别异常跳板。
- 自动化与可视化
- 在 Kibana/Grafana 建立审计看板:按 用户/队列/目录/时间 维度统计访问量、失败率、Top 异常来源;对关键事件配置 实时告警(如 5 分钟内同一主体 10 次以上 403/500 错误)。
- 例行核查清单
- 每日:检查 NameNode 审计日志 是否正常滚动、是否存在异常 403/500;核验 auditd 规则命中与错误日志。
- 每周:复核 HDFS ACL 与 Ranger/Sentry 策略变更记录,抽样比对审计日志与变更单一致性。
- 每月:开展 渗透/红队演练 与 取证演练,验证审计链路完整性与告警有效性;评估 TLS 证书有效期与加密套件合规性。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Hadoop在Linux上如何进行安全审计
本文地址: https://pptw.com/jishu/777795.html
