我的一个 LAMP 服务器最近被某种寻找漏洞利用的脚本机器人关闭了。从它的外观来看,它每秒发出如此多的请求,它使服务器上的 RAM 过载并使我的整个站点停机一个小时。那个“攻击”都来自一个单一的 IP 地址。
那么如何在短时间内自动暂时阻止一个 IP 地址在我的 LAMP 服务器上造成过多点击?什么是这项工作的最佳工具,我应该在操作系统级别还是通过 PHP 解决这个问题?
可能的重复:
IPv4 子网划分是如何工作的?
我有一个要禁止的 IP 范围列表,例如:
119.30.47.xx
哪里xx有什么。
我已将域和 IP 限制添加到 IIS 中。当我单击添加拒绝条目时,我看到:

对于我上面的例子,我应该输入什么作为值?
我的 fail2ban 日志中/var/log/fail2ban.log充满了以下条目:
fail2ban.filter : WARNING Determined IP using DNS Lookup: [IP address]
Run Code Online (Sandbox Code Playgroud)
我认为这可能是在我更改 ssh 端口后开始的...
知道这是什么原因以及如何阻止它吗?
我遇到了某个人不断以激进的方式抓取我的网站的问题;浪费带宽和CPU资源。我已经实现了一个系统,它跟踪我的 Web 服务器访问日志,将每个新 IP 添加到数据库中,跟踪从该 IP 发出的请求数量,然后,如果相同的 IP 超过特定的请求阈值在某个时间段内,它被 iptables 阻止。这听起来可能很复杂,但据我所知,不存在旨在将某个 IP 限制为一定数量的带宽/请求的预制解决方案。
这对大多数爬虫来说都很好,但是一个非常执着的人每次被阻止时都会从他/她的 ISP 池中获取一个新 IP。我想完全阻止 ISP,但不知道如何去做。
对几个示例 IP 进行 whois,我可以看到它们都共享相同的“网络名”、“mnt-by”和“来源/AS”。有没有办法可以使用相同的 mnt-by/AS/netname 查询所有子网的 ARIN/RIPE 数据库?如果没有,我还能如何获取属于该 ISP 的每个 IP?
谢谢。
我相信我的远程实例上的端口 80 被阻止了,我正在尝试使用端口 80 运行 node.js 应用程序。我已经尝试过端口 3000 和 3002,两个端口都工作正常,但是在运行时出现错误在端口 80 上。我怀疑端口 80 在netstat -an下面的输出中被阻止,但是如何找到阻止下面端口 80 的地址的进程 ID?
[lucas@ecoinstance]~/node/nodetest1$ netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:3002 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:27017 127.0.0.1:51108 ESTABLISHED
tcp 0 0 127.0.0.1:51106 127.0.0.1:27017 ESTABLISHED
tcp 0 0 127.0.0.1:27017 127.0.0.1:51106 ESTABLISHED
tcp 0 0 127.0.0.1:51107 127.0.0.1:27017 ESTABLISHED
tcp …Run Code Online (Sandbox Code Playgroud) 我有 Cloudflare 提供的静态内容。Cloudflare 指向 Amazon S3 以获取静态内容并通过 CNAME (cdn.mydomain.com) 为其提供服务。存储桶设置正确并且一切正常,直到周五我开始在浏览器中收到请求超时。我确认内容仍然可以通过 S3 访问,并使用 Cloudflare 开了一张票。Cloudflare 报告说,“亚马逊确实出现了一些可能阻止来自我们 IP 的请求”,并且他们在日志中看到了以下消息:
upstream timed out (110: Connection timed out) while reading response header from upstream cdn.mydomain.com
upstream prematurely closed connection while reading response header from upstream cdn.mydomain.com
Run Code Online (Sandbox Code Playgroud)
这是我的 CORS 文件中已有的内容。
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>Authorization</AllowedHeader>
</CORSRule>
Run Code Online (Sandbox Code Playgroud)
我应该在 AllowedHeader 中放一个 * 吗?我是否需要明确命名 Cloudflare IP 地址?我错过了什么来避免阻塞?
我们有运行 vBulletin 的私人论坛,我们收到了一位客户的投诉,他在打开很多标签时无法访问这些论坛。上次他打电话,确定是我们的主机自动屏蔽了他的ip地址。在与主机打开支持票后,他们解除了它的阻止,他们说它已被自动阻止过多连接(我假设并发连接)。他们说有 546 个连接。
客户正在运行 IE8 并声称在大约 8-12 个选项卡后,其余的“超时” - 每次。而且,当然,没有其他网站有这个问题。
更新:事实证明 Chrome(或 Firefox,但我认为是 Chrome)有同样的问题。但是 Opera 似乎很好(我认为是因为它的积极缓存)。
由于无法直接访问两端的计算机,我希望如何解决此问题?
更具体地说,我有一个客户要求阻止中国的 IP 范围。我知道该怎么做。我会使用来自https://www.countryipblocks.net/e_country_data/CN_netmask.txt的 IP并创建一个 ACL。好吧,如果你看看有 3,412 个网络,我将不得不阻止。
我真正想问的是有没有办法制作超大 ACL?如果它是连续的 IP 空间,我可以只是超网,但事实并非如此。
我一直很高兴地使用 opendns 来阻止我网络上的 Facebook。然后我开始考虑绕过这个块的技巧,当然,我已经在 serverfault 上阅读了如何阻止 facebook ip 地址。但是如果有人使用tor或freegate呢?
我能做什么?
我们的 ISP 强迫我们使用他们的路由器,该路由器没有任何选项来阻止某些 URL/IP,就像我们的 3Com OfficeConnect 路由器那样。
有没有其他简单的方法可以在没有智能路由器的情况下实现这一点(我们也使用 D-Link 1016 交换机)。还是我们应该买一个更新的 3Com 路由器?
谢谢。