我想要做的就是用IPTable阻止RST攻击。
当我search它的时候,我看到了RST标志被设置的数据包被限制的规则。
我有点疑问。 我想我需要限制RST / ACK而不是RST
如果我没有弄错,当一个客户端决定放弃一个已经存在的连接时,服务器会收到一个RST / ACK数据包,服务器响应ACK并closures连接。
所以,通常服务器永远不会获取或发送RST数据包。 我认为它总是RST / ACK
除非客户端被欺骗,攻击者插入RST标志。
但为什么会closures连接?
我可能是错误的,因为我看到它在任何地方,但我认为攻击者需要插入RST / ACK,这是不正确的?
服务器无法看到没有ACK的RST / ACK和RST之间的区别吗?
发送RST来发出exception连接结束的信号。 结束连接的正常信号是FIN。
TCP / IP连接的两端都可以发送它们。 接收端应该用一个ACK来回答,所以发送者知道这个没问题,否则它会一直重发信号直到超时或者直到收到一个ACK。
如果过滤服务器可以接收RST的速率,则不必过滤ACK,因为每个RST只发送一次ACK。
而且您不必过滤收到的ACK,因为这不是威胁。
由于服务器在正常运行中很less收到RST,因此通常会丢弃大部分服务器。
当一个外国主机发送一个真正的RST时,它有75%的机会被丢弃。 所以服务器从不发送ACK。 所以主机一次又一次地发送,直到它通过filter。 所以服务器发送ACK和瞧。
攻击中使用的RST信号包含伪造的源IP地址,意图删除现有的连接。 这次袭击是在2003/2004年左右发明的。 只有当目标带宽较大时才有效,因为攻击者必须尝试上百万个IP地址+序列号才能成功。
由于假RST包含随机IP地址+随机序列号,限制它们的速率是一种减less一个假RST匹配真实连接的可能性的方法。
所以这个攻击主要用在攻击者知道谁与谁连接的情况下。 在T1线路上,当攻击者知道究竟哪个源IP地址丢弃时,攻击只需要5到30秒(如果线路是完全空闲的,否则攻击需要更长时间,例如,如果线路占用50%时间翻了一番)。 如果你限制他们,这可能需要更长的时间。