OpenBSDでtcpdumpを使用しています。それに関する入門書。
さまざまなポートをキャプチャしたいのですが、これを行う方法が変わったようです。私はマニュアルページでもこれを示すキーワードとしてportrangeを見つけることができません。
# tcpdump portrange 100-65535
tcpdump: syntax error
一つではありません:
# man tcpdump | grep portrange
#
OpenBSDでは、これが変更されたか異なると思います。最初のレッスンでは実用的なことを学ぶので、誰かが私にこれを行う方法を教えてくれたらいいでしょう。誰かが私にtcpdumpの最新の入門書を教えてくれたら、もっと良いでしょう。
OpenBSDには独自のtcpdumpが付属しています。これはフォークかもしれません。わかりません。
答え1
portrange
OpenBSDのpcap-filterでは使用できませんが、偽造できます。
tcpdump -i em0 tcp[2:2] > 79 and tcp[2:2] < 85
パケットの個々の部分を指定して比較できます。最初の数字はパケットのオフセット(0から始まり)、2番目の数字は使用するバイト数です。したがって、上記の例では、宛先ポートが80〜84のすべてのTCPパケットと一致します。 <=と> =を使用してより直感的にすることもできます。
ソースポートと一致するtcp[0:2]
UDPは、ポートのオフセットが等しいため、実際には同じです。
答え2
表示フィルタはlibpcapによって処理され、OpenBSDには独自のlibpcapとtcpdumpがあります。これは tcpdump.org の libpcap と tcpdump から変更を必ず行う必要はありません。
それがうまくいかない場合portrange
、それをサポートすることはおそらくOpenBSDが選択しなかったことの1つです。
答え3
使用しないでman pcap-filter
くださいman tcpdump
によるとman pcap-filter
:
dst portrange port1-port2
True if the packet is ip/tcp, ip/udp, ip6/tcp or ip6/udp and has a destination port value between port1 and port2. port1 and port2 are interpreted
in the same fashion as the port parameter for port.
src portrange port1-port2
True if the packet has a source port value between port1 and port2.
portrange port1-port2
True if either the source or destination port of the packet is between port1 and port2.
Any of the above port or port range expressions can be prepended with the keywords, tcp or udp, as in:
tcp src port port
which matches only tcp packets whose source port is port.