iptables ... -j DROP 似乎让连接保持打开状态?

iptables ... -j DROP 似乎让连接保持打开状态?

如果这是一个愚蠢的问题,请原谅我,我不是网络专家。朋友的服务器被某个 IP 淹没,这在查看 的输出时非常明显tcptrace,因为有数百个连接处于“重置”状态。

我做了显而易见的事情并使用 iptables 阻止了所述 IP 地址:

iptables -I INPUT -s <bad guy> -j DROP

据我所知,这应该能解决问题。现在,连接显示为“SYN_SENT”,而不是“RESET” tcptrace,这对我来说毫无意义。

我是不是忽略了什么?我是否需要采取一些额外的步骤让内核完全断开连接?

编辑:

另外一个奇怪之处是,无论有没有 iptables 规则,都不会出现任何奇怪的连接netstat -tuna(必须要喜欢这个命令),我读过多次,不应该是这样。

答案1

据我所知,这应该能解决问题。现在,tcptrace 中的连接显示为“SYN_SENT”,而不是“RESET”,这对我来说毫无意义。

对于大多数基于 pcap 的工具,需要记住的重要一点是,pcap 通常在内核网络堆栈中捕获比任何 netfilter 代码都要低的数据包。因此,您使用 iptables 丢弃的数据包仍将到达接口并被捕获。

您在捕获中看到了流量 SYN 数据包,但它们很可能没有被传递到系统中的任何其他内容(假设您的规则正确匹配流量)。查看iptables -nvL规则的计数器 ( ) 以进行仔细检查。

无论有没有 iptables 规则,netstat -tuna 是否显示任何奇怪的连接

有了规则,我们显然希望什么都看不到,所以这并不太令人惊讶。不过,我不确定为什么没有规则你就什么都看不到。不过我可能会使用ss -nutnetstat。

相关内容