IPS 规则自动测试(CI/CD)
概述:
由于工作需要对 ips 的规则库进行维护,但是现有的测试流程下,每次更新规则库都需要打升级包,然后进行升级,然后判断相关功能的可用性。这样看起来没有问题,但是如果你发现了问题需要修改本次更新,就需要将所有测试用的机器恢复快照,然后重新打包、更新、测试。由于我很懒,所以就有了这个文章中的解决方案。
准备工作:
- ubuntu(注册为 gitlab runner)
- 相关脚本 (规则加载,验证相关)
注册 gitlab runner:
官方有文档
配置 ci:
脚本功能:
这里我写的脚本主要实现了如下流程:
- 整个规则文件的拆分,从中挑选我需要的规则进行测试(按时间、类型等进行筛选)
- 恶意流量回放测试,主要是为了测试规则有效性
- 白流量测试避免误报
- 全部规则引擎加载测试
- 通过邮件和 server 酱发送相关信息