OSSを組み合わせてWi-Fiの無線を可視化する①
kismet+ElasticsearchでWi-Fiサーベイツールを作る
作成にはそれなりに手順が必要になりますので次回以降、順次公開していきたいと思います。
有償ツールではEkahau、TamoGraph、Netspotなどシミュレーション機能まで付いたツールが有名ですが、ちょっと解析したいレベルでしたらこれで十分かと思います。(余ってるPCとかあればできます。)
kismetとは
kismetはLinuxにインストール可能なWi-Fiのサーベイツールです。kismet APIというAPIが存在しており、kismetがキャプチャした802.11フレームを項目化し値を返してくれます。kismet単体でもGUIが付属していますが、瞬時値しか表示されませんのでElasticsearchで時系列化しましょうということです。
ざっくり構成
kismetはラズパイやミニPCにするとサーベイデバイスとしてどこでも設置できる感じにできます。
kismetを実行するデバイスのWi-Fiモジュールを使う、USBドングルを挿すなどして使います。
Elasticsearchはkismetと同居してもよいですし、図のように別に建てることもできます。別に建てれば複数のkismetを分析できます。kismet単独でログを溜め込めるのでkismetデバイスを分散配置しておいて後で回収、Elasticsearchで分析も可能です。
可視化できる項目
これはかなりの項目になります。kismet APIの組み合わせ次第になります。
上記kibanaで表示させているのは、一例として以下を「時系列で観測」しています。
- 空間上に存在するWi-Fiデバイスのベンダー一覧の遷移
- APに接続している端末台数の遷移
- APのチャネル利用率の遷移
- APのチャネル遷移(周波数の遷移)
例えば、チャネル遷移はどこかでガクッとズレ込む場合はDFSが疑われますね。
これらをベースにAPに接続している端末の内訳を追っていくこともできますし、APやSSID単位で再送率なんかも可視化できます。これらを組み合わせせることで無線状況の良し悪しが可視化することができます。(明確に干渉影響や弱電界かまでは言えないが何を改善すればいいかはわかるはずである。)
次回以降、構築方法を説明していきたいと思います。
Discussion