2016-05-19 6 views
0

私はscapyとテストの目的のために別のものにLinuxマシン上で設定SYN + FIN制御ビット(カーネル3.16)とのTCPセグメントを送信しようとしている:セグメント上のwiresharkで見ることができLinuxスタックによってSYN + FINセグメントがブロックされていますか?

from scapy.all import * 

sport = random.randrange(1024, 65535) 
dport = 45000 

pkt = IP(dst=X.X.X.X)/TCP(sport=sport, dport=dport, flags="SF") 
send(pkt) 

しかし、そのマシン上のwiresharkはそのセグメントをまったく見ないので、それはXXXXに送られないようです。 LinuxカーネルはSYN + FINセグメントの送信をブロックしていますか(この種の制御ビットの組み合わせは決して発生しません)。そうでなければ、そのような行動の理由は何でしょうか? SYN + FINセグメントの送信はどのように達成できますか?

+0

なぜですか?まだ確立されていない接続を介してFINを送信することは合法ですか? – EJP

+0

これは法律上の問題ではありません。それは、Linuxスタックが受け取ったときに反応する方法をテストすることです。 –

答えて

1

一般に、セグメントは、SYN & FINフラグがTCPルールに違反すると同時に設定されることはありません。実際にはOSに依存しますが、TCPは通常RSTを返します。

この件に関しても同様のスレッドがあります。What happens when SYN and FIN flags in TCP headers are both set to 1?

+0

目的は、実際のセグメントを送信して実際にテストして、RFCの状態を裏付けることです。 「実際はOSに依存している」。正確には、理論はここでは十分ではない。この質問はOS(Linux)に依存しています。 –

関連する問題