apache - ModSecurity 统计一个 IP 访问的主机数量
问题描述
我需要使用 ModSecurity 阻止同时访问 3 个以上域的 ip 地址
例如,如果某些 ip 访问:
domain1.com/someuri234
domain2.com/someuri2342
domain3.com/someuri534535
domain1.com/someuri234234
domain5.com/someuri234234
然后我们阻止它
所以我们需要计算域的数量并检查它
感谢任何帮助
解决方案
exec:/script.sh
我可以使用和发送请求信息来实现这个场景setenv
,然后收集请求数据并在脚本上分析它们并使用防火墙阻止 IP 地址
SecAction "id:1233456,phase:1,nolog,pass,\
setenv:RQ_REMOTE_HOST=%{REMOTE_HOST},\
setenv:RQ_REMOTE_ADDR=%{REMOTE_ADDR},\
setenv:RQ_SERVER_NAME=%{SERVER_NAME},\
setenv:RQ_SERVER_ADDR=%{SERVER_ADDR},\
setenv:RQ_SERVER_PORT=%{SERVER_PORT},\
setenv:RQ_REQUEST_URI=%{REQUEST_URI},\
setenv:RQ_REQUEST_LINE=%{REQUEST_LINE},\
setenv:RQ_SCRIPT_FILENAME=%{SCRIPT_FILENAME},\
setenv:RQ_SCRIPT_USERNAME=%{SCRIPT_USERNAME},\
setenv:RQ_USERAGENT=%{REQUEST_HEADERS.User-Agent},\
exec:/script.sh"
推荐阅读
- javascript - 使用 jquery 加载失败后如何重新加载图像?
- typo3 - TYPO3:“access_group”字段是做什么用的?
- python - Python,如何避免对低于当前级别的日志记录语句进行参数评估
- javascript - 有没有办法使用 Puppeteer 在 React Dropzone 中上传文件?
- laravel - 表关系以及如何在 laravel 控制器中使用它
- android - 是否可以以 60 fps 播放 arcore?
- javascript - AngularJS - 如何用 2 个参数构造端点的 url
- amazon-web-services - 在 Docker 容器中传递 AWS CodeBuild IAM 角色 [无法找到凭证]
- postgresql - 如何在 Postgres 中创建一个包含数组的列?
- visual-studio - Visual Studio 弹出字体更改?