最近,我的邮件服务器遭受了一系列 IP 地址的 DDOS 攻击。我一直使用防火墙逐个阻止这些 IP 地址。这个过程过去和现在都很麻烦,所以我联系了负责这些 IP 地址的 ISP,但什么也没做。现在我需要找出它们所属的地址池,这样我就可以简单地阻止整个地址池。有人知道怎么做吗?
答案1
我建议你设置iptables
限制每个主机的连接数。Ddos 可以使用无限数量的 IP 地址
sudo iptables -A INPUT -p tcp --dport 25 -m state --state NEW -m limit --limit 50/minute --limit-burst 200 -j ACCEPT
sudo iptables -A INPUT -m state --state RELATED,ESTABLISHED -m limit --limit 50/second --limit-burst 50 -j ACCEPT
sudo iptables -A INPUT -j REJECT
-p tcp --dport 25
=> 指定端口 25 (smtp) 上的流量。
-m state NEW
=> 此规则适用于新连接。
-m limit --limit 50/minute --limit-burst 200 -j ACCEPT
=>这就是防止DOS的本质。
--limit-burst
有点令人困惑,但简而言之,在每分钟 50 个新连接(数据包)的限制之前,允许 200 个新连接(实际上是数据包)。
第二条规则 – 限制已建立的流量 该规则适用于所有端口上的所有流量 总之,在RELATED
应用每秒(和/或) 个连接(数据包)的限制之前,允许(和/或) 个连接(实际上是 数据包)。ESTABLISHED
50 ESTABLISHED
RELATED
50 ESTABLISHED
RELATED
或者对所有输入使用规则集
sudo iptables -A INPUT -m limit --limit 50/minute --limit-burst 200 -j ACCEPT
sudo iptables -A INPUT -j REJECT
你也有答案奥利和使用whois
答案2
对于 IP 分配块,您只能输入whois
您拥有的 IP。这通常只能让您达到 ISP 级别,除非您指的是一家规模足够大到拥有自己的分配的公司。例如,如果我输入我的其中一台服务器的 IP 地址,则会看到以下内容:
$ whois 109.74.xxx.yyy
% This is the RIPE Database query service.
% The objects are in RPSL format.
%
% The RIPE Database is subject to Terms and Conditions.
% See http://www.ripe.net/db/support/db-terms-conditions.pdf
% Note: this output has been filtered.
% To receive output for a database update, use the "-B" flag.
% Information related to '109.74.192.0 - 109.74.199.255'
...
那里有块109.74.192.0 - 109.74.199.255
。您可以使用子网计算器(或大脑)来弄清楚那是109.74.192.0/21
,然后阻止它。
...但这是一个很多服务器,而不仅仅是我的。
不过,DDoS 攻击不太可能只来自一个网络。本回答的其余部分假设我们实际上谈论的是来自多个网络的攻击,尽管部分内容可能仍然适用于单网络入侵。
除非你能进入命令与控制这个僵尸网络的情况极不可能发生,你永远不会知道它的全部范围,你永远不会知道除了连接到你的 IP 之外它还包含哪些 IP。
这很可能不是一个拒绝服务攻击,而可能是:
有人试图破解 MTA。与任何服务一样,它们偶尔也包含可以测试的漏洞。邮件服务器特别健谈且配置不当,这使它们成为一个很好的目标。你对此无能为力。
它是开放中继吗?垃圾邮件发送者是否只是通过您的机器转发他们的电子邮件?如果是,请停止运行开放中继。
我一般不建议运行邮件服务器。那些以专业为唯一工作的人往往做得更好:专注安全、更大更强大的网络以及更好的垃圾邮件检测,这些都源于每天扫描数千亿封传入电子邮件。成本通常非常合理。