TCPDUMPは新しい接続のみをキャプチャします


9

TCPDUMPを使用して、特定のIPアドレスからのトラフィックをキャプチャしています。新しい接続のみ、つまりSYNパケットで始まるTCPストリームのみをキャプチャする可能性はありますか?

ありがとうございました


残念ながら違います。tcpdumpは、到着したパケットをキャプチャするだけで、TCPストリームを区別するためのセッション情報は一切保持しません。ストリームを分離する場合は、Wiresharkでキャプチャを分析する必要があります(たとえば、ストリーム番号で注文できます)。
Mark Riddell

注意してください。SYNビットは、TCP 3ウェイハンドシェイクの最初の2つのパケットで設定されます。したがって、このフィルターは、新しく確立された接続だけでなく、接続を確立するすべての新しい試みに一致します。どういうわけか(ソフトウェアルール)接続が受け入れられない場合も表示されます。
エンジェル

回答:


7

TCP SYNパケットのみをキャプチャするには:

# tcpdump -i <interface> "tcp[tcpflags] & (tcp-syn) != 0"

3
それは新しいセッションのためのすべてのトラフィックをキャプチャしません。SYNパケットのみをキャプチャします。
user5870571

1

以下は、TCP-SYNパケットとSYN-ACKパケットの両方をキャプチャします。

tcpdump -i <interface> "tcp[tcpflags] & (tcp-syn) !=0"

以下は、TCP-SYNパケットのみをキャプチャします。

tcpdump -i <interface> "tcp[tcpflags] & (tcp-syn) !=0 and tcp[tcpflags] & (tcp-ack) =0"

その理由は、SYN-ACKパケットにはSYNフラグとACKフラグの両方が含まれているためです。最初のフィルターは、SYNフラグの存在のみを探しました。

インバウンドのみをフィルタリングする場合は、-Q inオプションを追加します。

tcpdump -i <interface> -Q in "tcp[tcpflags] & (tcp-syn) !=0 and tcp[tcpflags] & (tcp-ack) =0"
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.