Xzo*_*rax 5 sockets linux kernel tcp
我想问一个关于原始套接字编程和 linux 内核 TCP 处理的经典问题。我已经对一些相同的线程进行了研究,例如linux raw socket programming question,如何正确地使用原始套接字重现 TCP 协议 3 次握手?, 和TCP ACK spoofing,但仍然无法得到解决方案。
我尝试制作一个不侦听任何端口的服务器,而是从远程主机嗅探 SYN 数据包。服务器做一些计算后,它会向对应的SYN包发送一个SYN_ACK包,这样我就可以手动创建TCP连接,不包括内核的操作。我创建了原始套接字并通过它发送 SYN_ACK,但数据包无法通过远程主机。当我在服务器 (Ubuntu Server 10.04) 上执行 tcpdump 并在客户端 (Windows 7) 上执行wireshark 时,服务器返回 RST_ACK 而不是我的 SYN_ACK 数据包。在做了一些研究之后,我得到信息,我们不能抢占内核的 TCP 处理。
还有其他方法可以破解或设置内核不响应这些数据包的 RST_ACK 吗?我在服务器的本地 ip 添加了一个防火墙来告诉内核防火墙后面可能有东西在等待数据包,但仍然没有运气
您是否尝试使用 iptables 删除 RST?
iptables -A OUTPUT -p tcp --tcp-flags RST RST -j DROP
Run Code Online (Sandbox Code Playgroud)
应该为你做这项工作。
| 归档时间: |
|
| 查看次数: |
5469 次 |
| 最近记录: |