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

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

Web Programming

Webブラウザ上でHTML/CSS/JavaScriptを書いて試すことができるサービスの比較

目次はじめにサービス比較CodePenjsdo.itJSFiddleObservableまとめ はじめに Webブラウザ上で、HTML/CSS/JavaScript を書き、それをその場で実行したり保 …

Linux

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

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

Windows

Excel の「区切り位置」機能が便利

Excel の「区切り位置」機能の便利さについて書いています。

データベース管理ツール Adminer

目次1. Adminer とは?2. Adminer の特徴A. たった1つのPHPファイルで動作するB. MySQL の多くの機能に対応しているC. 対応データベースが多いD. ユーザーインターフェ …

no image

VSCode の設定・使い方

VSCode の設定・使い方について執筆予定です。 その他の機能 Emmet はデフォルトでサポートされている Emmet によるサジェスト