停止对我的服务器 (TOR) 的大型请求

信息安全 http 阿帕奇 centos
2021-08-19 20:33:13

我现在正受到 Tor 节点的攻击,这些节点正在向我的 HTTP 服务器发出 404 请求。它来自一个 IP,但是当我使用 DROP iptables 规则时,它会在几秒钟内再次从另一个 IP 启动。

它开始向 cgi-bin 文件夹发出请求,但现在它正在我的图像文件夹中发出请求。所以根据我的调查,它是一个连接到 TOR 的工具,正在寻找一些东西,现在它让我发疯。

我尝试了fail2ban、mod_evasive 和mod_security,但是当对方正在寻找一件事或敲打一个端口的门时,这些程序就会被触发。但是这个工具正在查看对不同文件的每个请求。

45.63.100.91 - - [26/Dec/2016:03:27:17 +0100] "HEAD //images/imgsupport.php HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; MATBJS; rv:11.0) like Gecko"
45.63.100.91 - - [26/Dec/2016:03:27:17 +0100] "HEAD //images/imgppexg.php HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; MATBJS; rv:11.0) like Gecko"
45.63.100.91 - - [26/Dec/2016:03:27:17 +0100] "HEAD //images/imgppantivirussoft.php HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; MATBJS; rv:11.0) like Gecko"
45.63.100.91 - - [26/Dec/2016:03:27:17 +0100] "HEAD //images/imgwin95.php HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; MATBJS; rv:11.0) like Gecko"
45.63.100.91 - - [26/Dec/2016:03:27:17 +0100] "HEAD //images/imgnws.php HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; MATBJS; rv:11.0) like Gecko"
45.63.100.91 - - [26/Dec/2016:03:27:17 +0100] "HEAD //images/imgroundcorner.php HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; MATBJS; rv:11.0) like Gecko"
45.63.100.91 - - [26/Dec/2016:03:27:17 +0100] "HEAD //images/imgppcdl.php HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; MATBJS; rv:11.0) like Gecko"
45.63.100.91 - - [26/Dec/2016:03:27:17 +0100] "HEAD //images/yellowbuy3.php HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; MATBJS; rv:11.0) like Gecko"
45.63.100.91 - - [26/Dec/2016:03:27:17 +0100] "HEAD //images/imgvirusinfo.php HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; MATBJS; rv:11.0) like Gecko"
45.63.100.91 - - [26/Dec/2016:03:27:17 +0100] "HEAD //images/escan4.php HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; MATBJS; rv:11.0) like Gecko"
45.63.100.91 - - [26/Dec/2016:03:27:17 +0100] "HEAD //images/imgredline.php HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; MATBJS; rv:11.0) like Gecko"
45.63.100.91 - - [26/Dec/2016:03:27:17 +0100] "HEAD //images/imgonlinescan.php HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; MATBJS; rv:11.0) like Gecko"
45.63.100.91 - - [26/Dec/2016:03:27:17 +0100] "HEAD //images/ram1.php HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; MATBJS; rv:11.0) like Gecko"
45.63.100.91 - - [26/Dec/2016:03:27:17 +0100] "HEAD //images/imgmanualscan.php HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; MATBJS; rv:11.0) like Gecko"
45.63.100.91 - - [26/Dec/2016:03:27:17 +0100] "HEAD //images/userdefine.php HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; MATBJS; rv:11.0) like Gecko"
45.63.100.91 - - [26/Dec/2016:03:27:17 +0100] "HEAD //images/betterinterface.php HTTP/1.1" 404 - "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; MATBJS; rv:11.0) like Gecko"

您会看到它在文件夹 images 中查找特定的 .php 文件,但在每次请求时它都在寻找不同的 php 文件。那么,这到底是在做什么呢?

这也消耗了我的带宽,所以我真的很绝望我现在需要做什么。任何人都知道我怎么能阻止这个?

服务器设置:CentOS 7(OpenVZ,所以我被一个 ipset 不工作的内核卡住了)和 Apache。

4个回答

如果您喜欢使用 ip 表,您可以将所有来自 tor 节点的数据包一起丢弃。可以在以下位置找到 tor 节点列表:

参考 1:https
://check.torproject.org/cgi-bin/TorBulkExitList.py 参考 2:https ://www.dan.me.uk/tornodes

这是一个 bash one 班轮,用于阻止从 tor 到您的 Web 服务器的所有流量。目前在线大约有 2000 个支持端口 80 的 Tor 节点。因此,您将插入相当多的 iptable 并不会真正将其称为长期修复,但应该可以阻止攻击。

wget "https://check.torproject.org/cgi-bin/TorBulkExitList.py?ip=8.8.8.8&port=" -O /tmp/ip.lst && sed -i -e '1,3d' /tmp/ip.lst && for i in $(cat /tmp/ip.lst); do iptables -A INPUT -p tcp -s $i --match multiport --dports 80,443 -j DROP; done

您可以丢弃包含特定字符串的数据包,并且所有请求都包含:'HEAD //images/'字符串。

我现在建议以下规则,以后您可以将其删除:

iptables -I INPUT -p tcp --dport 80 -m string --algo bm --string 'HEAD //images/' -j DROP

如果您的安全模型允许将流量传递给第三方,那么最简单和最有效的解决方案可能是在您的应用程序前面使用Cloudflare在撰写本文时,Cloudflare 几乎会自动阻止所有 Tor 连接,除非他们解决了 CAPTCHA 页面,并且他们还拥有 Web 应用程序防火墙,您可以对其进行配置以在到达您的服务器之前进一步过滤流量,这样攻击者就不会消耗您的服务器带宽。

否则,您可能会通过配置fail2ban获得一些运气。fail2ban 是一款软件,当有人身份验证失败次数过多时,它会通过更改操作系统防火墙策略来放置临时 IP 块。在您的情况下,身份验证失败将是保持 404-ing 的人。

我的网络服务器一直都有这个,在检查了几个月的日志后,我可以看到他们最终会要求有 100 种不同的东西。

数以千计的僵尸网络之一正在为您的 apache 映射易受攻击的组件。希望运气好,有一个它知道如何利用的通用组件。我总是让机器人搜索 phpmyadmin。连同其他许多东西。

当然,如果运气好的话,他们最终会部署更多的坏东西,这样他们就可以使用你的电脑来做他们自己的邪恶行为。

使用可以安装现代内核的东西进行虚拟化,因此您可以使用 ipset。可能是 KVM,docker 使用内置内核,所以不好。

僵尸网络可能有成千上万台计算机,因此您将无法有效阻止它,尤其是没有 ipset。

此外,只要您使用 TOR,他们就可以从随机人那里访问更多 IP 地址。

选项 #2

替换找到的HTTP_NOT_FOUND.html.var文件,至少在我的系统上,/usr/share/apache2/error

您可以创建一个 HTTP_NOT_FOUND.html.var.php 文件,然后更改 apache 文件 /etc/apache2/errors.conf 以指向该文件。

那么第一次尝试将是最后一次。