18.3.3. OpenSSL プレーンテキストが含まれるパケットをキャプチャーします。
ネットワークパケットを取得し、ネットワーク可観測性 CLI を使用して、OpenSSL で暗号化された接続から暗号化されていないプレーンテキストコンテンツを表示します。
前提条件
-
OpenShift CLI (
oc) がインストールされている。 -
Network Observability CLI (
oc netobserv)プラグインがインストールされている。 -
cluster-admin特権を持っている。 - OpenSSL を使用するターゲットアプリケーションの Pod IP アドレスとポートを特定している。
プレーンテキストのパケットキャプチャーは、パスワード、API キー、個人データなどの機密情報が含まれる TLS 接続から暗号化されていないコンテンツを公開します。適切なアクセス制御および保持ポリシーが適用されていることを確認します。必要なくなった時点で、キャプチャーファイルを安全に削除します。
手順
OpenSSL プレーンテキストを有効にしてパケットキャプチャーを開始し、ターゲット Pod の IP およびポートでフィルタリングします。
$ oc netobserv packets --peer_ip=<pod_ip> --port=<pod_port> --enable_openssl<
;pod_ip>を Pod IP アドレスに置き換え、<pod_port>をポート番号に置き換えます。例
$ oc netobserv packets --peer_ip=10.131.0.15 --port=8443 --enable_opensslCLI は、OpenSSL で暗号化された接続からのプレーンテキストデータと共にキャプチャーされたパケットのライブテーブルを表示します。
- Ctrl+Space を押してキャプチャーを一時停止します。
パケットキャプチャー出力に移動します。
- 方向キー(propagate propagate)を使用 してパケットを選択します。
- キャプチャーが一時停止されると、選択したパケットのペイロードが詳細パネルに表示されます。
- Tab を押して、フィルターの入力、パケットテーブル、および詳細パネルをフォーカスします。
- Esc を押してキャプチャーを再開します。
- また、マウスを使用してパケットを選択し、パネル間でフォーカスを移動することもできます。
オプション:追加のフィルターを適用してキャプチャースコープを絞り込みます。
$ oc netobserv packets --peer_ip=<pod_ip> --port=<pod_port> --query='SrcK8S_Namespace="<namespace>" or DstK8S_Namespace="<namespace>"' --protocol=TCP --enable_openssl--protocol、--queryなどのフィルター、または特定のトラフィックに焦点を当てる他のオプションを組み合わせることができます。--queryを使用して、CLI コンポーネントがデプロイされる as-namespaceの変更、namespace でフィルターを行います。オプション:後で分析するためにパケットをファイルにキャプチャします。
$ oc netobserv packets --peer_ip=<pod_ip> --port=<pod_port> --enable_openssl --copyCLI はプレーンテキストのコンテンツを含むキャプチャーされたパケットデータを
./output/pcapディレクトリーに書き込みます。パケットキャプチャーを停止します。
Ctrl+C を押してパケットの取得を停止し、シェルプロンプトに戻ります。
検証
パケットをファイルにキャプチャーした場合は、出力を確認します。
$ ls ./output/pcap/ディレクトリーには、タイムスタンプ付きの
.pcapngキャプチャーファイルが含まれています。パケットレベルの分析のために Wireshark を使用してキャプチャーファイルを開きます。キャプチャーされたプレーンテキストを確認します。
$ ls ./output/plaintext/ディレクトリーには、デコードされたプレーンテキストレコードを含むタイムスタンプ付きの
.jsonlファイルが含まれます。プレーンテキストのキャプチャーを調べます。
$ less ./output/plaintext/<timestamp>.jsonl