Web攻撃モニターです。nginx / Caddy / アプリの隣に配置し、アクセスログを追尾して、サイトがプローブまたは悪用されているときに通知します。このプロセスが停止しても、サイトは稼働し続けます。
Wazuh でも OSSEC でも WAF でもありません。
コマンドは gpewebdefender です。ホスト、トークン、マップのピン、GeoIP、ログパスはフラグまたはenvファイルで指定します。特定の企業やサーバーに関する情報は一切コンパイルされません。
これを実行したことがない場合: このファイルを最初から最後まで一度読み、その後、方法Aまたは方法Bを行ってください。「構成を選ぶ」を飛ばさないでください。
全体像: 稼働中のマネージャーで dochub/index.html または /docs/ を参照してください。03 · Install & run から始めてください。
実際の運用ボックスでのライブダッシュボードです。名前とピンは、設定した内容に従って表示されます。
ショットはアラート発生時のみ発射されます — 攻撃元の国から攻撃されたホストへ — その後は消えます。ホストはマップ上に残ります。フィードは同じイベントに番号を付けたものです。

行をクリックすると、国プレート、攻撃タイプのマーク、攻撃されたサーバーに加え、通常のフィールド(ルール、MITRE、エビデンス)が表示されます。常設の軌跡はありません。

レポート → インサイト。同じアラートを分析したものです。1h / 24h / 7d は実際の時計に基づきます。バーまたはホストカードをクリックして検索します。CSV / JSON / コピー でそのウィンドウをエクスポートします(セッションCookieを使用し、ファイル内にインジェストトークンは含まれません)。





マネージャー上のFTS5。キーワード、IP、ホスト、種類で検索できます。新しい順(クリックで日時を反転)。Elasticsearch は不要です。


| あなたの環境 | インストール |
|---|---|
| ノートPCと好奇心 | gpewebdefender demo — 偽の攻撃。あなたのサイトは対象外 |
| アクセスログをすでに出力しているLinuxボックスが1台 | All-in-one — マネージャーがそのログを追跡。エージェント不要 |
| 小さな追加ボックス + 1台以上のWebサーバー | Split — マネージャーは追加ボックスに、Web(またはSSH)ホストごとに1つのエージェント |
ポート8787をインターネットに公開しないでください。デフォルトの待受は 127.0.0.1:8787 です。HTTPS + ログインを前面に配置するまではSSHトンネルを使用してください。
go build -o gpewebdefender.exe .\cmd\gpewebdefender
gpewebdefender.exe demo
Linux:
go build -o gpewebdefender ./cmd/gpewebdefender
./gpewebdefender demo
http://127.0.0.1:8787 を開く
マップのスクリーンショットは架空のものです。ダッシュボードを実際のものとして扱う前に DocHub 04 を参照してください。
このリポジトリから、rootとして実行します。Windowsの場合は、先にLinuxバイナリをビルドしてください:
$env:GOOS="linux"; $env:GOARCH="amd64"; $env:CGO_ENABLED="0"
go build -o gpewebdefender-linux-amd64 .\cmd\gpewebdefender
All-in-one(このボックスにアクセスログがある場合):
chmod +x deploy/install-manager.sh deploy/install-agent.sh
sudo ./deploy/install-manager.sh --all-in-one \
--tail /var/log/nginx/access.log \
--journal \
--home 40.7,-74.0
Split(最初にモニター、次に各Webボックス):
# on the monitor
sudo ./deploy/install-manager.sh --home 40.7,-74.0
# on a web / SSH box
scp root@MONITOR:/usr/local/bin/gpewebdefender /usr/local/bin/gpewebdefender
scp root@MONITOR:/etc/gpewebdefender/env /etc/gpewebdefender/env
sudo ./deploy/install-agent.sh \
--url http://MONITOR:8787 \
--name web-1 \
--tail /var/log/nginx/access.log \
--journal
MONITOR、web-1、ログパスをあなたの値に置き換えてください。
次に、ノートPCから:
ssh -L 8787:127.0.0.1:8787 user@THEBOX
http://127.0.0.1:8787/login を開き、最初の admin(人物)を作成してください。これはインジェストトークンではありません。
/usr/local/bin/gpewebdefender にコピーし、chmod +x を実行します。useradd --system --home /var/lib/gpewebdefender --shell /usr/sbin/nologin gpewebdefenderrules/ と dochub/ を /var/lib/gpewebdefender/ にコピーします。deploy/env.example を /etc/gpewebdefender/env にコピーします。長いランダムな GWD_TOKEN を設定します。モードは 640。deploy/gpewebdefender.service.example をsystemdにコピーします。必要に応じて home / tail を編集します。systemctl daemon-reload && systemctl enable --now gpewebdefender例は deploy/ にあります。
/login → 最初のadminを作成します。または SIEM_ADMIN_USER + SIEM_ADMIN_PASSWORD を一度設定し、その後パスワードの行を削除します。US または 40.7,-74.0)。--name のエージェントごとに1行を設定します。.mmdb を配置し、--geoip を指定します。deploy/nginx-gwd.conf.example。パブリックvhostで /api/ingest を拒否します。DocHub 15 と 18 を参照。/api/ingest にJSONをPOSTします。パスワードは絶対に送信しないでください。DocHub 19 を参照。UIが空の場合: デモモードではなく、まだ --tail またはエージェントから1行も送信されていません。journalctl -u gpewebdefender -n 50 を確認してください。
アクセスログに現れるあらゆるものを監視します:
.env、.git、phpMyAdmin、wp-login、actuator)--journal または auth.log によるsshd / sudokind=applogin / tenantlogin / secprobe をPOSTPOSTボディは、ログに記録しない限り確認できません(通常は記録すべきではありません)。
nginx / Apache のcombined形式、またはnginx / Caddy / Traefik のJSON形式。JSONへの切り替えをお勧めします。DocHub 05 を参照してください。
rules/ に組み込みのYAMLがあります。追加ファイル: --rules path/to/more.yaml。任意のCMSハニーポット: --rules packs(packs/cms.yaml を読み込み)。プラグインスキャナではありません。
静的Goバイナリ1つ + SQLite。専用 2 CPU / 2 GB のボックスで十分です。JVM、OpenSearch、Elasticsearch は不要です。
このツリーが公開製品です。インベントリ、トークン、ホスト名は含まれていません。
go test ./...
set GOOS=linux
set GOARCH=amd64
set CGO_ENABLED=0
go build -o gpewebdefender-linux-amd64 .\cmd\gpewebdefender
稼働中のフリート設定はこのリポジトリに含めないでください。
--name--tail--journaldeploy/gpewebdefender-agent.service.example