gpt4 book ai didi

linux - 如何防止 Linux 内核响应传入的 TCP 数据包?

转载 作者:可可西里 更新时间:2023-11-01 02:34:50 26 4
gpt4 key购买 nike

对于我的应用程序,我需要拦截某些 TCP/IP 数据包并通过自定义通信链路(不是以太网)将它们路由到不同的设备。我需要所有的 TCP 控制数据包和完整的 header 。我已经弄清楚如何通过 socket(PF_PACKET, SOCK_RAW, htons(ETH_P_IP)); 使用原始套接字获取这些数据有兴趣。

但是,Linux 也会看到这些数据包。默认情况下,当它接收到一个它不知道的 TCP 端口号的数据包时,它会发送一个 RST。这不好,因为我打算稍后自己发回回复。如果我使用 socket(PF_INET, SOCK_STREAM, 0);listen() 在同一个端口上打开第二个“正常”套接字,Linux 然后将 ACK 发送到传入的 TCP 数据包。这些选项都不是我想要的。我希望它对这些数据包什么都不做,这样我就可以自己处理所有事情。我怎样才能做到这一点?

最佳答案

我也想做同样的事情。我的理由是从安全角度出发……我想构建一个 Tarpit 应用程序。我打算将 TCP 流量从某些源 IP 转发到 Tarpit。 Tarpit 必须收到 ACK。它会用自己的 SYN/ACK 回复。我不希望内核响应。因此,原始套接字将不起作用(因为提供的 TCP 数据包已发送),我还需要实现一个转移套接字。到目前为止,这就是我所知道的……还没有实现。

关于linux - 如何防止 Linux 内核响应传入的 TCP 数据包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17359669/

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