今回は使った技術の備忘録です。簡単な作業でもずぶの素人がやると時間が溶けますね。
今度から溶かさないように残します。
背景
Cisco ASA (具体的にはFirepower)のトラブルシューティングで、パケットキャプチャはできたが、Windows に持ってくるのに苦労した。Ciscoの公式ページはこちら。
概要
- パケットキャプチャするコマンドをASA で打つ
- Windows PC ではtftpd64 を起動する
- asa からコマンドでWindows PC に向けてtftp する
ポイントは、Windows PC はそのままではTFTP サーバ(ファイルを受ける側)として動作しないこと、ASA からTFTP の送信先の権限に気を付けることです。
1. パケットキャプチャのコマンド
何はともあれASA にTeraterm します。物理でもVPN でも。
そして下のコマンドを打てばパケットキャプチャが開始します。
今回は、X.X.X.X からY.Y.Y.Y への通信をキャプチャします。
CAPTURE_NAME, PROTOCOL はそれぞれ任意のそれを入れます。
> enable
# capture CAPTURE_NAME interface outside match PROTOCOL host X.X.X.X host Y.Y.Y.Y
先に言っておくと、止め方は次のコマンドです。
# no capture CAPTURE_NAME
パケットキャプチャを開始したら、問題の通信を試行し、気が済んだら停止します。
キャプチャは、/pcap というところに保存されるようです。
2. Windows PC で、TFTP を待ち受ける
TFTP の基本は
- ファイルをやり取りするプロトコル
- ファイルを受ける方がサーバ
- UDP 69
冒頭で述べた通り、Windows PC にTFTP サーバの機能はありません。そこで、tftpd64 というフリーソフトをインストールします。
合ってるか知らないがここからダウンロードしました。
こんな感じでウィザードが立ち上がりますが全部初期設定でインストールします(※)。
このソフトを起動するなりWindows PC がTFTP サーバとして機能するようです。
※初期設定とは言ったが、destination folder を初期設定のままにしたら、前使った環境では権限の関係かで送れなかった。書き込み権限がきっと必要です。
ファイアウォール
UDP 69 を空けときます。お好きな方法で。
copilot の回答。パワーシェルのコマンドです。
UDP 69番ポートを許可するファイアウォールルールを追加
New-NetFirewallRule -DisplayName "Allow TFTP" -Direction Inbound -Protocol UDP -LocalPort 69 -Action Allow
空けなかったら空けなかったで起動時に要求されるかも。(されました)
TFTP で送信
前準備として、tftpd64 を起動し、 権限が適切に設定されたフォルダ を指定しておきます。
黄色でハイライトしたところから選択。
IP アドレスはVPN なら仮想インターフェイスのIP を選択。
ASA で打つべきコマンドはこうです。TFTP サーバのアドレスがZ.Z.Z.Z です。
# copy /pcap capture:CAPTURE_NAME tftp://Z.Z.Z.Z
そしたらCLI に!!! が並んで送信が進行します。
対象のフォルダにキャプチャしたファイルがあるはずです。
終わり