サイトを作成
サイトはドメインをオリジンプール、ルート、有効化した防御に結び付けます。
サイトモデルクイックスタート
公式の 2 つの道筋。評価には同梱の compose、本番には自前ビルド。
compose なら Docker だけで十分です。ソースからビルドする場合は Rust、Node、protoc が必要です。
Docker
Engine 24+ と Compose v2
コントロールプレーン、エージェント、PostgreSQL をまとめて起動します。
PostgreSQL
14+(16 推奨)
サイト、ルール、バージョンを保存します。
ポート
9080 · 9090 · 80 · 443
9080 が API とコンソール、9090 が gRPC です。
TLS
初回起動時は自己署名
コンソールを公開する前に置き換えるか信頼してください。
クイックスタート
compose は all-in-one モードで PingWAF を PostgreSQL と一緒に起動します。
compose とサンプル TOML はリポジトリ直下にあります。
git clone https://github.com/shuaiZend/PingWAF.git
cd PingWAF 外部から到達できるホストでは JWT_SECRET と ADMIN_PASSWORD を先に設定します。
export JWT_SECRET="$(openssl rand -hex 32)"
export ADMIN_PASSWORD="$(openssl rand -hex 16)"
docker compose up -d 初回起動で生成した自己署名証明書で HTTPS を提供するため、信頼するか独自証明書をアップロードするまでブラウザは警告します。
curl --connect-timeout 2 --max-time 3 http://localhost:9080/healthz
# {"status":"ok","database":"up"} エージェントに向けるドメインでサイトを作成し、そのサイトに必要な防御だけを有効にします。
クイックスタート
独自ビルドや監査可能なバイナリが必要な場合の道筋です。
protoc は必須です。無い場合 proto クレートがプレースホルダに退避し、後続のクレートがビルドできません。
# macOS
brew install protobuf
# Debian / Ubuntu
sudo apt install protobuf-compiler cmake コンソールはバイナリに埋め込まれるため先にビルドします。
cd web && npm ci && npm run build && cd .. full フィーチャーには WAF エンジン、チャレンジ、証明書自動化が含まれます。
cargo build --release --bin pingwaf --features full PostgreSQL を指定します。スキーマは初回起動時に作成されます。
./target/release/pingwaf all-in-one \
--db-url "postgres://pingwaf:pingwaf@localhost:5432/pingwaf" コントロールプレーンは初回起動時に管理者を作成し、コンソールはパスワード変更を強制します。
defaults.env
公開前に既定値を必ず変更
PINGWAF_JWT_SECRET と PINGWAF_ADMIN_PASSWORD には動作する既定値があります。両方を設定し、PINGWAF_ALLOW_REGISTRATION を false にし、9080 は社内ネットワークか VPN 内に留めてください。export PINGWAF_JWT_SECRET="$(openssl rand -hex 32)"
export PINGWAF_ADMIN_PASSWORD="$(openssl rand -hex 16)"
export PINGWAF_ALLOW_REGISTRATION=false コントロールプレーンが応答すれば、あとは設定だけです。
protoc がありません。protobuf-compiler(または brew install protobuf)を導入して再ビルドしてください。無い場合はプレースホルダに退避します。
コンソールは自己署名証明書で HTTPS を提供します。ダウンロードした証明書を信頼するか、設定 → コントロールプレーン HTTPS で独自証明書をアップロードしてください。PINGWAF_TLS_SANS で実際のホスト名を指定します。
:9090 の gRPC に到達できるか(PINGWAF_SERVER_URL)、ファイアウォールや TLS 終端プロキシに遮られていないかを確認してください。
443 は証明書の発行またはアップロード後に開きます。それまではエージェントは 80 番の HTTP のみ提供します。
デプロイとアーキテクチャのドキュメントで、systemd、分散構成、設定の優先順位、環境変数の全一覧を説明しています。