🌐 This page is also available in English. Read in English →

EgressView

Where Is Data Exiting? Map All Paths. — 家庭・SOHOのLAN内デバイスが「何と通信しているか」を把握。グラフマップ/統計情報で全体を見て、通信ログ/端末一覧で詳細調査。自動脅威検出とSlackアラート対応。内蔵 MCP サーバーで AWS Kiro・Anthropic Claude・Anysphere Cursor 等の AI アシスタントからネットワーク状況を自然言語で問い合わせ可能。

License: AGPL-3.0 Node.js 22+

v1.9.0

ルーターは「何が外へ出たか」を見せますが、「どのアプリが出したか」は見せません。v1.9.0はその穴を塞ぎます。Macで動くエージェントからの観測を受け取れるようになり、公証済みの.dmgで配布します。見覚えのない宛先が、接続したプログラムの名前とセットで届きます(メタデータのみ。通信内容は読みません)。端末がエージェントになるのは管理者が承認したときだけで、その通信も他と同じように脅威フィードと照合されます。あわせて、Web画面が数分間使えなくなる不具合を修正しました。検出ログでMacを選ぶと索引の無い相関クエリがイベントループを占有し、プロセスを再起動するまで504が返る状態でした。同じクエリは30秒超から約1.1秒になり、他の処理がループを占有した場合もwatchdogがプロセスを再起動します。1.8.0からの更新ではデータベース移行が走りますが、既存の履歴は保持されます。

🔒 家庭・SOHOのセキュリティ対策として

現代の家庭・SOHOネットワークには、スマートTV・IPカメラ・NAS・Wi-Fiスピーカー・IoT機器など20〜40台以上が接続されています。これらの多くはファームウェア更新が不定期で、どこに通信しているか把握されていません。一度侵害されると、C2サーバーへのデータ流出やボットネット加担が静かに進みます。

パッシブ・ゼロインパクト

ルーターのNATセッションテーブルをSSHで読み取るだけ。通信の中継・傍受なし、スループット低下なし、レイテンシ追加なし。

デバイス単位の可視性

どのIoT機器・PCがどこに通信しているかを把握。OUI・mDNS・SSDP・NetBIOS・Appleモデル辞書でデバイスを自動識別。

自動脅威検出

Feodo Tracker・ThreatFox・URLhaus・Spamhaus DROPとリアルタイムに全接続を照合。C2サーバー・ボットネット・マルウェア配布元を検出。

即時アラート

LAN内の任意のデバイスが既知の脅威に接続した瞬間にSlack DM通知。宛先ごとのクールダウン設定で通知スパムを防止。

ハードウェア変更不要

既存のYamaha RTX / Cisco IOSルーターと共存。Mac・PC・Raspberry Piにインストールするだけ。通信経路の変更なし。

完全ローカル・プライバシー重視

全処理はローカルで完結。通信データをクラウドに送信しません。エンリッチメント(GeoIP・RDAP・逆引DNS)は接続先IPのみ使用。

機能

全体把握 + ドリルダウン

グラフマップと統計情報でネットワーク全体を俯瞰し、通信ログと端末一覧でセッション・宛先・メモ・履歴へ掘り下げます。

モバイル監視ビュー

VPN・プライベートネットワーク内のスマートフォンから、ルーター状態、通信、端末、検出を確認。5つの画面を狭い表示幅でも操作できます。

Yamaha RTX 連携

Yamaha RTXルーターにSSH接続し、NATセッションテーブルを60秒ごとに取得。[INSPECT] syslog で短命 TCP セッションを補完。RTX1200〜RTX1300、RTX810/830対応。

Cisco IOS 正式対応

SSHでNATセッションを取得。Cisco単体またはYamaha/Cisco混在で最大10台に対応し、障害を分離して重複観測を統合します。

ASUS WiFi AP 対応

L2クライアント情報を取得 — WiFi帯域、信号強度、トラフィック量、AiMeshトポロジー。

スマートデバイス識別

OUI、mDNS/Bonjour、SSDP、NetBIOS、Appleモデル辞書(200機種以上、「iPhone 15 Pro」レベルまで特定)。

📡 DNS ベース宛先名解決

ローカルの dnsmasq クエリログを監視し、デバイスごとの DNS 解決結果(例: example.com)を宛先名に反映。PTR 逆引きより優先して表示。

IPエンリッチメント

全接続先に対して逆引きDNS、RDAP組織名検索、GeoIP(都市レベルの緯度経度)を自動付与。

接続履歴保存(SQLite)

接続履歴をSQLite(WALモード、クラッシュセーフ)で永続保存。保持期間は最大2年まで設定可能。時系列チャート・接続先別統計で分析。

🛡️ 脅威検出

Feodo Tracker、ThreatFox、URLhaus、Spamhaus DROP と全接続を自動突合。3段階の信頼度で推奨アクションを表示。

🔔 Slack通知

脅威検出時に Slack DM で即時通知。宛先ごとのクールダウン設定でスパムを防止。UI言語に連動して日本語/英語で送信。

📋 通信ログ

ソート・検索可能な全セッション一覧。カラム別フィルター(テキスト、正規表現、日付範囲)。脅威行クリックで詳細ポップアップ。アプリ列でポートと宛先ホスト名からサービス名を自動推測(APNs、FCM、AirPlay、QUIC、iCloud、YouTube、AWS、Slack、Zoom、Tuya Smart など)。

🔔 検出ログ

脅威検出・新規端末アラートの永続履歴。カラム別フィルター・ソート・クリック詳細ポップアップ付き。Slack設定の有無にかかわらず全検出を記録 — いつでも振り返り可能。

✦ AI洞察スタートページ

起動直後に収集状態・接続・端末・宛先・脅威と前期間比較を表示。AI未設定でも統計は利用でき、明示操作時だけOllama / Anthropic / OpenAI / Amazon Bedrockで分析・対話します。月次token・概算料金と回答ごとのモデル/料金も確認可能。既定OFFのイベント通知では、日次・週次レポートと上限付き脅威変化分析をUI履歴またはSlackへ送信できます。設定ガイド →

💻 macOSエージェント

ルーターは「何が外へ出たか」は見せますが、「どのアプリが出したか」は見せません。エージェントはMacの外向き接続をプロセス名つきで報告するため、見覚えのない宛先が「どのプログラムが接続したか」とセットで分かります。メタデータのみで通信内容は読まず、遮断もしません。端末がエージェントになるのは管理者が承認したときだけです。公証済み.dmgで配布。EgressView 1.9.0以降が必要です。導入ガイド →

🤖 AIエージェント連携(MCP)

Model Context Protocol サーバーを内蔵。通信サマリー・脅威接続・宛先ランキング・端末一覧・端末メモなど 11本のツールを AWS Kiro・Anthropic Claude・Anysphere Cursor 等の AI アシスタントに公開。stdio / HTTP 両対応。設定ガイド →

デモ

UI言語: 英語 / 日本語 切り替え可能

グラフマップと統計情報で、デバイス/宛先の偏り、セッション推移、通信量の多い端末をリアルタイムに俯瞰できます。

通信ログと端末一覧では、気になる宛先、通信の多い端末、ビーコン候補、メモ、端末履歴へドリルダウンできます。

スクリーンショット

EgressView AI洞察 — リアルタイム指標と生成AIの推奨アクション EgressView グラフマップ — LANデバイスと接続先の全体把握 EgressView 統計情報 — 接続履歴チャート EgressView 通信ログ — 詳細ドリルダウン EgressView 端末一覧 — 詳細ドリルダウン EgressView 検出ログ — 詳細ポップアップ

アーキテクチャ

┌─────────────────┐  SSH(NAT)   ┌──────────────────────┐  WebSocket   ┌──────────────────┐
│  Yamaha RTX     │◄───────────►│                      │◄────────────►│ ブラウザ          │
│  [INSPECT] log  │  syslog/UDP │   EgressView Server  │  MCP         ├──────────────────┤
│  [DHCPD] log    │────────────►│   (Node.js)          │◄────────────►│ AI アシスタント   │
└─────────────────┘             │                      │  stdio/HTTP  │(Kiro, Claude…)   │
┌─────────────────┐  SSH(NAT)   │  ポーラー:            │              └──────────────────┘
│  Cisco IOS      │◄───────────►│  • yamaha (SSH)      │
│  (正式対応)      │             │  • cisco (SSH)       │
└─────────────────┘             │  • asus (HTTP)       │
┌─────────────────┐  HTTP       │  • inspect-syslog    │
│  ASUS WiFi AP   │◄───────────►│  • dhcpd-syslog      │
│  (クライアント)   │             │  • dnsmasq-log       │
└─────────────────┘             │                      │
┌─────────────────┐  tail -F    │                      │
│  dnsmasq        │────────────►│                      │
│  クエリログ      │             └──────────┬───────────┘
└─────────────────┘                        │
                       ┌───────────────────┼───────────────┐
                       │                   │               │
                 ┌─────┴──────┐  ┌─────────┴───┐  ┌───────┴───┐
                 │エンリッチ   │  │ 脅威インテル  │  │  SQLite   │
                 │ • dnsmasq  │  │ • Feodo      │  │  履歴     │
                 │ • 逆引DNS  │  │ • ThreatFox  │  │  (WAL)    │
                 │ • RDAP     │  │ • URLhaus    │  └───────────┘
                 │ • GeoIP    │  │ • DROP       │
                 │ • OUI      │  └─────────────┘
                 │ • mDNS     │
                 └────────────┘

クイックスタート

Step 1 — 事前準備

Mac / PC / Raspberry Pi に Node.js 22以上をインストール nodejs.org →
Yamaha RTXまたはCisco IOSルーターを1台以上SSH有効化 Yamaha / Cisco →
(任意)ASUS WiFi AP の Web 管理画面を有効化 設定ガイド →
(任意)AI アシスタント連携(AWS Kiro・Anthropic Claude・Anysphere Cursor 等) 設定ガイド →

Step 2 — インストールと起動

git clone https://github.com/yo1t/egressview.git
cd egressview
npm install
npm start

Step 3 — ブラウザを開いてログイン

初回起動時、対話terminalでは初期ログインパスワードを一度だけ表示し、service起動ではmode 0600のone-time fileへ保存します:

══════════════════════════════════════
  EgressView login password (initial):
  KFpDqntYRfcr...
  → ブラウザ初回アクセス時にこのパスワードでログインしてください
══════════════════════════════════════

http://localhost:3000 を開いてパスワードを入力してください。

任意のGoogle OIDC、失効可能session、CSRF保護、global API rate limit、個人情報を伏せた監査logを設定 → 一般から利用できます。

ブラウザのロールは最小権限が既定です。ローカルログインは管理者、明示したGoogle emailは運用、domainだけの一致は閲覧のみになります。

Step 4 — 設定 → L3/L4で最大10台のルーターを追加

Yamaha RTX の IP ルーターの LAN 側 IP(例: 192.168.1.1
SSH ユーザー名 / パスワード Yamaha 設定ガイドで設定したもの
Cisco IOS の IP / ユーザー名 / パスワード Cisco 設定ガイドで設定したもの
ASUS AP の IP / パスワード AP の LAN 側 IP と管理者パスワード(ASUS 設定ガイド

Yamaha/Ciscoをルーターごとの名前付き行として追加し、接続して自動検出 を押してください。各ルーターを独立して収集し、同じ通信はすべての観測元を保持して1件に統合します。

数秒後にデバイス、セッション、統計情報がUIに表示されはじめます。

対応ハードウェア

Yamaha RTX(L3/L4)

RTX1200, RTX1210, RTX1220, RTX1300, RTX810, RTX830, NVR500, NVR510, NVR700W — SSH+NATディスクリプタ対応の全モデル。

Cisco IOS(L3/L4)

C841M-4X-JSEC/K9(IOS 15.5(3)M9)で実機検証済み。混在10台は自動試験済みですが、物理HAと実フェイルオーバーは未検証です。

ASUS WiFi AP(L2)

RT-AXシリーズ、RT-ACシリーズ、ZenWiFi(AiMesh) — 標準Web管理画面を持つ全モデル(APモード/AiMesh使用)。

Issues & フィードバック

バグ報告や機能リクエストはGitHubのIssueからお願いします。

全てのIssueを見る 新しいIssue

🔑 リリース署名

portable releaseにはarchiveのchecksumに対するEd25519署名が付きます。archiveに同梱される公開鍵だけでは信頼の起点になりません。下記のDNSレコードとfingerprintを比較してください。このページとSECURITY.mdはどちらもリポジトリから生成されるため、リポジトリが書き換われば一緒に変わります。別の認証情報で配信されるDNSレコードと一致することが、比較に意味を持たせます。

$ dig +short TXT _egressview-release.egressview.com

現在有効な署名鍵

key id egressview-release-2026 · Ed25519

SHA256:6288265bd746d230a3637e3a520e2335f48dc939a4d76d7b05c44ea5baf3eccc

全桁を比較してください。先頭や末尾の一致は一致ではありません。秘密鍵はAWS KMS内にあり取り出せません。検証にAWSは不要で、opensslと公開鍵だけで完結します。検証コマンドは配布ガイドを参照してください。