tcpdump
Wikiduccaは終了しました。今後はゴールドペディアをご利用ください。<nowiki>Wikiduccaは終了しました。今後はゴールドペディアをご利用ください。<nowiki>Wikiduccaは終了しました。今後はゴールドペディアをご利用ください。<nowiki>Wikiduccaは終了しました。今後はゴールドペディアをご利用ください。パケットキャプチャ定番コマンドtcpdump の使い方。 = コマンドライン = # tcpdump <条件式> 条件式には,type,dir,proto が指定できる。 == type == 対象にするパケットの種類を指定する。タイプで指定できるのは、 *host(ホスト) *net(ネットワーク) *port(ポート) の3種類。<br /> 例:"host hogehoge"、"port 80" など == dir == 通信の方向を特定する。方向として指定できるのは *src(ソースアドレス) *dst(ディスティネーションアドレス) *src or dst *src and dst の4種類。dir修飾子がない場合は、「src or dst」が指定されたものと見なされる == proto == プロトコルを特定する。プロトコルとして利用可能なのは、 *ether *fddi *mopdl *ip *ip6 *arp *rarp *decnet *lat *sca *moprc *icmp *icmp6 *tcp *udp の15種類。proto修飾子がない場合は、(type修飾子と矛盾しない範囲で)すべてのプロトコルが指定されたものと見なされる。 上記の修飾子で構成された条件を演算子「and」「or」「not」でつなぐことで、複雑な条件を指定することが可能である。 = 使用例 = == 基本編 == === tcpのパケットを監視する場合 === # tcpdump tcp === udpのパケットを監視する場合 === # tcpdump udp === IPv6のパケットを監視する場合 === # tcpdump ip6 === ICMPv6のパケットを監視する場合 === # tcpdump icmp6 === RTPのパケットを監視する場合 === # tcpdump -T rtp === RTCPのパケットを監視する場合 === # tcpdump -T rtcp === 80番のポートを監視する場合 === #tcpdump port 80 === SSH以外のポートを監視する場合 === #tcpdump port not ssh === 送信アドレスが192.168.0.1のものを監視する場合 === # tcpdump src host 192.168.0.1 == 応用編 == === IPアドレス192.168.0.100に関する80/TCPのパケットを監視する場合 === # tcpdump tcp port 80 and host 192.168.0.100 === 宛先が192.168.0.100に関する80/TCPのパケットを監視する場合 === # tcpdump tcp port 80 and host dst 192.168.0.100 === IPv6で5004/UDPのパケットを監視する場合 === #tcpdump ip6 and udp and port 5004 === IPv6でTCPとUDPのパケットを監視する場合 === #tcpdump ip6 and \(udp or tcp\) === IPv6でTCPと5004/UDPのパケットを監視する場合 === #tcpdump ip6 and \(\(udp and port 5004 \) or tcp\) === LAN(192.168.1.0/24)内のtcpによるやりとりを監視する場合 === tcpdump tcp and \(src and dst net 192.168.1.0/24\) === LAN(192.168.1.0/24)の外から中に入っているパケットを監視する場合 === tcpdump \(src net not 192.168.1.0/24\) and \(dst net 192.168.1.0/24\) = オプション一覧 = <table width="100%" border="1"> <tr> <td>-F file</td> <td>条件式を file から読み込む。条件をあらかじめファイルに記述しておけば、毎回条件を記述する手間を減らせる。</td> </tr> <tr> <td>-n</td> <td>アドレスを名前に変換しない。これは IP アドレスだけでなく、ポート番号なども数字のまま出力する。</td> </tr> <tr> <td>-i interface</td> <td>複数のインターフェースを使用している際はこれで指定する事が出来る。</td> </tr> <tr> <td>-r file</td> <td>これは前もって -w オプションなどで作成したファイルからパケットを読み込む。Snort もこの -r オプションで読み込み可能なファイルを作成することができる。</td> </tr> <tr> <td>-w file</td> <td>ネットワークに流れるパケットをそのままファイルに保存する。このログを読むためには-r オプションを使用する。</td> </tr> <tr> <td>-x</td> <td>パケットの中身を 16 進数で表示する。</td> </tr> <tr> <td>-X</td> <td>パケットの中身を ASCII で表示する。16 進数も同時に表示する。暗号化されていない通信ならば、このオプションでほぼ全ての内容が見れる。</td> </tr> <tr> <td>-T</td> <td>rtp (Real-Time Applications protocol)</td> </tr> <tr> <td>-s</td> <td>ダンプするデータ長を指定する。デフォルトは64byte(ethヘッダ除く)パケットを全部みたい場合は1500などにすると良い(ethernetの場合)。MTUサイズより大きくすればパケット丸ごと取れる)</td> </tr> </table> [[Category:Linuxコマンド]]