文章目录
Wazuh是一个功能强大的开源安全平台,它集成了安全信息与事件管理(SIEM)和扩展检测与响应(XDR)的能力,旨在为本地、虚拟化、容器化及云环境中的工作负载提供统一的威胁预防、检测和响应解决方案。
《 开源安全管理平台wazuh-安装与配置》介绍了wazuh的安装和配置,本文基于已经完成的wazuh安装配置基础上通过POC来验证wazuh的功能,通过wazuh来阻止已知的恶意IP的访问。
一、环境准备
POC环境如下图所示:
主机 | 描述 |
---|---|
安全管理平台wazuh-server (192.168.0.40) | All in one安装wazuh,监控wazuh-agent上报的告警信息进行可视化展示,并联动wazuh-agent进行主动的拦截阻止 |
Nginx服务器 (192.168.0.41) | 安装Nginx服务及wazuh-agent |
Apache2服务器 (192.168.0.43) | 安装Apache2服务及wazuh-agent |
kali (192.168.0.65) | Kali (模拟恶意IP主机) |
以上除192.168.0.65是kali linux外,其他主机都是ubuntu。
二、wazuh配置
1、wazuh-agent配置
1)安装nginx服务并配置wazuh-agent
在192.168.0.41上安装nginx
bash
sudo apt updat
sudo apt install nginx
允许防火墙访问
bash
sudo ufw allow 'Nginx Full'
sudo ufw status
sudo ufw app list
验证nginx服务状态
bash
sudo systemctl status nginx
用浏览器访问http://192.168.0.41验证nginx服务是否正常访问
将以下内容添加到 /var/ossec/etc/ossec.conf
文件中,以配置 Wazuh 代理并监控 nginx访问日志
xml
<localfile>
<log_format>syslog</log_format>
<location>/var/log/nginx/access.log</location>
</localfile>

重启wazuh-agent使配置生效
bash
sudo systemctl restart wazuh-agent
2) 安装apach2并配置wazuh-agent
在192.168.0.43上安装apach2
bash
sudo apt update
sudo apt install apache2
允许防火墙访问
bash
sudo ufw allow 'Apache'
sudo ufw status
sudo ufw app list
验证nginx服务状态
bash
sudo systemctl status apache2
用浏览器访问http://192.168.0.43 验证apache2服务是否正常访问
将以下内容添加到 /var/ossec/etc/ossec.conf
文件中,以配置 Wazuh 代理并监控 apache2访问日志
xml
<localfile>
<log_format>syslog</log_format>
<location>/var/log/apache2/access.log</location>
</localfile>

重启wazuh-agent使配置生效
bash
sudo systemctl restart wazuh-agent
2、wazuh-server配置
1)配置IP信息黑名单
下载Alienvault IP信誉数据库:
bash
sudo wget https://iplists.firehol.org/files/alienvault_reputation.ipset -O /var/ossec/etc/lists/alienvault_reputation.ipset
将攻击端点的IP地址(kali的IP地址192.168.0.65)添加到IP信誉数据库中:
bash
sudo echo "192.168.0.65" >> /var/ossec/etc/lists/alienvault_reputation.ipset
下载一个将 .ipset 格式转换为 .cdb 列表格式的脚本:
bash
sudo wget https://wazuh.com/resources/iplist-to-cdblist.py -O /tmp/iplist-to-cdblist.py
通过运行iplist-to-cdblist.py将ipset转换成.cdb 列表格式blacklist-alienvault
bash
sudo python3 /tmp/iplist-to-cdblist.py /var/ossec/etc/lists/alienvault_reputation.ipset /var/ossec/etc/lists/blacklist-alienvault
为生成的文件分配正确的权限:
bash
sudo chown wazuh:wazuh /var/ossec/etc/lists/blacklist-alienvault
确认一下恶意IP192.168.0.65是否在黑名单里
2)配置响应模块以阻止恶意IP地址
在Wazuh服务器上的 /var/ossec/etc/rules/local_rules.xml
自定义规则集文件中添加一个自定义规则以触发Wazuh主动响应脚本。
bash
<group name="attack,">
<rule id="100100" level="10">
<if_group>web|attack|attacks</if_group>
<list field="srcip" lookup="address_match_key">etc/lists/blacklist-alienvault</list>
<description>IP address found in AlienVault reputation database.</description>
</rule>
</group>
将自定义规则集加入到Wazuh server /var/ossec/etc/ossec.conf
的配置文件中
xml
<ossec_config>
<ruleset>
<!-- Default ruleset -->
<decoder_dir>ruleset/decoders</decoder_dir>
<rule_dir>ruleset/rules</rule_dir>
<rule_exclude>0215-policy_rules.xml</rule_exclude>
<list>etc/lists/audit-keys</list>
<list>etc/lists/amazon/aws-eventnames</list>
<list>etc/lists/security-eventchannel</list>
<list>etc/lists/blacklist-alienvault</list>
<!-- User-defined ruleset -->
<decoder_dir>etc/decoders</decoder_dir>
<rule_dir>etc/rules</rule_dir>
</ruleset>
</ossec_config>
将活动响应块添加到Wazuh服务器/var/ossec/etc/ossec.conf
文件:
防火墙丢弃命令与Ubuntu本地iptables防火墙集成,并丢弃来自攻击端点的网络连接60秒
xml
<ossec_config>
<active-response>
<disabled>no</disabled>
<command>firewall-drop</command>
<location>local</location>
<rules_id>100100</rules_id>
<timeout>60</timeout>
</active-response>
</ossec_config>
重新启动Wazuh管理器以应用更改生效:
bash
sudo systemctl restart wazuh-manager
三、效果验证
1、模拟攻击
用kali(192.168.0.65)访问 http://192.168.0.41和http://192.168.0.43
攻击端点首次连接到受害者的Web服务器。首次连接后,Wazuh主动响应模块临时阻止对Web服务器的任何后续连接60秒。

通过浏览器访问可以看到首次访问后每次都会被阻止60秒才能继续访问。
通过curl http://192.168.0.41
和curl http://192.168.0.43
首次可以返回信息,每次过60秒才能再次返回信息。
2、可视化效果验证
可以在Wazuh仪表板中可视化警报数据。在威胁狩猎模块,添加过滤器以查询警报。

在威胁狩猎模块可以看到有恶意IP地址在信誉库中被匹配到的告警,被防火墙自动阻断响应的告警以及60秒以后自动解除阻断的处置信息。
在详情信息中可以看到攻击阻止的详细信息,通过攻击源IP匹配到了信誉库的黑名单,触发了防火墙封堵规则进行了自动封堵。

至此,我们通过一个完整的POC验证了wazuh发现恶意IP攻击到自动封堵阻止攻击的全过程。