gpt4 book ai didi

linux - 如何使所有传出的 RST 下降

转载 作者:IT王子 更新时间:2023-10-29 01:12:10 27 4
gpt4 key购买 nike

我正在尝试删除所有端口上的所有传出 RST 和传入 RST。我正在使用 Debian Linux。我尝试了互联网上列出的所有可能的命令组合,但似乎没有任何效果。

例如,我试过:

iptables -A OUTPUT -o eth0 -p tcp --tcp-flags RST RST -j DROP  
iptables -A OUTPUT -p tcp --tcp-flags RST RST -j DROP
iptables -A INPUT -p tcp --tcp-flags RST RST -m state --state RELATED,ESTABLISHED -j DROP
iptables -A INPUT -p tcp --tcp-flags RST RST -j DROP

我仍然看到内核正在发送 RST 数据包,并且还接收到 RST 数据包。请尝试解决此问题

最佳答案

如果您希望丢弃入站 RST 数据包,您需要这样做:

iptables -I INPUT -p tcp --tcp-flags ALL RST,ACK -j DROP
iptables -I INPUT -p tcp --tcp-flags ALL RST -j DROP

如果您希望丢弃出站 RST 数据包,您需要这样做:

iptables -I OUTPUT -p tcp --tcp-flags ALL RST,ACK -j DROP

为什么要 RST ACK?根据 RFC,对包含 SYN 的 TCP 数据包的任何响应都必须确认该序列号。因此,即使您指示您的端口已关闭,您也会使用 RST ACK 进行响应。

为什么要关心出站 RST?如果您尝试使用像 Scapy 这样的工具来试验 IP 行为,您将经常需要防止主机的 IP 堆栈发回 RST ACK。或者,您可以在 Scapy 中实现一个伪堆栈,声明一个 MAC,响应 IPv6 的 ARP 或 ICMP ND,并绑定(bind)您自己的 IP 地址,这也会阻止主机的堆栈响应。显然,这比简单地阻止出站 RST 数据包需要做更多的工作。

关于linux - 如何使所有传出的 RST 下降,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13215135/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com