tcpdumpで、自分のマシン宛てのすべての着信IPトラフィックをキャプチャするにはどうすればよいですか?私は自分の地元の交通を気にしません。
私はただ言うべきです:
tcpdump ip dst $MyIpAddress and not src net $myIpAddress/$myNetworkBytes
...または私は何かが欠けていますか?
tcpdumpで、自分のマシン宛てのすべての着信IPトラフィックをキャプチャするにはどうすればよいですか?私は自分の地元の交通を気にしません。
私はただ言うべきです:
tcpdump ip dst $MyIpAddress and not src net $myIpAddress/$myNetworkBytes
...または私は何かが欠けていますか?
Bashシェルでこれを試してください:
tcpdump -i eth0 tcp and dst host $MyIpAddress and not src net $MyNetworkAddress/$myNetworkBytes
またはこの同等の定式化:
tcpdump -i eth0 ip proto \\tcp and dst host $MyIpAddress and not src net $MyNetworkAddress/$myNetworkBytes
私のシステムでは、これは次のように解決されます。
tcpdump -i eth0 tcp and dst host 10.0.0.35 and not src net 10.0.0.0/24
TCPプロトコルトラフィックだけでなく、宛先ホストへのすべてのトラフィックを確認したい場合は、次のようにします。
tcpdump -i eth0 dst host $MyIpAddress and not src net $MyNetworkAddress/$myNetworkBytes
いくつかのメモ:
に変更$myIpAddress/$myNetworkBytes
しました$MyNetworkAddress/$myNetworkBytes
。これは、ルールの明らかな目的がローカルネットワークからトラフィックを除外することであり、ネットワークアドレスを指定する正しい方法は、ネットワークの最小IPアドレス(ネットワークアドレスと呼ばれる)/ネットマスクを指定することであるためです。ネットマスクが$myNetworkBytesのネットワークの範囲内の最小アドレス以外のアドレスを指定すると、次のエラーメッセージが表示されます。
tcpdump: non-network bits set in "10.0.0.3/24"
最初の例では、「tcp」はlibpcap式言語(man pcap-filter)のキーワードですが、2番目の例では、「tcp」はの値として使用されますip proto
。2番目のインスタンスの「tcp」が値であり、別の「tcp」キーワードではないことを示すために、「tcp」を二重の円記号でエスケープする必要があります。Bashインタープリターが1つのバックスラッシュをlibpcapインタープリターに渡すためには、ダブルバックスラッシュである必要があります(Bashは最初のバックスラッシュを食べ、libpcapは2番目のバックスラッシュを取得します)。コマンドの式部分全体を二重引用符で囲む習慣:
tcpdump -i eth0 "ip proto \tcp and dst host $MyIpAddress and not src net $MyNetworkAddress/$myNetworkBytes"
警告や驚きを避けるために、インターフェイス指定子-i eth0
または任意のインターフェイスを使用することをお勧めします。すべてのインターフェースに必ずしもIPアドレスが割り当てられているわけではなく、特定されていない場合は、意図しないトラフィックが表示される可能性があります。これは、ネットワークマネージャーが実行されているシステムに特に当てはまります。ネットワークマネージャーは、どのインターフェイスをいつ追加するかについて独自の考えを持っているようです。
上記のいずれも、複数のIPを持つボックスではうまく機能しません。
これは、多くのIPがバインドされているDNSサーバーで非常にうまく機能しました。
tcpdump -l -n -i pub dst port 53 and inbound
ただし、すべてのバージョンで機能するとは限りませんtcpdump
。
# tcpdump -V
tcpdump version 4.1-PRE-CVS_2012_03_26
libpcap version 1.4.0
-Q direction --direction=directionパケットをキャプチャする送信/受信方向の方向を選択します。可能な値はin',
out'と`inout'です。すべてのプラットフォームで利用できるわけではありません。