Безопасность
Учётные данные, HTTPS, вход в систему и сетевая доступность установки PentAGI.
Изменение настроек по умолчанию
При новой установке создаётся локальный администратор [email protected] с паролем admin, который необходимо изменить при первом входе. Если пароль утерян, его можно сбросить через меню обслуживания установщика, пока для учётной записи используется адрес [email protected].
Укажите эти значения в .env перед первым запуском; установщик генерирует для вас соль и пароли. PostgreSQL и Neo4j принимают учётные данные только при создании томов данных, поэтому их последующее изменение нарушит подключение:
| Переменная | Назначение |
|---|---|
COOKIE_ | Подпись сессионных cookie и API-токенов — задайте случайное значение |
PENTAGI_, PENTAGI_ | Учётные данные PostgreSQL |
NEO4J_ | Пароль Neo4j для knowledge graphknowledge graph — граф знанийГраф хостов, сервисов, уязвимостей и доступа между ними, который PentAGI строит во время теста при включении этой опциональной функции. Он показывает связи между находками.; NEO4J_ должен оставаться neo4j |
PUBLIC_ | URL, по которому пользователи открывают систему, например https:/ |
На работающей установке сначала измените пароль базы данных внутри PostgreSQL или Neo4j, а затем в .env.
HTTPS
PentAGI предоставляет HTTPS на порту 8443 с самоподписанным сертификатом. Чтобы использовать собственный сертификат, задайте SERVER_ и SERVER_ и смонтируйте файлы в docker-compose.yml.
Пользователи и аутентификация
Форма самостоятельной регистрации отсутствует. Администраторы управляют локальными пользователями через Users API (/) из авторизованной сессии браузера — API-токен там получает ошибку 403, — а роли ограничивают доступ каждого пользователя к просмотру и изменению данных. Локальные пользователи могут изменить свой адрес электронной почты и пароль в разделе Settings → Account.
При настроенной аутентификации через GitHub или Google вход с адресом электронной почты, подтверждённым провайдером и совпадающим с существующей учётной записью (включая локальные), выполняется в эту учётную запись с её ролью; любой другой вход создаёт новую учётную запись с ролью пользователя по умолчанию. Каждая установка начинается с администратора [email protected], поэтому перед включением аутентификации перенесите её на адрес, который вы контролируете, в разделе Settings → Account, и включайте эту возможность только там, где создание новых учётных записей допустимо, например при использовании приложения Google Workspace, ограниченного вашим доменом.
Аутентификация через GitHub и Google доступна по протоколу OAuth. Зарегистрируйте приложение с callback-адресом ${PUBLIC_ и добавьте его учётные данные:
PUBLIC_URL=https://pentagi.example.com
OAUTH_GITHUB_CLIENT_ID=your_github_client_id
OAUTH_GITHUB_CLIENT_SECRET=your_github_client_secretСетевая экспозиция
По умолчанию веб-интерфейс PentAGI прослушивает только 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:8443В PUBLIC_ и CORS_ указывайте реальный адрес, никогда не используйте 0.0.0.0. Пересоздайте контейнеры командой docker compose up -d --force-recreate и откройте порт 8443 в межсетевом экране.
За обратным прокси-сервером установите TRUSTED_ в адрес или CIDR прокси-сервера, разделив значения запятыми. В противном случае каждый запрос будет выглядеть так, как будто он исходит от прокси-сервера, и лимит попыток входа на один адрес — 30 неудачных попыток за пять минут, после чего следует блокировка на 15 минут — будет общим для всех пользователей.
Контейнер sandboxsandbox — песочницаИзолированный Docker-контейнер, в котором агенты запускают свои инструменты. В интерфейсе он отображается как Terminal. каждого flowflow — флоуОдин запуск PentAGI: цель, задачи, созданные на основе ваших сообщений, и все действия агентов в процессе. также открывает два порта для обратных вызовов вне канала, таких как reverse shells. Они берутся из 2000 портов, начиная с DOCKER_ (по умолчанию 28000), и привязываются к DOCKER_ — адресу, который agentsagent — агентАгент ИИ PentAGI: модель с собственным промптом, настройками и инструментами, выполняющая один вид работы в рамках флоу, например тестирование, написание кода или поиск в интернете. также предоставляют целям для обратного вызова.
По умолчанию DOCKER_ имеет значение 0.0.0.0: порты прослушиваются на всех интерфейсах хоста Docker, и agents самостоятельно определяют свой публичный адрес. Указывайте конкретный адрес только в том случае, если он принадлежит хосту и цели тестирования могут его достичь; за NAT оставьте значение по умолчанию. Порты, публикуемые Docker, обходят правила ufw и firewalld на хосте, поэтому ограничьте диапазон с помощью межсетевого экрана перед хостом, например группы безопасности облачного провайдера, или с помощью правил в цепочке DOCKER-USER Docker.
PROXY_ направляет вызовы бэкенда к провайдерам моделей, провайдеру эмбеддингов, API поиска и проверку обновлений через прокси, что помогает изолировать установку от внешних сетей. Саморазвёрнутые конечные точки, такие как Ollama, vLLM или SearXNG, также проходят через него, поскольку исключений для NO_ нет, поэтому прокси должен иметь возможность достигать их. Sandbox-контейнеры flow, в которых agents выполняют свои команды, скрапер, открывающий веб-страницы для инструмента браузера, и сервис Graphiti не используют его, поэтому ограничьте их исходящий трафик на сетевом уровне. Вход через GitHub или Google и вызовы к конечным точкам Langfuse или OpenTelemetry за пределами поставляемых стеков также не используют его, а демон Docker загружает образы с использованием собственных настроек прокси.
Проверка обновлений
В течение двух минут после запуска и затем каждые три часа сервер спрашивает update.pentagi.com, доступна ли более новая сборка. Запрос содержит идентификатор установки, ключ лицензии (если он задан), версию и платформу, а также сводку по установке: настроенные provider и типы входа, несколько переключателей функций, количество пользователей, flows, taskstask — задачаОдин запрос в рамках флоу: первое сообщение или последующее сообщение, не являющееся ответом на вопрос агента. PentAGI разделяет каждую задачу на подзадачи., контейнеров, промптов, токенов API и tool callstool call — вызов инструментаЗапрос модели на выполнение одного из инструментов агента, например команды терминала или веб-поиска., а также общие суммы токенов и затрат по каждому типу provider — без имён, адресов, промптов или содержимого flow. UPDATE_ отключает эту функцию. При каждом запуске установщика и после каждого выполняемого им действия, такого как Apply Changes, Update, Start или Stop, он отправляет установленные образы и состояние каждого стека, а также ту же сводку, пока PentAGI работает; UPDATE_ на это не влияет.
Контейнер pentagi работает от имени root, поскольку управляет контейнерами через сокет Docker. Для более строгой изоляции запустите toolstool — инструментТо, через что действует агент: встроенная возможность вроде терминала, изолированного браузера или веб-поиска либо программа в песочнице, например nmap, metasploit или sqlmap. на отдельном worker node.
Последнее обновление: