因此,我阅读了瞻博网络发布的多份白皮书,其中包含一些 DOS 预防策略。我并不是想特别预防某一种,而是想确保网络得到尽可能好的保护。
但如果我还没有完全了解其含义的话,我就不愿意复制粘贴我在网上找到的配置。
我在互联网上有一个 EX4200,它有多个公共子网,所有子网都有自己的 VLAN,每个 VLAN 都有 RVI。
这是我发现的一个例子...
term tcp-dos-protect-1 {
from {
protocol tcp;
tcp-flags "syn&!ack";
}
then policer tcp-dos-policer;
}
term tcp-dos-protect-2 {
from {
protocol tcp;
tcp-flags "fin|rst";
}
then policer tcp-dos-policer;
}
...
policer tcp-dos-policer {
filter-specific;
if-exceeding {
bandwidth-limit 500k;
burst-size-limit 15k;
}
then discard;
}
那么,这条特定规则是否会影响真正的流量?在网络繁忙的情况下,它是否会开始丢弃真正的流量,还是实际上只会阻止“不良”流量?
答案1
在不知道您的环境处理多少数据的情况下,此过滤器不会出现任何问题。它对 tcp 初始化和完成/重置标志设置了 500Kb/s 的硬限制。要达到此限制,您需要每秒处理数百万个新的 TCP 请求。即使一些好的数据包确实达到了该硬限制,它们也会被丢弃,然后在几秒钟后再次尝试。
不幸的是,对于那些试图对您的服务器进行 DoS 攻击的人来说,情况也是如此。如果一台主机每秒能够向您的一台服务器发起数千个连接,那么您仍然会遇到麻烦。
这些过滤器需要注意的是,这是一种非常粗暴的限制流量的方式;换句话说,它是有限的,但高效的。这有利于确保没有不必要的流量穿过你的网络,但网络服务器技术(例如mod_security
,mod_evasive
等)总是会做得更多聪明的管理服务器负载并确定它应该处理和不应该处理什么的工作。
在上面的例子中,尝试在这些级别重复连接的人将被阻止一段预定的时间。您最多会损失少量带宽和足够的处理能力来关闭连接。