所以我今天早些时候浏览了我的 HAProxy 日志,注意到外部 IP 地址向我们未托管的域发出了一些奇怪的请求。
例如
Jun 8 06:25:56 haproxy haproxy[6316]: 185.108.107.19:54243 [08/Jun/2020:06:25:56.731] localhost localhost/<NOSRV> -1/-1/-1/-1/13 503 213 - - SC-- 2/2/0/0/0 0/0 "CONNECT chekfast.zennolab.com:443 HTTP/1.1
Jun 8 06:26:33 haproxy haproxy[6316]: 185.108.107.19:54598 [08/Jun/2020:06:26:33.855] localhost localhost/<NOSRV> -1/-1/-1/-1/3 400 188 - - PR-- 0/0/0/0/0 0/0 "<BADREQ>"
Jun 8 06:34:07 haproxy haproxy[6316]: 94.200.76.222:55958 [08/Jun/2020:06:34:07.906] localhost localhost/<NOSRV> -1/-1/-1/-1/0 503 213 - - SC-- 0/0/0/0/0 0/0 "POST /cgi-bin/mainfunction.cgi HTTP/1.1"
Jun 8 06:46:05 haproxy haproxy[6316]: 14.221.172.38:2184 [08/Jun/2020:06:46:05.845] localhost localhost/<NOSRV> -1/-1/-1/-1/11 503 213 - - SC-- 6/6/0/0/0 0/0 "GET http://api.gxout.com/proxy/check.aspx HTTP/1.1"
Jun 8 06:59:49 haproxy haproxy[6316]: 223.12.75.250:17883 [08/Jun/2020:06:59:49.392] localhost localhost/<NOSRV> -1/-1/-1/-1/0 503 213 - - SC-- 11/11/0/0/0 0/0 "HEAD http://123.125.114.144/ HTTP/1.1"
据我所知,执行此操作的人(或脚本)正在获取 503(服务不可用)之类的响应代码,我希望这意味着请求未正确通过 - 但有什么方法可以阻止此类请求首先发出?我们在 Ubuntu 16.04.4 LTS 上运行 HAProxy 版本 1.6.3。
谢谢
答案1
您无法阻止人们发出请求,但您可以限制给定 IP 发出某些请求的次数。
在服务器级别,我运行 fail2ban 并根据需要定义监狱和规则,因此没有一个单个 IP 地址可以发出超过预定义数量的错误请求,并且它大大减少了对服务器的总请求数。有关如何使用它以及创建特定规则和根据需要定义日志文件的更多信息,请访问:
https://www.fail2ban.org/wiki/index.php/MANUAL_0_8
HAProxy 有一个内置工具可以执行类似的操作,您可以看到:
https://haproxy.com/blog/bot-protection-with-haproxy
如果我理解正确的话,HAProxy 只关心将请求路由到它负责的端口。fail2ban 可以对任何端口上的请求制定规则,因此如果它尚未运行并且您查看了安全日志,则可能有很多人正在探测您的端口 22、3306 和其他端口。