我目前习惯于使用像fail2ban这样的工具,通过禁止IPv4地址来防止不必要的stream量离开我的服务器:每个IP有太多的错误日志条目,禁止IP。
但是,当世界完成向IPv6的迁移时,由于“正常”的僵尸networking计算机或攻击者拥有相当多的IPv6地址,否则禁止单个地址可能不再起作用了。
如果我想阻止IPv6用户,那么最好的办法是什么? 使用某个IP掩码或其他东西?
如果在IPv6内部获得多个单独命中,然后禁止整个区块,那么如何进行“放大启发式”?
对我来说,减轻威胁更重要。 如果一些可怜的真正的用户属于同一个阻止IP的块,那么这些人和他们的ISP之间的问题是清除networking块。
当/ 64大小的子网用于攻击时,禁止/ 128不能缩放。 你最终会在表中有2 ^ 64条目,可能会导致拒绝服务。
最终用户总是会收到一个/ 56每个全局地址分配策略。 企业总是会收到一个/ 48个全球地址
请参阅https://tools.ietf.org/html/rfc6177/128永远不应该分配给服务器/用户,最小分配给另一个实体(服务器/ vps客户)应该是/ 64。 最小分配给一个网站应该是/ 56。 给出/ 128s基本上被打破,应该被认为是一个configuration错误。
因此,我build议临时禁止每64位,因为典型的最终用户只能访问2 ^ 8/64位,所以不应该在禁止表中引入太多条目。
任何问题的答案都会涉及到一些猜测。 IPv6部署仍然很less,我们现在还不知道,究竟是什么样的威胁情况。
大量的IPv6地址将引发多种威胁情况的变化,你将不得不考虑。
首先,对于攻击者来说,对于所有3700万个可路由的IPv4地址中的某些漏洞服务,扫描默认端口号是完全可行的。 IPv6的这种非目标攻击是不可行的。 你仍然看到的这些攻击必须更有针对性。 这是否意味着我们将不得不改变我们在处理袭击方面的问题。
禁止基于日志消息的IP的主要目的是降低日志中的噪声,并在一定程度上降低系统负载。 它不应该成为防止利用的保护。 一个知道弱点的攻击者在被禁止之前就会进入内部,所以为了防止你必须修补漏洞 – 就像你一直以来一样。
禁止单独的IPv6地址可能足以减less日志中的噪音。 但这不是一个给定的。 攻击者不可能在每个连接的可用范围内使用新的IP地址。 如果攻击者performance得像禁止单个IPv6地址一样不仅无效,而且甚至可能会因为防火墙规则而使用所有内存,甚至会无意中对自己造成DoS攻击。
您无法知道可用于每个攻击者的前缀长度。 阻止太短的前缀也会覆盖合法用户,从而导致DoS攻击。 阻止太长的前缀将是无效的。 密码暴力破解尤其可能会使用大量的客户端IPv6地址。
为了有效地防范攻击者在每个请求中切换IPv6地址,并为了减less内存使用,必须阻止范围,并且由于事先不知道前缀长度,必须dynamic调整前缀长度。
现在已经可以提出启发式。 他们将如何工作,我们还不知道。
每个前缀长度的一个启发式就是定义一个阈值,用多lessIP来阻塞该长度的前缀。 阻塞应该只应用于特定的长度,如果更长的前缀不足够。 换句话说,为了实际启动一个块,需要在两个半部分中分别需要足够的IP地址。
例如,有人可能会认为,为了阻止一个/ 48,在构成/ 48的两个/ 49中的每一个中必须有100个被阻止的IP。 前缀越长,需要阻止的IP数量就越less,但是在任何情况下,它们都必须分布在两个半边上。
你应该坚持禁止单个地址。
没有定义给最终用户多less个地址。 有些ISP可能会给一个整个子网,其他的只有一个地址。