では、今日も授業を始める。今日のテーマはtcpdumpだ。
tcpdump(ティーシーピーダンプ)って何?
tcpdumpは、パケットを取得するときに利用するコマンドだ。
例えば、CentOSにtcpdumpをインストールすると、tcpdumpコマンドが利用できるようになる。
パケットを取得することを、パケットをキャプチャするといったりする。
rootユーザ(ルートユーザ)になって、yum install tcpdumpでインストールできるの?
うむ。インストールが終わったら、tcpdump -i any host 192.168.1.1と入力して、[Enter]を押すと、
-iでインターフェースの指定をしているから、サーバ自身が持っているすべてのNICを流れる通信パケットを対象としてパケットを取得するいう意味になり、
host IPアドレス指定で、そのIPアドレスとの通信のみを取得するという意味になる。
該当IPアドレスとの通信のみにしぼってパケットを取れるってことね。条件を指定しないときはすべてのパケットが対象になるから
大量なパケットを取得しちゃうってことね。
うむ。実際はそのサーバにどの程度の通信量が流れているかにもよるけどね。
tcpdumpコマンドのオプションはいろいろある。さっきのコマンドを投入すると、画面に通信パケットが表示されて見えるようになるが、
大量にパケットが流れていると、画面を見ていても、大量に出力されるので、よくわからない。
そのようなときは、-wをつかって、ファイルに保存することもできる。
tcpdump -i any host 192.168.1.1 -w /var/tmp/test.pcap のように入力して、[Enter]を押すと、
画面上にはパケットは表示されず、すべて/var/tmp/test.pcapに保存されるようになる。
保存したパケットファイルはどのように見ればいいの?
そのパケットファイルをたとえが、端末(WindowsやMac)にダウンロードしてきて、
Wireshark(ワイヤーシャーク)というツールを使って、GUI画面で、パケットのやり取りが見える。
端末にはあらかじめ、Wiresharkをインストールしておく必要がある。
Wiresharkは、もともとEthereal(イーサリアル)という名前だったが、
2006年にWiresharkという名前に変更されたんだ。
Wiresharkって有償?
いや、オープンソースなので、無償で使える。
以下サイトからダウンロードしてきて、インストールすればよい。
https://www.wireshark.org/download.html
では、今日はここまで。
は~い
1.tcpdumpはパケットをキャプチャするコマンド
2.yum install tcpdumpでインストール
3.tcpdump -i anyとすればすべてのインターフェース(NIC)から流れるパケットを取得
4.tcpdump -i any host 192.168.1.1 -w /var/tmp/test.pcapのように-wで保存ファイルを指定
5.Wireshark(フリーソフト)を使ってパケットを見ることができる