セキュリティ
PentAGIインストールにおける認証情報、HTTPS、サインイン、およびネットワーク公開の設定。
デフォルト値の変更
新規インストールでは、ローカル管理者[email protected]がパスワードadminで作成され、初回サインイン時に変更する必要があります。パスワードを紛失した場合、アカウントが引き続き[email protected]アドレスを使用している限り、インストーラーのメンテナンスメニューからリセットできます。
初回起動前に、.env内のこれらの値を設定してください(インストーラーによりソルトとパスワードが自動生成されます)。PostgreSQLとNeo4jはデータボリュームの作成時にのみ認証情報を読み込むため、後から変更すると接続が切断されます。
| 変数 | 用途 |
|---|---|
COOKIE_ | セッションCookieとAPIトークンの署名に使用 — ランダムな値を設定してください |
PENTAGI_, PENTAGI_ | PostgreSQLの資格情報 |
NEO4J_ | Knowledge graphknowledge graph — ナレッジグラフこのオプション機能を有効にした場合、テスト中に PentAGI が構築するホスト、サービス、脆弱性、およびそれらの間のアクセスのグラフです。発見事項の関連性を示します。用のNeo4jパスワード。NEO4J_はneo4jのままにしてください |
PUBLIC_ | ユーザーがアクセスするURL(例: https:/) |
稼働中のインストール環境では、まず PostgreSQL または Neo4j 内でデータベースのパスワードを変更し、その後 .env で変更してください。
HTTPS
PentAGIはポート8443で自己署名証明書を用いてHTTPSを提供します。独自の証明書を使用する場合は、SERVER_とSERVER_を設定し、docker-compose.ymlにファイルをマウントしてください。
ユーザーとサインイン
サインアップフォームはありません。管理者は、サインイン済みのブラウザセッションからUsers API(/)を通じてローカルユーザーを管理します(APIトークンでは403エラーとなります)。ロールによって各ユーザーが参照・変更できる範囲を制限します。ローカルユーザーは、Settings → Account で自身のメールアドレスとパスワードを変更できます。
GitHubまたはGoogleサインインを設定すると、プロバイダーで検証されたメールアドレスが既存のアカウント(ローカルアカウントを含む)と一致するログインはそのアカウントとそのロールでサインインし、その他のログインはデフォルトのユーザーロールで新しいアカウントを取得します。すべてのインストールには管理者 [email protected] が初期状態で存在するため、サインインを有効にする前に Settings → Account でこのアドレスを自分が管理するものに変更し、ドメイン限定のGoogle Workspaceアプリなど、新規アカウントの作成が許容できる環境でのみ有効にしてください。
GitHubおよびGoogleサインインはOAuth経由で利用できます。コールバック${PUBLIC_でアプリを登録し、その資格情報を追加してください。
PUBLIC_URL=https://pentagi.example.com
OAUTH_GITHUB_CLIENT_ID=your_github_client_id
OAUTH_GITHUB_CLIENT_SECRET=your_github_client_secretネットワークの露出
デフォルトでは、PentAGI の Web インターフェースは 127.0.0.1 でのみリッスンします。他のマシンからアクセスするには:
PENTAGI_LISTEN_IP=0.0.0.0
PENTAGI_LISTEN_PORT=8443
PUBLIC_URL=https://192.168.1.100:8443
CORS_ORIGINS=https://localhost:8443,https://192.168.1.100:8443PUBLIC_とCORS_には実際のアドレスを使用し、0.0.0.0は絶対に使用しないでください。docker compose up -d --force-recreateでコンテナを再作成し、ファイアウォールでポート8443を開放してください。
リバースプロキシの背後で運用する場合は、TRUSTED_ にプロキシのアドレスまたは CIDR をカンマ区切りで設定してください。そうしないと、すべてのリクエストがプロキシから送信されているように見なされ、アドレスあたりのサインイン制限(5分間に30回の失敗した試行で、その後15分間のロックアウト)が全ユーザーで共有されてしまいます。
各flowflow — フローPentAGI の1回のフロー:目標、メッセージから作成されたタスク、およびエージェントが実行したすべての作業。のsandboxsandbox — サンドボックスエージェントがツールを実行するための隔離された Docker コンテナです。インターフェースでは Terminal として表示されます。コンテナは、リバースシェルなどの帯域外コールバックのために2つのポートを公開します。これらはDOCKER_から始まる2000個のポート(デフォルト28000)から割り当てられ、agentagent — エージェントPentAGI の AI エージェント: 独自のプロンプト、設定、ツールを持ち、フロー内でテスト、コード作成、ウェブ検索など特定の種類の作業を行うモデルです。がターゲットにコールバック先として指示するアドレスであるDOCKER_にバインドされます。
デフォルトでは DOCKER_ は 0.0.0.0 です。ポートは Docker ホストのすべてのインターフェースでリッスンし、agent はパブリックアドレスを自身で解決します。ホストがそのアドレスを所有しており、ターゲットから到達可能な場合にのみ、特定のアドレスに設定してください。NAT の背後では、デフォルトのままにしてください。Docker が公開するポートはホスト上の ufw や firewalld のルールをバイパスするため、クラウドのセキュリティグループなどホストの前面にあるファイアウォールで範囲を制限するか、Docker の DOCKER-USER チェーンのルールで制限してください。
PROXY_ は、バックエンドからモデルプロバイダー、埋め込みプロバイダー、検索 API、および更新チェックへの呼び出しをプロキシ経由でルーティングし、インストール環境を外部ネットワークから隔離するのに役立ちます。Ollama、vLLM、SearXNG などのセルフホスト型エンドポイントもこれを経由します。NO_ の例外はないため、プロキシはそれらに到達できる必要があります。agent がコマンドを実行する flow の sandbox コンテナ、ブラウザツールのためにウェブページを開くスクレイパー、および Graphiti サービスはこれを使用しないため、ネットワークレベルでそれらの外向きトラフィックを制限してください。GitHub または Google でのサインイン、およびバンドルされたスタック外の Langfuse や OpenTelemetry エンドポイントへの呼び出しもこれを使用しません。また、Docker デーモンは独自のプロキシ設定を使用してイメージをプルします。
更新チェック
サーバーは起動後2分以内、その後3時間ごとに update.pentagi.com に新しいビルドが利用可能かどうかを問い合わせます。リクエストにはインストールID、設定されている場合はライセンスキー、バージョンとプラットフォーム、およびインストールの概要(設定された provider とサインインの種類、いくつかの機能スイッチ、ユーザー、flow、tasktask — タスクフロー内の1つのリクエスト:最初のメッセージ、またはエージェントの質問への回答ではない後続のメッセージ。PentAGI は各タスクをサブタスクに分割します。、コンテナ、プロンプト、APIトークン、tool calltool call — ツール呼び出しターミナルコマンドやウェブ検索など、エージェントのツールの1つを実行するためのモデルからのリクエスト。 の数、および provider 種類ごとのトークンとコストの合計)が含まれますが、名前、住所、プロンプトや flow の内容は含まれません。UPDATE_ でこれを無効にします。インストーラーは起動するたび、および Apply Changes、Update、Start、Stop などの各アクションを実行するたびに、インストールされたイメージと各スタックの状態を送信し、PentAGI が実行中は同じ概要も送信します。UPDATE_ はこれに影響しません。
pentagiコンテナはDockerソケットを通じてコンテナを管理するため、root権限で実行されます。より強力な分離が必要な場合は、toolstool — ツールエージェントが作業に使うもの。ターミナル、分離されたブラウザー、ウェブ検索などの組み込み機能や、nmap、metasploit、sqlmap などサンドボックス内のプログラムです。を別のworker nodeで実行してください。
最終更新日