Tools

ウェブサーバー(Linux) 上で特定のクライアントとの通信を記録してWindowsで内容を確認する

投稿日:2020年9月7日 更新日:

1. はじめに

以下の流れについて説明します。

  1. ウェブサーバー (Linux) 上で、特定のクライアントとの通信を記録開始する
  2. クライアント側のウェブブラウザから、1のウェブサーバーで稼働しているサイトにアクセスする
  3. ウェブサーバー上で記録を終了する
  4. ウェブサーバー上で記録したファイルを、クライアント側にダウンロードする
  5. クライアント上の Wireshark でファイルを表示する

2. ウェブサーバー上で通信の記録を開始する

ウェブサーバー(Linux) 上で、特定のクライアントとの通信内容を記録するには以下のコマンドを実行します。ウェブなので、80番ポートと443ポートを対象としています。

$ sudo tcpdump -vvv -w /tmp/dump_https.pcap tcp and host {クライアントのIP} and port 80 or 443

このコマンドを実行すると、記録が開始されます。

オプション 説明
-vvv 詳細な情報を出力します。
-w 通信データを保存するファイルパスを指定します。

3. クライアントからウェブサイトにアクセスする

まず、環境変数 SSLKEYLOGFILE にログファイルのパスをセットしておきます。このファイルには SSL/TLS通信で使用された鍵情報が保存されます。後で通信ログを見る時に、この鍵情報を使って暗号化されたデータ部分を複合することができます。

そして、Windows 10 上のウェブブラウザから 先程コマンドを実行したウェブサーバーで動いているウェブサイトにアクセスします。

ウェブブラウザは、SSLKEYLOGFILE に対応している必要があります。Chrome, ChromeベースのMicrosoft Edge, Firefox のどれかであればOKです。

4. ウェブサーバー上で記録を終了する

ウェブサーバー上で tcpdump コマンドを終了します。

5. 通信ログファイルをダウンロードする

方法は何でもよいので、サーバー上に保存された通信ログファイルを、クライアント側にダウンロードします。

例えば、WSL のターミナルであれば rsync コマンドが使えます。

$ rsync -avzP -e "ssh -p 22" foo@myserver:/tmp/dump_https.pcap ~/Downloads/ 

6. 通信ログファイルの内容を表示する

ダウンロードしたファイルを Wireshark で開いて内容を表示するのですが、Wireshark で以下の設定を行っておきます。

[編集] メニュー – [設定…] – [Protocols] – [TLS] を開き、[(Pre)-Master-Secret log filename] に、環境変数 SSLKEYLOGFILE で指定していたファイルを指定します。これにより、HTTPS で通信して暗号化されたいた通信データが複合されます。

📂-Tools

執筆者:labo


comment

メールアドレスが公開されることはありません。

関連記事

Linux

nvm を使っているUbuntu 16.04 LTS 環境に、yarn をインストールする

GitHub – creationix/nvm を使っている Ubuntu 16.04 LTS 環境に、Yarn をインストールする手順を紹介します。 Installation | Yar …

Linux

前回 ./configure を実行した時に指定したオプションを確認する

目次1. 前置き (configure, make, make install)2. config.status ファイル(1) 前回 configure を実行した時の引数を表示する(2) 前回 c …

Windows

WSL のシンプルな導入手順(2019年1月版)

WSL (Windows Subsystem for Linux) の基本的な導入手順について書きます。 ここで最低限必要な使い方を理解した上で、サードパーティ製のターミナルエミュレータ(Cmder …

ICTリテラシー

手軽に画像ファイル(PNG,JPEG)のサイズを小さくする TinyPNG サイト

PNG や JPEG 形式の画像ファイルを、なるべく見た目の品質を維持しつつ、ファイルサイズを小さくしたい場合は、TinyPNG というウェブサイトが手軽で便利です。

Anki

Anki: 次回の間隔[日]を算出するページを作りました

Ankiアプリにおける、次回の間隔[日]を算出するページを作りました。