📶

Nexmon環境構築(for RaspberryPi)

2024/06/19に公開

Nexmon環境構築手順 for RaspberryPi3/4B

ここでは,RaspberryPi3/4BにNexmonをインストールし,実際にCSIを取得するまでの一連の流れを説明します.

参考にしたサイト

https://github.com/seemoo-lab/nexmon

https://github.com/nexmonster/nexmon_csi/tree/pi-5.10.92

RaspberryPiの初期設定

イメージファイルの書き込み

付録:公開鍵認証を使用したSSH接続

$ sudo apt update
$ cd ~
$ mkdir .ssh
$ touch .ssh/authorized_keys
$ nano .ssh/authorized_keys
// 自身の公開鍵(.pub)をコピペ
$ sudo reboot

Nexmonのインストール

  • Nexmon_csiのバイナリファイルからインストールスクリプトを実行(2分程度)
$ sudo curl -fsSL https://raw.githubusercontent.com/nexmonster/nexmon_csi_bin/main/install.sh | sudo bash
$ sudo reboot

CSI収集テスト

通信環境の確認

  • Wi-Fiアナライザなどを使用して,観測したい無線通信チャネルと帯域幅を確認する

https://apps.microsoft.com/detail/9NBLGGH33N0N?hl=ja-JP&gl=JP

  • mcpコマンドで,base64でエンコードされたパラメータ文字列を作成する
$ sudo mcp -C 1 -N 1 -c {チャネル}/{帯域幅}
// mcpで指定できるオプションは-hで一覧表示可能
$ sudo mcp -h

CSI収集開始

  • パラメータ文字列を設定し,モニターモードインターフェース(mon0)を追加する
$ sudo ifconfig wlan0 up
$ sudo nexutil -Iwlan0 -s500 -b -l34 -{mcpで生成した文字列}
$ sudo iw dev wlan0 interface add mon0 type monitor
$ sudo ip link set mon0 up
  • tcpdumpコマンドでCSIの収集を開始する
//基本的な実行コマンド
$ sudo tcpdump -i wlan0 dst port 5500

//書き込みファイルの指定
$ sudo tcpdump -i wlan0 dst port 5500 -vv -w {任意のファイル名}.pcap

//指定パケット数だけ書き込みファイルに出力
$ tcpdump -i wlan0 dst port 5500 -vv -w {任意のファイル名}.pcap -c {観測したいパケット数}

//例:1000パケットに達するまで観測し,output.pcapファイルとして出力する
$ sudo tcpdump -i wlan0 dst port 5500 -vv -w output.pcap -c 1000

ポートフォリオ紹介

https://github.com/haradakaito

https://haradakaito.org/

Discussion