今天是个好日子!
我正在寻找一种方法来阻止来自黑名单 IP 和代理(大部分是匿名的)对我的服务器的传入请求。虽然使用 Apache 配置来做到这一点非常明显,但主要问题是我可以在哪里找到定期更新的此类 IP 列表?
有没有一种“最佳实践”可以做到这一点?
深入分析原因:我的网站接收来自许多不同 IP 的大量传入流量,这些 IP 主要位于美国。几乎每个请求都相互延迟,这就是为什么我无法阻止特定 IP,也无法按子网阻止 IP 范围。虽然这不是真正的 DDoS 攻击,但我的专用服务器几乎离线 :/
我认为我需要像 Fail2Ban 和 DenyHosts 这样的东西,但不仅基于密码失败,还基于所有传入流量。
答案1
有一个优秀的如何安装 MoBlock在您的服务器上;它是为 Ubuntu 编写的,但说明可以适用于任何发行版。这是一个允许您加载任意阻止列表并将其转换为防火墙规则的工具,因此您的服务器可以在 Apache 处理之前快速有效地丢弃流量。
至于黑名单本身,有BISS IP 阻止列表;它们主要针对试图监控点对点流量的实体进行拦截,在这方面它们做得相当好。不过,它们确实有一个“Tor / 代理”列表,旨在拦截开放代理和 Tor 路由器,但我无法对其准确性或有效性做出任何特别的声明。
我还发现了一个名为DDoS-放气据称它可以自动添加防火墙规则来阻止高连接源,但是我自己从未使用过它,所以我无法告诉你它的效果如何。
最后,显然 iptables 有一个命中次数自动限制传入连接速率的命令:
sudo iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH
sudo iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 8 --rttl --name SSH -j DROP
这会将每 60 秒的传入 SSH 连接限制为 8 个,并且已经内置。
答案2
有许多网站声称列出“滥用”IP。我喜欢蜜罐计划,因为它是免费的(如果您参与网络),并且对于将您列入名单的标准相当开放。否则,在 Google 上搜索“开放代理黑名单”似乎会提供一长串结果;我无法给出任何具体建议,但最好根据自己的需要分析这些选项。
答案3
尝试 ModSecurity:http://www.modsecurity.org/,与 SSHBlack 结合:http://www.sshblack.com/
答案4
我用http://feeds.dshield.org/block.txt
有时如果我想更积极一点,我会使用以下列表:http://www.wizcrafts.net/blocklists.html