2012-06-01 36 views
0

我正在运行一些需要使用非标准TCP套接字的安全测试,以生成正常TCP堆栈不会遵循的行为。我使用原始套接字来产生这样的流量。当使用原始套接字进行TCP通信时,请保持内核不接收传入数据包

当收到来自另一端的回复时,内核不知道TCP连接并发出RESET。为了防止这种情况的发生,通常的解决方案是定义一个iptables规则,它删除所有的输出RESET(例如iptables -A OUTPUT -p tcp -dport 50000 -tcp-flags RST RST -j DROP)。

但是,在我的特殊情况下,RESET也是测试过程中生成的有效段。我需要的是一种过滤掉连接中的所有段的方法,这样内核TCP堆栈就不会涉及,并且可以访问原始套接字中的所有段。 任何想法我怎么能做到这一点?这可能与iptables?

在此先感谢 路易斯

回答

0

尝试使用主机的IP地址和战斗的Linux的TCP/IP协议栈呼吁麻烦。

相反,我会使用一个单独的IP地址,将其路由到tun设备,并从tun设备获取原始IP数据包,而不是使用原始套接字(一些示例代码连接tun设备可从http://www.secdev.org/projects/tuntap_udp/获得) 。这样Linux TCP/IP堆栈就不会出现在你的路上(路由puposes除外)。

+0

使用浴缸设备的问题是,交通将在箱子内部,我需要从外部测试仪箱测试到被测系统。出于这个原因,我需要一种方法来从测试器盒中生成这些TCP段,包括一个RESET。 –

相关问题