所以我已经阅读了一些Juniper的白皮书,其中包含一些DOS预防策略。 我并不是想特别阻止任何人,而只是确保networking尽可能得到最好的保护。
但我不倾向于复制粘贴configuration我已经在网上find,而不完全知道的影响。
我有一个EX4200坐在互联网上,有许多公共子网,都在各自的VLAN中,每个都有RVI。
这是我find的一个例子
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; }
现在,这个特定的规则会影响真正的stream量吗? 在恶劣的networking条件下 – 它会刚刚开始丢弃真正的stream量,还是真的只阻塞“不好的”stream量?
不知道你的环境提供了多less数据,这个filter不应该出现任何问题。 它设置了tcp-initializations和500Kb / s完成/重置标志的硬限制。 要达到此限制,您需要每秒提供数百万个新的TCP请求。 即使一些好的数据包达到了硬性限制,他们也会下降,然后在几秒钟内再次尝试。
对于试图拒绝服务器的人员,这也是(不幸的)。 如果一个主机每秒都能启动数千个连接到您的服务器的连接,那么您仍然会遇到麻烦。
关于这些filter的注意事项是,这是限制stream量的一种非常粗糙的方式; 换句话说,这是有限的,但有效的 。 确保没有不必要的stream量通过你的networking是很好的,但是networking服务器技术(例如mod_security , mod_evasive等等)总是会做一个更聪明的工作来pipe理你的服务器负载,并确定它应该和不应该处理什么出。
在上面的例子中,尝试在这些级别重复连接的人将被阻塞预定的时间量。 你会失去的最多的是一个边际的带宽和足够的处理来closures连接。