日志审计系统SIEM搭建部署:从零搭建日志审计系统SIEM
环境准备与系统要求
开始搭建日志审计系统SIEM之前,先把基础设施准备好。
这里选择 Wazuh 作为开源方案,它集成了SIEM核心功能——日志收集、分析、告警和可视化。
你需要一台能运行Linux的服务器(推荐 Ubuntu 22.04 或 CentOS 7/8),最低配置2核4G内存、40G磁盘,生产环境建议4核8G起。
另外准备至少一台被监控的机器(Linux或Windows),用于安装Agent。
确保服务器能访问外网,因为安装过程中需要下载Wazuh仓库包。
如果你手头有宝塔面板,也可以先用宝塔快速部署一台干净的Linux系统。
安装Wazuh管理器(Server)
Wazuh采用客户端-服务器架构,管理器负责接收日志并分析。
登录到服务器,执行以下命令一键安装:
curl -sO https://packages.wazuh.com/4.x/wazuh-install.sh
sudo bash wazuh-install.sh -a
安装过程会自动配置Elasticsearch、Filebeat、Wazuh Indexer和Dashboard。
大约10~15分钟完成后,终端会输出一个随机密码:
INFO: --- Summary ---
INFO: You can access the web interface https://
User: admin
Password:
记下这个密码,稍后登录仪表盘使用。
如果安装过程中遇到网络超时,尝试更换国内镜像源(比如将packages.wazuh.com替换为mirrors.aliyun.com/wazuh)。
配置Agent并接入节点
被监控机器需要安装Wazuh Agent,以Ubuntu客户端为例:
curl -s https://packages.wazuh.com/4.x/keys/GPG-KEY-WAZUH | sudo apt-key add -
echo "deb https://packages.wazuh.com/4.x/apt/ stable main" | sudo tee /etc/apt/sources.list.d/wazuh.list
sudo apt update && sudo apt install wazuh-agent
安装完成后编辑Agent配置文件(/var/ossec/etc/ossec.conf),
找到字段,
将其中的MANAGER_IP替换为你的服务器IP:
192.168.1.10
保存后启动Agent:
sudo systemctl start wazuh-agent
sudo systemctl enable wazuh-agent
回到Wazuh仪表盘(浏览器打开 https://你的服务器IP),用之前记录的admin密码登录。
在左侧菜单「Agents」页面应该能看到新注册的客户端状态为“Active”。
如果Agent状态一直显示“Disconnected”,检查防火墙是否开放了1514和1515端口:
sudo ufw allow 1514/tcp
sudo ufw allow 1515/tcp
设置告警规则与仪表盘
Wazuh默认带了很多开箱即用的安全规则,但你可以根据自己场景定制。
在仪表盘左侧点击「Security events」可以看到实时日志流。
要新增一条告警规则,比如监控SSH登录失败超过5次:
- 登录到Wazuh管理器的终端,进入规则目录:
/var/ossec/ruleset/rules/ - 创建一个自定义规则文件,例如
local_rules.xml:
5710
Failed password
SSH brute force attempt detected
authentication_failure,
- 重启管理器使规则生效:
sudo systemctl restart wazuh-manager
之后在仪表盘的「Security events」中就能看到对应告警。
你还可以创建仪表盘图表,比如按源IP聚合日志数量,方法是在「Visualize」页面新建一个条形图,字段选择data.srcip。
避坑指南与日常维护
部署过程中有几个常见坑:
- Agent注册失败:检查服务器端的wazuh-manager是否运行正常:
systemctl status wazuh-manager。如果因为时间不同步导致证书验证失败,安装前先执行sudo apt install ntpdate && sudo ntpdate ntp.aliyun.com同步时间。 - 磁盘空间增长过快:Wazuh默认保留30天的日志索引,你可以调整Elasticsearch的ILM策略。在Dashboard中进入「Stack Management > Index Lifecycle Policies」,修改delete阶段的天数。
- CPU飙升:如果被监控服务器日志量极大(如Web服务器),建议在Agent配置中启用日志轮转或过滤掉不必要的日志源。
日常维护除了定期更新Wazuh版本外,建议每周查看“Agents”页面确认所有节点在线,并检查/var/ossec/logs/ossec.log是否有异常报错。
验证效果与后续优化
完成以上步骤后,你可以模拟一次攻击事件来验证SIEM能否正确告警。
例如在Agent机器上连续输入错误SSH密码几次:
for i in {1..10}; do ssh invalid@localhost; done
回到仪表盘,刷新「Security events」页面,应该能看到等级为10的SSH暴力破解告警。
点击告警详情可以查看原始日志、源IP、时间戳等关键信息。
如果你需要更精细的告警通知(如发送到钉钉或邮件),可以在Wazuh管理器中配置Integration。
编辑/var/ossec/etc/ossec.conf,在下添加:
custom-mail
https://hooks.example.com/send
10
至此,一套最基本的日志审计系统SIEM已经搭建完成并验证通过。
后续你可以根据实际业务逐步增加自定义规则、集成外部威胁情报,或者接入更多日志源(如防火墙、数据库)。
记住:SIEM不是装上就完事,持续调整规则和优化性能才能真正发挥日志审计的价值。