Scapy和TCP堆栈:避免我的系统的TCP堆栈发送RST

时间:2015-04-15 14:31:50

标签: python sockets networking tcp scapy

我有以下scapy scipt

a=IP(dst="192.168.10.71")/TCP(sport=13998, dport=14010, flags="S", window=1400)
sr1(a)
a=IP(dst="192.168.10.71")/TCP(sport=13998, dport=14010, flags="A", window=1400)
sr1(a)

第一个数据包被发送到目标tcp服务器 enter image description here

然后我从TCP服务器收到了SYN + ACK: enter image description here

然后看看我的系统的TCP堆栈发送一个RST TCP数据包,因为我的脚本发送第二个TCP数据包(ACK),如上面的脚本所示

enter image description here

如何避免我的系统的TCP堆栈在从服务器收到SYN + ACK后发送RST TCP数据包?并发送代替它的第二个TCP数据包,如脚本中所示?

顺便说一句,我的TCP服务器是:

<?php
$socket = stream_socket_server("tcp://0.0.0.0:14010", $errno, $errstr);
if (!$socket) {
  echo "$errstr ($errno)<br />\n";
} else {
  echo "SERVER TCP (port 14010) started!";
  while ($conn = stream_socket_accept($socket)) {
    fwrite($conn, 'The local time is ' . date('n/j/Y g:i a') . "\n");
    fclose($conn);
  }
  fclose($socket);
}
?>

1 个答案:

答案 0 :(得分:1)

问题的答案如下topic

应该添加此ip table命令

iptables -A OUTPUT -p tcp --tcp-flags RST RST -s 192.168.2.68 -j DROP