UnixまたはUnixライク(Linux、Mac OS)オペレーティングシステムを使用している場合、tcpdumpを使用してネットワークトラフィックを調べることができます。 tcpdumpプログラムは、無料でインストールできるコマンドラインユーティリティです。一般にオペレーティングシステムに統合されていないため、tcpdump GitHubレジストリまたはtcpdumpの公式Webサイトからインストールする必要があります。.
tcpdumpの要素
tcpdumpで使用されるパケットキャプチャユーティリティは、プロシージャのC / C ++ライブラリであるlibpcabによって提供されます。メインのtcpdumpプログラムは、パケットキャプチャプロセスのインターフェイスです。実行されると、libcapプロセスを開始してパケットをキャプチャし、その内容を画面に表示します。キャプチャするパケット数の制限がプログラムの開始時に指定されていない限り、プログラムは永久に実行され続けます。その後、処理は割り込み信号(Control-C)で終了します。.
プログラムはコマンドラインで実行され、フラグで示される多数のオプションが含まれています。これらのフラグは、プログラムの動作を変更して、指定されたパターンに一致するパケットを選択したり、実行時間を制限したり、ネットワークインターフェイスではなくファイルから保存されたパケットを読み取ったりします。.
Tcpdump形式
tcpdumpコマンドは、単独で、またはオプション、パラメーター、正規表現を使用して発行できます。これらの要素はいずれも必須ではなく、順序は重要ではありません.
tcpdump <-option_identifier>
Tcpdumpオプション
コマンドtcpdumpの後にオプションが続きます。これらのオプションは 旗. これらはそれぞれ、ハイフンとそれに続く文字で示されます。以下は、これらの各フラグのリストです.
-A リンクレベルヘッダーなしでパケットをASCIIで出力します
-b AS番号がASDOT形式であることを示します
-B バッファサイズ KiB単位(1024バイト
-c カウント –キャプチャするパケットの制限
-C ファイルサイズ –このファイルサイズの制限が満たされると、プロセスは新しいファイルを作成します。サイズはx 100万バイト
-d コンパイルされたパケット一致コードをASCIIでダンプします
-dd パケットマッチングコードを C プログラムフラグメント
-ddd パケットマッチングコードをカウントの前に10進数としてダンプします
-D アクセス可能なすべてのインターフェースをリストする
-e 各ダンプ行にリンクレベルのヘッダーを出力します
-E spi @ ipaddr algo:secret – IPsec ESPパケットの復号化:
spi は、セキュリティパラメータインデックスです
ipaddr パケットの宛先アドレスです
アルゴ はデフォルトのアルゴリズムです des-cbc フィールドはオプションです.
可能な値は次のとおりです。
- des-cbc
- 3des-cbc
- blowfish-cbc
- rc3-cbc
- cast128-cbc
秘密 ESP秘密鍵のASCIIテキストです。 0xが前に付く場合、それは16進値です
-f 「外部」のIPv4アドレスを記号ではなく数値で印刷する
-F ファイル – 使用する ファイル フィルター式の入力として
-G rotate_seconds –wオプションの保存ファイルをローテーションする期間。名前にタイムスタンプを追加します。
-h tcpdumpおよびlibpcapのバージョン文字列を出力し、使用方法のメッセージを出力して、終了します終了します
-H 802.11sドラフトメッシュヘッダーの検出
-私 インターフェース –リッスンするインターフェイス。デフォルトでは最小の名前になりますアルファベット順に
-私 モニターモード|即時モード –バッファリングを削除します
-j tstamp_type –キャプチャのタイムスタンプタイプを tstamp_type
-J tstamp_precision –タイムスタンプの精度を設定します(マイクロ または ナノ)デフォルトはマイクロもし tstamp_precision null、タイムスタンプタイプをリストして終了
-K チェックサムを検証しない
-l バッファリングされた標準出力行。例えば. tcpdump -l |ティーダット または tcpdump -l > dat & tail -f dat
-L 指定されたモードで、インターフェイスの既知のデータリンクタイプを一覧表示し、終了します終了
-m モジュール –ファイルからSMI MIBモジュール定義をロードする モジュール.
-M 秘密 – TCP-MD5オプションで検証するための共有秘密値
-n アドレス(ホストアドレス、ポート番号など)を名前に変換しないでください
-N ホスト名のドメイン名修飾を印刷しないでください
-# 行の先頭にオプションのパケット番号を出力します
-O パケットマッチングコードオプティマイザーを実行しないでください
-p インターフェイスを無差別モードにしないでください
-Q 方向 –送受信の方向。することができます に, でる, または inout
-q より少ないプロトコル情報を印刷する
-r ファイル –パケットの読み取り元 ファイル. 指定する – 標準入力用
-S 絶対TCPシーケンス番号を出力します
-s スナップレン –スナーフ スナップレン デフォルトではなく、各パケットからのバイト数262144バイト
-T タイプ –指定されたとおりにパケットを解釈する タイプ. オプションは次のとおりです。
- aodv アドホックオンデマンド距離ベクトルプロトコル
- 鯉 共通アドレス冗長プロトコル
- cnfp Cisco NetFlowプロトコル
- lmp リンク管理プロトコル
- pgm 実用的な一般的なマルチキャスト
- pgm_zmtp1 PGM / EPGM内のZMTP / 1.0)
- それぞれ REdisシリアル化プロトコル
- 半径 半径
- rpc リモートプロシージャコール
- rtp リアルタイムアプリケーションプロトコル
- rtcp リアルタイムアプリケーション制御プロトコル
- snmp 簡易ネットワーク管理プロトコル
- tftp 簡易ファイル転送プロトコル
- バット ビジュアルオーディオツール
- wb 分散ホワイトボード
- zmtp1 ZeroMQメッセージ転送プロトコル1.0
- vxlan 仮想拡張可能ローカルエリアネットワーク
-t 各ダンプ行にタイムスタンプを印刷しないでください
-tt 1970年1月1日以降の各ダンプ行にタイムスタンプをオフセットとして出力します
-ttt 現在の行と前の行の間のデルタ(マイクロ秒の解像度)を印刷します
-tttt タイムスタンプを出力:各ダンプ行に日付、時間、分、秒
-ttttt 現在の行と最初の行の間のデルタ(マイクロ秒の解像度)を印刷します
-あなたは デコードされていないNFSハンドルを印刷します
-うん バッファリングされたパケット
-v やや詳細な出力
-vv より詳細な出力
-vvv 最も詳細な出力
-V ファイル –ファイル名のリストを読み取ります ファイル. 標準入力は次の場合に使用されます ファイル は –
-w ファイル –出力を書き込む ファイル
-W 限定 –によって作成されるファイルの最大数 -C そして -G オプション
-バツ 各パケットのデータから16進数のリンクレベルヘッダーを引いたものを出力します
-xx 各パケットのデータを印刷する, 含む 16進数のリンクレベルヘッダー
-バツ 各パケットのデータから、リンクレベルヘッダーを16進数とASCIIで除いたものを印刷します
-XX 各パケットのデータを印刷する, 含む 16進数のリンクレベルヘッダーおよびASCII ASCII ASCII ASCII.
-y datalinktype –パケットのキャプチャ中に使用するデータリンクタイプを設定します datalinktype
-z 後回転コマンド –プロセスは通常、圧縮を使用してファイルを保存します。 -z gzip
-Z ユーザー –ユーザーIDを変更します ユーザー およびグループIDをプライマリグループに追加します ユーザー
Tcpdumpパラメーター
tcpdumpのパラメーターは、 プリミティブ. これらは、パケットキャプチャが指定されたホストからのデータのみを取得するかどうかを指定します。これらのパラメーターは、ブール演算子を使用して条件として表現することもできます そして, または, そして じゃない. パラメーター名とその値の間に等号(=)を置く必要はありません。また、パラメーターを句読点で区切る必要もありません。いずれの場合も、スペースが必要です.
これらのパラメーターで最も一般的に使用されるのはホストです。これにより、キャプチャを1つのソースからの送信に制限できます。いずれの場合も、パラメーター値としてのデバイス名はそのアドレスに置き換えることができます。パラメータに dst バージョンでは、そのバリエーションは、出力をその宛先にその属性を持つパケットのみに制限します。含むパラメーター src 発信元に関連するデータで指定された値を持つパケットを探します.
パラメーターのオプションは次のとおりです。
ホスト ホスト名 –また dstホスト または srcホスト.
を追加することもできます ip, アルプ, または rarp
エーテル ehost – / etc / ethersの値または数値。また エーテルsrc そして エーテル宛先.
ゲートウェイ ホスト –ゲートウェイを通過したパケットを取得する ホスト
ネット network_num – 送信元または宛先IPが含まれます network_num また dst net そして src net
港 番号|名前 –また dstポート そして srcポート. とすることができます tcp または UDP プロトコルを制限する
ip proto プロトコル –指定されたプロトコルのIPパケットをキャプチャします。名前は/ etc / protocolsにある必要があります
エーテルプロト プロトコル –イーサネットプロトコルタイプのパケットをキャプチャします。のオプション プロトコル 数字または:
- ip
- ip6
- アルプ
- rarp
- 語る
- atalkarp
- decnet
- デッキ
- decdns
- ランブリッジ
- lat
- mopdl
- moprc
- 子犬
- スカ
- スプライト
- stp
- vexp
- vprod
- xns
放送 イーサネットブロードキャストパケットをキャプチャします。とも書かれています エーテル放送
IPブロードキャスト IPブロードキャストパケットをキャプチャします
マルチキャスト イーサネットマルチキャストパケットをキャプチャします。イーサーマルチキャストとも記述
IPマルチキャスト IPマルチキャストパケットをキャプチャします
decnetホスト ホスト名 – DECNETのソースまたは宛先が ホスト名
decnet src ホスト名 – DECNETソースが ホスト名
decnet dst ホスト名 – DECNET宛先が ホスト名
wlanホスト ehost –最初、2番目、3番目、または4番目のIEEE 802.11アドレスが ehost
wlan addr1 ehost –最初のIEEE 802.11アドレスが ehost
wlan addr2 ehost – 2番目のIEEE 802.11アドレスが ehost
wlan addr3 ehost – 3番目のIEEE 802.11アドレスが ehost
wlan addr4 ehost – 4番目のIEEE 802.11アドレスが ehost. WDSにのみ使用
タイプ タイプ – IEEE 802.11フレームタイプが タイプ, a is numberまたは:
- データ
- mgt
- ctl
サブタイプ サブタイプ – IEEE 802.11フレームが サブタイプ, 数字または:
- assocreq
- アソクレスプ
- reassocreq
- 再吸収
- probereq
- プロブレ
- ビーコン
- 危ない
- 悲しみ
- auth
- 認証解除
- データ
dir dir – IEEE 802.11フレームの方向が次の場合にキャプチャする dir, これはa
- うなずく
- トッド
- fromds
- dstods
Tcpdump式
tcpdumpコマンドの式セグメントを使用すると、パケット選択に少しプログラミングを追加できます。ただし、通常のプログラムとは異なり、この一連の命令は1行で記述する必要があります。 UnixまたはLinuxを頻繁に使用する場合、シェルスクリプトの正規表現に慣れているため、これらのフィルターの形式を理解するのに問題はないはずです。.
式によって定められたテストを満たすパケットがキャプチャされます。したがって、各式の結果は「true」である必要があります.
一般にシェルスクリプトでは発生しない式の条件がいくつかあります。これらを以下に示します。
len
これはパケットの長さを返します。使用例: len!= 5.
proto [expr:size]
このオブジェクト内:
プロト プロトコル層の名前です。かもね:
- エーテル
- fddi
- ip
- アルプ
- rarp
- tcp
- UDP
- icmp
expr バイトオフセットです。これを含める必要がありますが、オブジェクトの先頭から値を取得するために0として指定できます.
サイズ オプションであり、オプションのバイト数を表します。デフォルト値は1ですが、2、3、または4の場合もあります.
使用例:
エーテル[0] & 1!= 0 すべてのマルチキャストトラフィックに当てはまります.
ip [0] & 0xf!= 5 オプション付きのすべてのIPパケットに当てはまります.
ip [6:2] & 0x1fff = 0 断片化されていないデータグラムと断片化されたデータグラムの断片ゼロに当てはまります.
Tcpdumpの例
これらのすべての場合において、ファイル関連オプションが含まれている場合、またはコマンドがスタンド出力リダイレクトまたはファイルへのパイプで起動されない限り、コマンドの結果は画面に表示されます.
lab1として識別されるコンピューターとの間で移動するパケットを表示します。
tcpdumpホストlab1
lab1と受信以外のノード間を移動するすべてのIPパケットを表示します。
tcpdump ip host lab1および受信なし
インターネットゲートウェイスタイクスを介したすべてのftpトラフィックを表示します。
tcpdump「ゲートウェイスタイックスおよび(ポートftpまたはftp-data)」
非ローカルホストを含む各TCP会話のSYNおよびFINパケットを表示します。
tcpdump ’tcp [tcpflags] & (tcp-syn | tcp-fin)!= 0であり、srcおよびdst net localnetではありません。
イーサネットブロードキャストまたはマルチキャストを介して送信されなかったIPブロードキャストまたはマルチキャストパケットを表示します。
tcpdump ‘ether [0] & 1 = 0およびip [16] >= 224 ’
Tcpdump出力形式
パケットをファイルに書き込むために使用されるレコード形式は、多くの新しいパケットスニファーやトラフィックアナライザーで採用されている標準になりました.
標準は単純ではなく、各プロトコルに適合しています。ただし、この形式を採用しているアプリケーションでも、これらのバリエーションが考慮されます。この形式は pcap, これは、tcpdumpが使用するパケットキャプチャプロセスの名前です。この形式のファイルには通常、 .pcap 拡張.
Windows用のTcpdump
Windowsで実行されるtcpdumpの適応があります。これは WinDump そしてそれはに依存します WinPcap tcpdumpがlibpcapのpcap機能を使用するのと同じ方法でパケットをキャプチャします。 WinPcapは、実際にはRiverbed Technologyが所有しています。この同じ会社は、おそらく世界で最も有名で広く使用されているパケットスニファーであるWiresharkの主要な資金提供者です。と呼ばれるWinPcapのワイヤレスバージョンがあります AirPcap. WinDump、WinPcap、およびAirPcapは、WinPcap Webサイトから無料でダウンロードできます。.
パケットスニファーの使用
tcpdumpコマンドラインユーティリティは、 Unix そして Linux オペレーティングシステムとシェルスクリプトの作成をお楽しみください。コマンドラインで正規表現を使用してコマンドを組み立てるのにそれほど慣れていない人は、このプログラムを使用するのが難しいことに気付くでしょう。.
上記で説明したWiresharkなど、多くのパケットスニファが利用できるため、他のオプションもあります。パケットスニッファーのこのレビューでtcpdumpの代替についての詳細を見つけることができます。.
お気に入りのパケットスニファーはありますか?あなたはtcpdumpのファンですか、それとももっとユーザーフレンドリーな代替物を好みますか?にメッセージを残す コメント 以下のセクションで経験を共有してください.
画像:Flickr経由のLinuxスクリーンショットによるtcpdumpパケットキャプチャ。 CC BY 2.0でライセンスされています
UnixまたはUnixライク(Linux、Mac OS)オペレーティングシステムを使用している場合、tcpdumpを使用してネットワークトラフィックを調べることができます。tcpdumpは、無料でインストールできるコマンドラインユーティリティであり、GitHubレジストリまたは公式Webサイトからインストールする必要があります。tcpdumpは、libpcabによって提供されるパケットキャプチャユーティリティを使用しています。プログラムはコマンドラインで実行され、多数のオプションが含まれています。これらのオプションは、プログラムの動作を変更して、指定されたパターンに一致するパケットを選択したり、実行時間を制限したり、ネットワークインターフェイスではなくファイルから保存されたパケットを読み取ったりします。tcpdumpは、ネットワークトラフィックの解析に役立つ強力なツールです。