18. 为Windows设置IPS/内联模式¶
本指南介绍如何在Windows系统上使用WinDivert实现Suricata的四层内联模式。
首先需要编译支持WinDivert的Suricata版本。具体步骤请参阅《Windows安装指南》<https://redmine.openinfosecfoundation.org/attachments/download/1175/SuricataWinInstallationGuide_v1.4.3.pdf>_。注意该文档尚未更新WinDivert相关内容,因此在执行``configure``配置时需添加以下参数:
--enable-windivert=yes --with-windivert-include=<头文件目录> --with-windivert-libraries=<库文件目录>
WinDivert.dll和WinDivert.sys必须与Suricata可执行文件位于同一目录。WinDivert会在首次运行时自动安装驱动。更多关于WinDivert的信息请参考:https://www.reqrypt.org/windivert-doc.html。
要验证Suricata是否启用了WinDivert支持,请在管理员权限的命令提示符或终端中执行:
suricata -c suricata.yaml --windivert [过滤字符串]
WinDivert过滤语言说明详见:https://www.reqrypt.org/windivert-doc.html#filter_language
若Suricata部署在网关上用于保护后端网络,需在`NETWORK_FORWARD`层运行WinDivert。可通过以下命令实现:
suricata -c suricata.yaml --windivert-forward [过滤字符串]
当Suricata停止时,过滤会自动终止,流量将恢复正常传输。
快速入门方法是监控所有流量,可使用如下命令:
suricata -c suricata.yaml --windivert[-forward] true
其他示例:
仅监控TCP流量:
suricata -c suricata.yaml --windivert tcp
仅监控80端口的TCP流量:
suricata -c suricata.yaml --windivert "tcp.DstPort == 80"
监控TCP和ICMP流量:
suricata -c suricata.yaml --windivert "tcp or icmp"