Seguridad
Credenciales, HTTPS, inicio de sesión y exposición de red de una instalación de PentAGI.
Cambiar los valores predeterminados
Una instalación nueva crea el administrador local [email protected] con la contraseña admin, que debes cambiar en el primer inicio de sesión. Si pierdes la contraseña, el menú de mantenimiento del instalador la restablece siempre que la cuenta siga usando la dirección [email protected].
Configura estos valores en .env antes del primer inicio; el instalador genera la sal y las contraseñas por ti. PostgreSQL y Neo4j toman sus credenciales solo cuando crean sus volúmenes de datos, así que cambiarlos después rompe la conexión:
| Variable | Propósito |
|---|---|
COOKIE_ | Firma las cookies de sesión y los tokens de API — establece un valor aleatorio |
PENTAGI_, PENTAGI_ | Credenciales de PostgreSQL |
NEO4J_ | Contraseña de Neo4j para el knowledge graphknowledge graph — grafo de conocimientoEl grafo de hosts, servicios, vulnerabilidades y el acceso entre ellos que PentAGI construye durante un test cuando esta función opcional está activada. Muestra cómo se conectan los hallazgos.; NEO4J_ debe permanecer neo4j |
PUBLIC_ | La URL que abren los usuarios, por ejemplo https:/ |
En una instalación en ejecución, cambia primero la contraseña de la base de datos dentro de PostgreSQL o Neo4j y luego en .env.
HTTPS
PentAGI sirve HTTPS en el puerto 8443 con un certificado autofirmado. Para usar el tuyo propio, configura SERVER_ y SERVER_ y monta los archivos en docker-compose.yml.
Usuarios e inicio de sesión
No hay formulario de registro. Los administradores gestionan los usuarios locales a través de la API de Usuarios (/) desde una sesión de navegador con sesión iniciada — un token de API obtiene un 403 allí — y los roles restringen lo que cada usuario puede ver y cambiar. Los usuarios locales cambian su propio correo electrónico y contraseña en Settings → Account.
Con el inicio de sesión mediante GitHub o Google configurado, un inicio de sesión cuyo correo electrónico verificado por el proveedor coincida con una cuenta existente, incluidas las cuentas locales, inicia sesión en esa cuenta con su rol; cualquier otro inicio de sesión obtiene una nueva cuenta con el rol de usuario predeterminado. Cada instalación comienza con el administrador [email protected], así que cámbialo a una dirección que controles bajo Settings → Account antes de habilitar el inicio de sesión, y habilítalo solo donde las nuevas cuentas sean aceptables, por ejemplo con una aplicación de Google Workspace limitada a tu dominio.
El inicio de sesión mediante GitHub y Google está disponible a través de OAuth. Registra una aplicación con la devolución de llamada ${PUBLIC_ y añade sus credenciales:
PUBLIC_URL=https://pentagi.example.com
OAUTH_GITHUB_CLIENT_ID=your_github_client_id
OAUTH_GITHUB_CLIENT_SECRET=your_github_client_secretExposición de red
Por defecto, la interfaz web de PentAGI escucha solo en 127.0.0.1. Para acceder a ella desde otras máquinas:
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:8443Usa la dirección real en PUBLIC_ y CORS_, nunca 0.0.0.0. Recrea los contenedores con docker compose up -d --force-recreate y abre el puerto 8443 en el firewall.
Detrás de un proxy inverso, establece TRUSTED_ con la dirección o CIDR del proxy, separados por comas. De lo contrario, todas las solicitudes parecen provenir del proxy y el límite de inicio de sesión por dirección —30 intentos fallidos en cinco minutos, seguido de un bloqueo de 15 minutos— es compartido por todos los usuarios.
El contenedor sandboxsandboxEl contenedor Docker aislado en el que los agentes ejecutan sus herramientas. La interfaz lo muestra como Terminal. de cada flowflow — flujoUna ejecución de PentAGI: un objetivo, las tareas creadas a partir de tus mensajes y todo lo que hicieron los agentes en el proceso. también publica dos puertos para callbacks fuera de banda, como reverse shells. Proceden de los 2000 puertos que comienzan en DOCKER_ (por defecto 28000) y están vinculados a DOCKER_, la dirección que los agentsagent — agenteUn agente de IA de PentAGI: un modelo con su propio prompt, configuración y herramientas que realiza un tipo de trabajo en un flujo, como probar, escribir código o buscar en la web. también indican a los targets para realizar el callback.
Por defecto DOCKER_ es 0.0.0.0: los puertos escuchan en todas las interfaces del host de Docker, y los agents buscan su dirección pública por sí mismos. Configúralo con una dirección específica solo si el host posee esa dirección y los targets pueden alcanzarla; detrás de NAT, mantén el valor por defecto. Los puertos que Docker publica omiten las reglas de ufw y firewalld en el host, así que restringe el rango con un firewall delante del host, como un grupo de seguridad en la nube, o con reglas en la cadena DOCKER-USER de Docker.
PROXY_ enruta las llamadas del backend a los proveedores de modelos, el proveedor de embeddings, las APIs de búsqueda y la comprobación de actualizaciones a través de un proxy, lo que ayuda a aislar la instalación de las redes externas. Los endpoints autoalojados como Ollama, vLLM o SearXNG también pasan por él, ya que no hay una excepción NO_, así que el proxy debe poder alcanzarlos. Los contenedores sandbox de los flows, donde los agents ejecutan sus comandos, el scraper, que abre páginas web para la herramienta del navegador, y el servicio Graphiti no lo utilizan, así que restringe su tráfico saliente a nivel de red. El inicio de sesión con GitHub o Google y las llamadas a un endpoint de Langfuse u OpenTelemetry fuera de los stacks incluidos tampoco lo usan, y el demonio Docker descarga las imágenes con su propia configuración de proxy.
Comprobación de actualizaciones
A los dos minutos de arrancar y luego cada tres horas, el servidor pregunta a update.pentagi.com si hay una compilación más reciente disponible. La petición lleva el ID de instalación, la clave de licencia si está configurada, la versión y la plataforma, y un resumen de la instalación: el provider configurado y los tipos de inicio de sesión, algunos interruptores de funciones, recuentos de usuarios, flows, taskstask — tareaUna solicitud en un flujo: su primer mensaje, o un mensaje posterior que no responde a una pregunta de un agente. PentAGI divide cada tarea en subtareas., contenedores, prompts, tokens de API y tool callstool call — llamada a herramientasUna solicitud del modelo para ejecutar una de las herramientas del agente, como un comando de terminal o una búsqueda web., y totales de tokens y costes por tipo de provider — sin nombres, direcciones, prompts ni contenido de flows. UPDATE_ lo desactiva. Cada vez que el instalador se inicia y después de cada acción que ejecuta, como Apply Changes, Update, Start o Stop, envía las imágenes instaladas y el estado de cada stack, además del mismo resumen mientras PentAGI está en ejecución; UPDATE_ no le afecta.
El contenedor pentagi se ejecuta como root porque gestiona contenedores a través del socket de Docker. Para un aislamiento más fuerte, ejecuta las toolstool — herramientaAquello con lo que actúa un agente: una capacidad integrada como el terminal, el navegador aislado o la búsqueda web, o un programa en el sandbox como nmap, metasploit o sqlmap. en un worker node separado.
Última actualización el