我使用自己的服务器(nginx,我使用https://yunohost.org作为 CP)使用 ShareX 上传截图(https://getsharex.com/)。在截图上传过程中,文件名是随机的。
问题:最近,许多人都在为这些图片上传网站编写暴力破解程序。他们只是编写了一个小程序,向 URL 发送随机 httprequest,并检查它是否返回 404,如果没有,则保存 URL。这些人可以访问他们不应该看到的半私密截图。
解决方案:这些程序不使用任何代理,因此您应该能够使用 fail2ban 阻止这些请求。我对此没有任何经验,所以我自己无法做到,所以我请教您。
我需要一个 fail2ban 正则表达式和监狱来阻止导致错误 404 的过多请求的 IP(例如,如果有人每秒发送 5 个请求(404!),它会禁止他们)。
我希望有人能帮助我。
谨致问候 KNIF
答案1
详情请参阅文章 如何设置 Fail2ban 来检测 Apache 404 攻击?
总结一下:
1. 创建 fail2ban 过滤器
创建包含以下内容的文件/etc/fail2ban/filter.d/apache-404.conf
:
failregex = ^<HOST> - .* "(GET|POST|HEAD).*HTTP.*" 404 .*$
ignoreregex =.*(robots.txt|favicon.ico|jpg|png)
- 失败正则表达式识别发出过多 404 请求的 IP 地址
- 忽略正则表达式排除有效文件,如
robots.txt
、favicon.io
和图像。
2. 创建自定义监狱
在文件中添加以下代码/etc/fail2ban/jail.conf
:
[apache-404]
enabled = true
port = http,https
filter = apache-404
logpath = /var/log/httpd/error_log
logpath = /var/log/httpd/access_log
bantime = 3600
findtime = 600
maxretry = 5
- 日志路径指定 apache 日志文件
- 班蒂梅违规 IP 被封禁多少秒
- 最大重试次数指定连接尝试的总次数。
maxretry
因此,如果客户端在指定的时间内重试次数超过规定次数findtime
,他们将被禁止。
另请参阅帖子 使用 Nginx 缓解 404 炸弹。