Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/souring001/illumi-packet
Illuminating Packets on an Ethernet Cable using LED Strip.
https://github.com/souring001/illumi-packet
Last synced: 2 days ago
JSON representation
Illuminating Packets on an Ethernet Cable using LED Strip.
- Host: GitHub
- URL: https://github.com/souring001/illumi-packet
- Owner: souring001
- License: cc-by-4.0
- Created: 2019-12-16T12:42:34.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2022-08-28T11:40:17.000Z (about 2 years ago)
- Last Synced: 2024-08-03T13:14:00.150Z (3 months ago)
- Language: Go
- Homepage: https://souring001.github.io/sec-museum
- Size: 2 MB
- Stars: 86
- Watchers: 2
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# イルミパケット
通信パケットを可視化するLANケーブル
[English](https://github.com/souring001/illumi-packet/blob/master/README_EN.md)
![illumi-packet](https://user-images.githubusercontent.com/29009733/70907987-8ab66000-204d-11ea-86e2-09a34d7c557a.jpg)
[動画 (YouTube)](https://youtu.be/5yJyNpHeRzg)
## 概要
イルミパケットは、通信パケットの種類と方向に合わせて、まるでパケットが流れたかのようにケーブルが光ります。
ARPのパケットはオレンジ色、DHCPのパケットは水色のように光ります。
通常のパケット解析に使われるツールはリアルタイムで目で追うことが難しいのに対し、これはパソコンを操作しながらパケットを観察できるので、「どういう操作」をした時に「どういうパケット」が発生するのかを体感することができます。
例えば、ウェブサイトにアクセスした時は、緑(DNS)と青(TCP)の光が複数個流れます。
![color](https://user-images.githubusercontent.com/29009733/71455676-786cbc80-27d9-11ea-980c-99a22d31696f.png)
## 準備
### 必要なもの
|材料|量|諸注意|
|:-|-:|:-|
|LEDテープ(WS281B)|1m|個別アドレス可能・フルカラーのもの.144LEDs/m 推奨.|
|Raspberry Pi|1台|動作確認: Raspberry Pi 2, 3, 4|
|LANケーブル|1m||
|ジャンパ線 オス-メス|3本||
|結束バンド|4本||そのほかに,キーボード,ディスプレイ,HDMIケーブル,ルータ等はご用意ください.
### 環境設定
動作には以下の環境が必要です.
* golang
* libpcap
* SCons
* rpi_ws281x
* illumi-packet#### golangのインストール
実行するプログラムはgo言語で記述されています.
https://golang.org/doc/install#install に従ってインストールします.
以下のようにターミナルで実行し,最後にバージョンが表示されることを確認してください.
```sh
$ version=1.13.4
$ wget https://storage.googleapis.com/golang/go${version}.linux-armv6l.tar.gz
$ sudo tar -C /usr/local -xzf go${version}.linux-armv6l.tar.gz$ echo "export PATH=\$PATH:/usr/local/go/bin" >> ~/.profile
$ . ~/.profile$ go version
go version go1.13.4 linux/arm
```#### libpcapのインストール
プログラムからパケットキャプチャを行うためにlibpcapをインストールします.```sh
$ sudo apt-get install libpcap-dev
```#### SConsのインストール
rpi_ws281xをビルドするためにSConsをインストールします.```sh
$ sudo apt-get install scons
```#### rpi_ws281xのインストール
LEDテープはrpi_ws281xというライブラリで操作します.https://github.com/jgarff/rpi_ws281x に従ってインストールします.
```sh
$ git clone https://github.com/jgarff/rpi_ws281x.git
$ cd rpi_ws281x
$ scons$ sudo cp -ai ./ws2811.h ./rpihw.h ./pwm.h /usr/local/include/
$ sudo cp -ai ./libws2811.a /usr/local/lib/
```#### イルミパケットのソースコード
このリポジトリのソースコードを適当なディレクトリにダウンロードします.```sh
$ git clone https://github.com/souring001/illumi-packet.git
$ cd illumi-packet
```LEDの個数によって`illumi-packet.go`の以下の変数を適宜変更してください.
| LEDの個数 | count | speed | series |
| --------:| -----:| -----:| ------:|
|60 個/m | 60 | 1 | 6 |
|144 個/m | 144 | 4 | 12 |
|144 個/m (50cm) | 72 | 1 | 12 |## LANケーブルの作り方
1. LANケーブルにLEDテープを乗せて,結束バンドで固定する.
2. ジャンパワイヤ(オス側)を挿し込む
3. メス側を Raspberry Pi のGPIOの2(5V), 6(GND), 12(信号) に挿し込む
4. Raspberry Piとルータに接続する![GPIO_Outline](https://user-images.githubusercontent.com/29009733/71317350-aba20980-24c2-11ea-8a59-47388f5b2d73.png)
![GPIO](https://user-images.githubusercontent.com/29009733/70908199-f7315f00-204d-11ea-9cb0-256967c7ca5e.png)
## ビルド方法
ソースコードを変更するたびにビルドをする必要があります.```sh
$ go build illumi-packet.go
```## 起動
```sh
$ sudo ./illumi-packet
```Ctrl+Cで終了します.
### オプション
|オプション|内容|
|:-|:-|
|-h|オプションの説明|
|-debug |パケット情報等の詳細を出力する(デフォルトは`true`)|
|-device [string]|ネットワークインターフェースを設定(デフォルトは`eth0`)|
|-speed [int]|パケットの流れる速度を設定(デフォルトは`1`)|
|-narp|ARPを表示しない|
|-ntcp|TCPを表示しない|
|-nudp|UDPを表示しない|
|-reset|点灯中のLEDの表示を消す|
|-ipaddr|IPアドレスをLEDに表示する|#### 例
TCP, UDPのパケットを表示しない.
```sh
$ sudo ./illumi-packet -nudp -ntcp
```
パケット情報等の詳細を出力しない.
```sh
$ sudo ./illumi-packet -debug=false
```
Wi-Fiの通信を可視化する.
```sh
$ sudo ./illumi-packet -device wlan0
```
IPアドレスをLEDに表示する.
```sh
$ sudo ./illumi-packet -ipaddr
```
![showipaddress](https://user-images.githubusercontent.com/29009733/70908359-5e4f1380-204e-11ea-9187-a2d385c9f300.JPG)LEDの表示を消す.
```sh
$ sudo ./illumi-packet -reset
```## LICENSE
麻生 航平 作『イルミパケット』はクリエイティブ・コモンズ 表示 4.0 国際 ライセンスで提供されています。
* 改変・再配布自由
* クレジット表示必須自サイトで使用例を紹介させていただく場合があります。
クレジット表示・自サイトでの紹介を希望されない場合は、お問い合わせください。## CONTACT
Twitter: [@souring001](https://twitter.com/souring001)
ILLUMI PACKET
Copyright (c) 2019, Kohei Aso