ターミナルでパケットキャプチャ
Linux(CentOS)のターミナルもしくはWindowsのコマンドプロンプトでインターネットのパケットをキャプチャしようと思ったときに、
GUI環境だったらWiresharkが有名ですが、ターミナル(CLI)環境だったらどうするのか調べてみました。
tshark
WiresharkにはCLI版の「tshark」と言う物があって
Wiresharkをインストールすると付属されているみたいです。
Linuxでは下記のコマンドでインストールできます。
#yum -y install wireshark
Windowsでは公式サイトからダウンロードしてください。
Linuxでは下記のコマンドで使用するインタフェースを確認します。
#tshark -D 1. eth0 2. any 3. lo
Windowsでは
>cd C:\Program Files\Wireshark >tshark -D
下記のコマンドでeth0のキャプチャが実行できます。
#tshark -i 1
192.168.1.1宛てのhttp通信だけをフィルタリング
#tshark -i 1 -l host 192.168.1.1 and port http
または、Wiresharkのfilter構文を使って上記と同様の事をするには
#tshark -i 1 -l host 192.168.1.1 -R "tcp.port == 80"
送信元192.168.0.1から宛先192.168.1.1へのhttp通信をキャプチャ
#tshark -i 1 -l host 192.168.1.1 -R "tcp.port == 80 && ip.src == 192.168.0.1"
sshでサーバーにアクセスしてtsharkを動かすと、ssh通信のキャプチャばかりが表示されるので
ssh通信以外のtcpパケットだけをキャプチャ
#tshark -i 1 -R "tcp.srcport != 22 && tcp.dstport != 22"
Wiresharkのfilter構文については以下のサイトが参考になります。
http://www.infraexpert.com/info/wireshark5.html
詳細なオプションについては
#man tshark
もしくは、こちらの公式ページが参考になります。
http://www.wireshark.org/docs/man-pages/tshark.html