Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

macOS へのインストール

対応: macOS 12 以降。リリースバイナリはまだ公開していないため、ソースからビルドします。成果物は Web UI を組み込んだ単一の wpg 実行ファイルです。macOS は libpcap を標準で持つので、追加のライブラリは不要です。macOS で送信できるのは libpcap バックエンド (pcap feature) だけなので、scripts/build.sh (と just release) は macOS では自動でこれを組み込みます (--no-pcap で外せます)。リリースアーカイブにも含まれます。

1. 前提ソフトウェアを入れる

xcode-select --install                     # コンパイラとリンカ
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
brew install wireshark                     # 任意: tshark と ChmodBPF (下記)

git clone https://github.com/SeiyaFunaokaJP/web-packet-generator.git
cd web-packet-generator
./scripts/setup.sh                         # --just を付けるとタスクランナー just も入れる

scripts/setup.sh は rust-toolchain.toml で固定した Rust ツールチェーンと WASM ターゲット、scripts/versions.env で固定したバージョンのビルド済み trunk を入れます。

2. ビルドする

./scripts/build.sh --release        # または: just release

最後に ==> done: target/release/wpg と表示されます。

3. 権限なしで試す

./target/release/wpg doctor
./target/release/wpg template lint templates/examples/*.wpg.yaml
./target/release/wpg render templates/examples/arp-sweep.wpg.yaml -o /tmp/arp.pcapng

4. 送信を許可する

送信は /dev/bpf* を通ります。sudo で wpg を実行するか、デバイスをアクセス可能にします。Wireshark を ChmodBPF ヘルパー付きでインストールすると、access_bpf グループのメンバーに対してそれが行われます。お使いのマシンに合った案内は wpg doctor が表示します。権限設定 を参照してください。

5. サーバを起動する

./target/release/wpg serve

既定では 127.0.0.1:8080 で待ち受け、./templates のテンプレートを読み込みます。ブラウザで http://127.0.0.1:8080 を開き、初回ログイン に進んでください。

最初のフレームを送る

./target/release/wpg ifaces
sudo ./target/release/wpg send templates/examples/arp-sweep.wpg.yaml -i en0 --rate 1000pps

送信してよいのは、自分が所有する、または試験を許可されたネットワークだけです。続けて ARP スイープのチュートリアル に進んでください。

リリースバイナリ: Gatekeeper と quarantine

リリースアーカイブ (Apple シリコン用の wpg-<version>-aarch64-apple-darwin.tar.gz、Intel 用の ...-x86_64-apple-darwin.tar.gz) は署名も公証もしていません。ブラウザでダウンロードしたファイルには com.apple.quarantine 属性が付き、Gatekeeper が実行を拒否します (「Apple は悪質なソフトウェアかどうかを確認できないため、“wpg” を開けません」や「壊れているため開けません」と表示されます)。上の手順でソースからビルドすれば、この問題は起きません。

まずダウンロードしたファイルを確認し、展開したファイルから属性を外します。

shasum -a 256 -c wpg-0.2.0-aarch64-apple-darwin.tar.gz.sha256   # または SHA256SUMS と比べる
tar -xzf wpg-0.2.0-aarch64-apple-darwin.tar.gz
xattr -dr com.apple.quarantine wpg-0.2.0-aarch64-apple-darwin
./wpg-0.2.0-aarch64-apple-darwin/wpg --version

別の方法:

  • ブラウザではなく curl -LO でダウンロードします。curl は quarantine 属性を付けません。
  • 一度実行してから、システム設定 → プライバシーとセキュリティ で許可します (「このまま開く」)。次の起動時にもう一度確認され、以後は記憶されます。
  • Finder の近道 (Control キーを押しながらクリック → 開く) は macOS 15 で廃止され、コマンドラインツールにはもともと使えません。xattr かシステム設定を使ってください。

Gatekeeper 全体を無効にする (spctl --master-disable) ことはしないでください。新しくダウンロードしたファイルにはそのたびに属性が付くので、アップグレードのたびに外し直してください。起動時に wpg を動かす方法は サービスとして動かす を参照してください。