私のコンピュータとVPNサーバー間のUDP接続の初期ハンドシェイクをキャプチャしたいと思います。これに使用していますが、tcpdump
理由を理解していません。
tcpdump dst port 1194 and "tcp[tcpflags] & (tcp-syn) != 0"
これまで何もキャプチャしない
tcpdump dst port 1194 and "(tcp-syn) != 0"
ハンドシェイクを開始する最初のSYNパケットのみをキャプチャする必要がある場合は、接続中に複数のパケットをキャプチャします。
tcp[tcpflags]
それは何のために使用されますか?
ベストアンサー1
tcp[tcpflags]
現在キャプチャされたTCPパケットにTCPフラグ(ビット)を格納する変数。tcp-syn
TCP SYN パケットに対応するビットを除いて定数で、他のすべての位置は 0 です。したがって:tcpdump dst port 1194 and "(tcp-syn) != 0"
等しい
tcpdump dst port 1194 and 1 = 1
UDPプロトコルはより簡単で、これらのフラグはありません。 UDPトラフィックにはSYN、ACKなどはありません。したがって、UDPパケットの内容を確認しないと、実際のハンドシェイクをキャプチャできません。
VPN通信がUDPを介して実行される場合。これにより、最初のルールはTCPパケットにのみ適用されるため、「ハンドシェイク」はキャプチャされません。 2番目はキャプチャしますが、ポート1194(TCPとUDP)を指すすべてのエントリでキャプチャされます。