Wazuh怎么收集系统日志、文件完整性变化并自动执行主动防御

夏晨姑娘_2198

夏晨姑娘_2198

2026-10-30

124人浏览

原创

Wazuh通过logcollector模块收集日志,需在ossec.conf中显式配置localfile或remote段并指定正确log_format(如syslog、eventlog),否则日志将被丢弃或解析失败;Linux系统日志建议用syslog格式,Windows事件日志须用eventlog或eventchannel格式,路径含空格时Windows需加双引号,轮转日志需配置ignore和frequency,远程syslog需启用manager端syslog接收并开放514端口。

wazuh怎么收集系统日志、文件完整性变化并自动执行主动防御

系统日志收集:确认 logcollector 是否启用并匹配正确格式

Wazuh 默认通过 ossec-logcollector 进程读取日志,但必须在 ossec.conf 中显式配置 或事件通道才能生效。常见错误是只改了路径却没配 ,导致日志被丢弃或解析失败。

Linux 系统日志(如 /var/log/auth.log)建议用 syslog 格式;Windows 事件日志必须用 eventlog(如 Security)或 eventchannel(如 Microsoft-Windows-PowerShell/Operational)。

  • 路径含空格或特殊字符时,Windows 下需用双引号包裹 值
  • 若日志轮转频繁(如 auth.log.1.gz),需额外配置 和 ,否则旧文件不会被重读
  • 远程 syslog 接入需在 manager 的 syslog 段启用,并确保防火墙放行 UDP/TCP 514 端口

文件完整性监控(FIM):syscheckd 启动后仍无告警的典型原因

FIM 功能由独立进程 ossec-syscheckd 驱动,它不依赖 logcollector。即使 模块已启用,以下情况仍会导致无变更告警:

  • 路径末尾带斜杠(如 /etc/)会触发递归扫描异常,应写为 /etc
  • Linux 下未启用 who-data 模式时,无法记录修改进程名和用户,且对 inotify 句柄数有硬限制(默认 8192),大目录需调高 /proc/sys/fs/inotify/max_user_watches
  • Windows 下若目标路径在重定向文件夹(如 OneDrive 同步目录),FIM 可能因权限或句柄不可见而静默跳过
  • 首次运行后,基线数据库生成需等待一个完整 周期(默认 43200 秒),期间仅实时事件有效

主动响应(Active Response):规则匹配后命令不执行的关键检查点

主动响应不是“检测即阻断”,它依赖三要素同时满足:rule 触发、active-response 配置启用、agent 端具备执行权限。最容易忽略的是 agent 侧限制:

MagicForm
MagicForm

MagicForm是一款用于创建智能表单、线索问答和销售资格筛选的 AI 表单工具。

下载
  • Linux agent 默认禁用 shell 命令执行,需在 agent 的 ossec.conf 中设 yes
  • Windows agent 执行 PowerShell 脚本需提前在 GPO 或本地策略中设置 ExecutionPolicy RemoteSigned 或更低限制
  • 响应命令超时默认 5 秒,封禁 IP 类操作(如调用 iptables 或 netsh)若耗时略长会被强制终止,建议加 timeout="10" 属性
  • manager 端定义的 必须与 agent 端 名称完全一致,大小写敏感

联动验证:如何确认日志→FIM→响应整条链路跑通

不要等真实攻击发生才测试。最简验证路径是:手动改一个被监控文件 → 查看 agent 日志 → 确认 manager 是否收到 FIM 事件 → 检查是否触发预设 rule → 观察 active-response 命令是否出现在 agent 的 ossec.log 中。

关键日志位置:

  • agent 侧:查看 /var/ossec/logs/ossec.log(Linux)或 C:\Program Files (x86)\ossec-agent\ossec.log(Windows),搜索 syscheck 或 active-response
  • manager 侧:用 wazuh-control status 确保 ossec-analysisd 和 ossec-execd 均在运行;用 tail -f /var/ossec/logs/alerts/alerts.json 实时观察结构化输出
  • 规则调试:临时把目标 rule 的 改为 0 并 reload,可强制触发告警而不进 SIEM,避免被过滤逻辑干扰

真正难的不是配置语法,而是每个模块都运行着但彼此“听不见”——比如 syscheckd 发出的事件没被 analysisd 的规则覆盖,或者 analysisd 匹配成功了,execd 却因权限被 agent 拒绝执行。盯住日志里那几行 timestamp + module + action,比反复改配置有用得多。

相关专题

更多
Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

2026.10.28

40

16

Vite 如何搭配 Vue.js
Vite 如何搭配 Vue.js

Vite搭配Vue.js专题汇集创建Vue 3项目、配置开发环境、路径别名、Vue插件、代理、多环境构建与调试的已审核文章,帮助读者完成从初始化到日常开发的配置。

2026.10.28

20

15

Vite 项目目录怎么看
Vite 项目目录怎么看

Vite项目目录专题汇集入口文件、src源码、public静态资源、路径别名、项目根目录和构建输出目录相关的已审核文章,帮助读者理解各文件夹的用途与引用方式。

2026.10.28

40

10

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

2026.10.22

120

11

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

2026.10.22

80

10

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

2026.10.22

80

15

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

2026.10.22

40

10

PHP时间戳漏洞修复教程
PHP时间戳漏洞修复教程

本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。

2026.10.22

80

25

Golangci-lint配置文件与规则设置
Golangci-lint配置文件与规则设置

本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。

2026.10.22

40

15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134.1万人学习