如何通过Wazuh监控用户所有命令(含sudo级别)并同步至Kibana
没问题,咱们来把audit日志里的所有用户命令(包括sudo操作)实时同步到Wazuh管理器和Kibana。既然你已经配置好audit规则、日志也生成在audit.logs里了,接下来只需要让Wazuh正确采集、解析这些日志,再确保事件能同步到Kibana就行。下面是具体步骤:
首先得保证服务器上的Wazuh Agent已经安装,并且和管理器保持连接。你可以用以下命令检查:
# 查看Agent运行状态 systemctl status wazuh-agent # 验证与管理器的连接(替换成你的Agent ID) /var/ossec/bin/agent_control -i <你的Agent ID>
如果Agent未启动,先启动它:systemctl start wazuh-agent。
Wazuh Agent需要明确监控的日志文件路径。编辑Agent的配置文件/var/ossec/etc/ossec.conf,找到<localfile>区块,添加或修改成如下配置(注意替换成你的audit.logs实际路径):
<localfile> <log_format>audit</log_format> <location>/path/to/your/audit.logs</location> <!-- 例如默认路径是/var/log/audit/audit.log,按实际情况修改 --> </localfile>
保存后重启Agent,让配置生效:
systemctl restart wazuh-agent
现在Agent会实时读取你的audit日志,并把数据同步到Wazuh管理器。
你已经有Audit规则,但为了完整捕获普通命令和sudo命令,建议在/etc/audit/rules.d/audit.rules里补充以下规则:
# 捕获64位/32位系统的execve调用(命令执行的核心系统调用) -a always,exit -F arch=b64 -S execve -k command_exec -a always,exit -F arch=b32 -S execve -k command_exec # 监控sudo二进制文件,精准捕获sudo操作 -w /usr/bin/sudo -p x -k sudo_command
添加后重启auditd服务:
systemctl restart auditd
这样audit日志就会详细记录每一次命令执行(包括sudo触发的命令)。
Wazuh需要把audit日志的原始事件转换成可识别的告警,方便Kibana展示。登录Wazuh管理器,编辑自定义规则文件/var/ossec/etc/rules/local_rules.xml,添加以下规则:
<group name="audit_commands,"> <!-- 普通用户命令执行告警 --> <rule id="100001" level="3"> <if_sid>80700</if_sid> <!-- 关联Wazuh内置的audit基础规则ID --> <match>type=EXECVE</match> <description>用户 $(user) 执行了命令: $(audit.argc) $(audit.argv)</description> <group>command_execution,</group> </rule> <!-- sudo命令执行告警(级别更高,方便区分权限操作) --> <rule id="100002" level="5"> <if_sid>80700</if_sid> <match>type=EXECVE</match> <match>/usr/bin/sudo</match> <description>用户 $(user) 执行了sudo命令: $(audit.argc) $(audit.argv)</description> <group>sudo_command_execution,</group> </rule> </group>
保存后重启Wazuh管理器:
systemctl restart wazuh-manager
现在当有命令执行时,Wazuh会自动生成对应的告警事件。
Wazuh会自动把所有告警同步到Elasticsearch(Kibana的数据源),你可以直接在Kibana中操作:
- 打开Kibana的Discover页面,选择
wazuh-alerts-*索引模式 - 通过过滤规则ID(
100001或100002)、告警分组(command_execution或sudo_command_execution)来筛选命令事件 - 如果需要更直观的展示,还可以创建自定义Dashboard,添加命令执行的统计图表、趋势图等
执行几条测试命令,比如:
# 普通命令 ls -l /home # sudo命令 sudo apt update
然后去Wazuh管理器的Alerts页面查看是否生成了对应告警,再到Kibana中搜索,确认能看到实时的命令事件。
内容的提问来源于stack exchange,提问作者Sulaiman




