보안
PentAGI 설치의 자격 증명, HTTPS, 로그인 및 네트워크 노출 범위입니다.
기본값 변경
새로 설치하면 비밀번호가 admin인 로컬 관리자 [email protected]가 생성되며, 첫 로그인 시 반드시 변경해야 합니다. 비밀번호를 분실한 경우, 해당 계정이 여전히 [email protected] 주소를 사용하고 있다면 설치 프로그램의 유지보수 메뉴에서 재설정할 수 있습니다.
첫 시작 전에 .env에서 이 값들을 설정하세요. 설치 프로그램이 salt와 비밀번호를 자동으로 생성해 줍니다. PostgreSQL과 Neo4j는 데이터 볼륨을 생성할 때만 자격 증명을 적용하므로, 나중에 변경하면 연결이 끊어집니다:
| 변수 | 용도 |
|---|---|
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 웹 인터페이스는 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의 한 번 실행: 목표, 사용자의 메시지에서 생성된 작업, 그리고 에이전트들이 수행한 모든 활동을 포함합니다.의 sandboxsandbox — 샌드박스에이전트가 도구를 실행하는 격리된 Docker 컨테이너입니다. 인터페이스에서는 Terminal로 표시됩니다. 컨테이너는 리버스 셸과 같은 대역 외 콜백을 위해 두 개의 포트를 추가로 게시합니다. 이 포트들은 DOCKER_(기본값 28000)에서 시작하는 2000개의 포트 범위에서 할당되며, agentagent — 에이전트PentAGI의 AI 에이전트: 고유한 프롬프트, 설정 및 도구를 갖추고 모의해킹, 코드 작성 또는 웹 검색과 같은 특정 작업을 수행하는 모델입니다.가 대상에게 콜백 주소로 지정하는 DOCKER_에 바인딩됩니다.
기본적으로 DOCKER_은 0.0.0.0입니다: 포트는 Docker 호스트의 모든 인터페이스에서 수신하며, agent들은 자신의 공개 주소를 직접 조회합니다. 호스트가 해당 주소를 소유하고 대상이 이에 도달할 수 있는 경우에만 특정 주소로 설정하십시오; NAT 뒤에서는 기본값을 유지하십시오. Docker가 게시하는 포트는 호스트의 ufw 및 firewalld 규칙을 우회하므로, 클라우드 보안 그룹과 같은 호스트 앞단의 방화벽이나 Docker의 DOCKER-USER 체인 규칙으로 범위를 제한하십시오.
PROXY_은 모델 provider, 임베딩 provider, 검색 API 및 업데이트 확인에 대한 백엔드 호출을 프록시를 통해 라우팅하여 설치를 외부 네트워크로부터 격리하는 데 도움이 됩니다. Ollama, vLLM 또는 SearXNG와 같은 자체 호스팅 엔드포인트도 NO_ 예외가 없으므로 이를 통과하므로, 프록시가 이들에 도달할 수 있어야 합니다. agent가 명령을 실행하는 flow의 sandbox 컨테이너, 브라우저 도구를 위해 웹 페이지를 여는 스크레이퍼, 그리고 Graphiti 서비스는 이를 사용하지 않으므로 네트워크 수준에서 아웃바운드 트래픽을 제한하십시오. GitHub 또는 Google을 통한 로그인과 번들된 스택 외부의 Langfuse 또는 OpenTelemetry 엔드포인트에 대한 호출도 이를 사용하지 않으며, Docker 데몬은 자체 프록시 설정으로 이미지를 가져옵니다.
업데이트 확인
서버는 시작 후 2분 이내에, 그리고 이후 매 3시간마다 update.pentagi.com에 더 새로운 빌드가 있는지 확인합니다. 요청에는 설치 ID, 설정된 경우 라이선스 키, 버전 및 플랫폼, 그리고 설치 요약 정보가 포함됩니다: 구성된 provider와 로그인 유형, 몇 가지 기능 스위치, 사용자, flow, tasktask — 작업플로우 내의 하나의 요청: 첫 번째 메시지이거나 에이전트의 질문에 답하지 않는 이후의 메시지입니다. PentAGI는 각 작업을 하위 작업으로 분할합니다., 컨테이너, 프롬프트, API 토큰 및 tool calltool call — 도구 호출터미널 명령이나 웹 검색과 같은 에이전트의 도구를 실행하도록 모델이 보내는 요청입니다.의 수, 그리고 provider 유형별 토큰 및 비용 총계 — 이름, 주소, 프롬프트 또는 flow 콘텐츠는 포함되지 않습니다. UPDATE_은 이를 비활성화합니다. 인스톨러는 시작할 때마다 그리고 Apply Changes, Update, Start 또는 Stop과 같은 각 작업을 실행한 후에 설치된 이미지와 각 스택의 상태를 전송하며, PentAGI가 실행 중일 때는 동일한 요약 정보도 함께 전송합니다; UPDATE_은 이에 영향을 주지 않습니다.
pentagi 컨테이너는 Docker 소켓을 통해 컨테이너를 관리하므로 root 권한으로 실행됩니다. 더 강력한 격리를 위해서는 별도의 worker node에서 toolstool — 도구에이전트가 작업에 사용하는 수단입니다. 터미널, 격리된 브라우저, 웹 검색 같은 내장 기능이나 nmap, metasploit, sqlmap 같은 샌드박스 안의 프로그램입니다.를 실행하세요.
최종 업데이트: