netfilter劫持ping包,却得不到响应?

发布于 2022-09-04 09:23:48 字数 793 浏览 31 评论 0

1.我在用户机上写了一个内核模块,用Netfilter实现了ping数据包的劫持,并且能收到回包。现在用用户机去ping百度,然后通过netfilter修改目的地址到服务器,服务器再通过netfilter修改数据包ip的头部,目的地址,源地址,检验和,修改为源地址为服务器,目的地址为百度,检验和修正。等收到百度的回包后再修改数据包,使数据包可以返回到用户机。
2.现在用户机发向百度的ping包成功被修改,并且ping向了服务器,服务器也修改数据包成功了(tcpdump抓到了修改后的包,且修改后的数据包的ip头部和服务器直接Ping百度的ip头部是一样的),但是收不到回包。(服务器是在pre_routing处做的修改)

*有几个问题

1.tcpdump在服务器上,抓不到用户机ping向服务器的包,却能抓到被修改后发向百度的数据包 ???
2.在forward, post_routing处,都做了hook函数,却抓不到修改后的数据包   ???
3.经查阅,tcpdump基于libpcap,libpcap是在网卡和协议栈之间复制数据包,而netfilter是在网络层抓的数据包

总结:按理说,libpcap抓到了修改后的包,呢么,数据包已经递交给了网卡了,呢就是说我的数据包被baidu丢弃了,但是我的包的Ip头部和我直接去ping百度的ip头部是一致的。而且,为什么我用netfilter在forward,post_routing处都抓不到数据包。数据包被修改后应该注意哪些点?

补充:我将服务器修改的目的地址,改为我的另一台云服务器,结果是在另一台云服务器上无法抓到这个修改后的Ping包。呢libpcap抓到的包又是在链路层,数据包会是在哪里被丢弃了呢??

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文