Bezpieczeństwo
Poświadczenia, HTTPS, logowanie i ekspozycja sieciowa instalacji PentAGI.
Zmień ustawienia domyślne
Świeża instalacja tworzy lokalnego administratora [email protected] z hasłem admin, które należy zmienić przy pierwszym logowaniu. Jeśli hasło zostanie utracone, menu serwisowe instalatora zresetuje je, pod warunkiem że konto nadal używa adresu [email protected].
Ustaw te wartości w .env przed pierwszym uruchomieniem; instalator generuje za Ciebie sól i hasła. PostgreSQL i Neo4j pobierają swoje dane uwierzytelniające tylko podczas tworzenia woluminów danych, więc późniejsza ich zmiana zrywa połączenie:
| Zmienna | Przeznaczenie |
|---|---|
COOKIE_ | Podpisuje ciasteczka sesji i tokeny API — ustaw losową wartość |
PENTAGI_, PENTAGI_ | Poświadczenia PostgreSQL |
NEO4J_ | Hasło Neo4j do knowledge graphknowledge graph — graf wiedzyGraf hostów, usług, luk i dostępu między nimi, który PentAGI buduje podczas testu, gdy ta opcjonalna funkcja jest włączona. Pokazuje, jak ustalenia są ze sobą powiązane.; NEO4J_ musi pozostać neo4j |
PUBLIC_ | Adres URL otwierany przez użytkowników, na przykład https:/ |
Na działającej instalacji najpierw zmień hasło do bazy danych w PostgreSQL lub Neo4j, a następnie w .env.
HTTPS
PentAGI udostępnia HTTPS na porcie 8443 z certyfikatem samopodpisanym. Aby użyć własnego, ustaw SERVER_ i SERVER_ oraz zamontuj pliki w docker-compose.yml.
Użytkownicy i logowanie
Nie ma formularza rejestracji. Administratorzy zarządzają użytkownikami lokalnymi przez Users API (/) z poziomu sesji przeglądarki po zalogowaniu — token API zwraca tam 403 — a role ograniczają to, co każdy użytkownik może zobaczyć i zmienić. Użytkownicy lokalni zmieniają swój własny adres e-mail i hasło w sekcji Settings → Account.
Przy skonfigurowanym logowaniu przez GitHub lub Google, logowanie, którego zweryfikowany przez dostawcę adres e-mail pasuje do istniejącego konta (w tym kont lokalnych), powoduje zalogowanie się na to konto z jego rolą; każde inne logowanie tworzy nowe konto z domyślną rolą użytkownika. Każda instalacja zaczyna się od administratora [email protected], więc przed włączeniem logowania przenieś je na adres, który kontrolujesz, w sekcji Settings → Account, i włącz tę opcję tylko tam, gdzie nowe konta są akceptowalne, na przykład w aplikacji Google Workspace ograniczonej do Twojej domeny.
Logowanie przez GitHub i Google jest dostępne przez OAuth. Zarejestruj aplikację z adresem wywołania zwrotnego ${PUBLIC_ i dodaj jej poświadczenia:
PUBLIC_URL=https://pentagi.example.com
OAUTH_GITHUB_CLIENT_ID=your_github_client_id
OAUTH_GITHUB_CLIENT_SECRET=your_github_client_secretDostępność sieciowa
Domyślnie interfejs webowy PentAGI nasłuchuje tylko na 127.0.0.1. Aby uzyskać do niego dostęp z innych maszyn:
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:8443Użyj prawdziwego adresu w PUBLIC_ i CORS_, nigdy 0.0.0.0. Utwórz kontenery ponownie poleceniem docker compose up -d --force-recreate i otwórz port 8443 w zaporze.
Za reverse proxy ustaw TRUSTED_ na adres lub CIDR proxy, oddzielone przecinkami. W przeciwnym razie każde żądanie będzie wyglądać, jakby pochodziło z proxy, a limit logowań na adres — 30 nieudanych prób w ciągu pięciu minut, po których następuje 15-minutowa blokada — będzie współdzielony przez wszystkich użytkowników.
Każdy kontener sandboxsandboxIzolowany kontener Docker, w którym agenci uruchamiają swoje narzędzia. Interfejs pokazuje go jako Terminal. flowflowJeden flow PentAGI: cel, zadania utworzone na podstawie Twoich wiadomości oraz wszystko, co agenci zrobili po drodze. publikuje również dwa porty do wywołań zwrotnych poza pasmem, takich jak reverse shelle. Pochodzą one z puli 2000 portów zaczynających się od DOCKER_ (domyślnie 28000) i są powiązane z DOCKER_, adresem, który agenci podają celom do nawiązania połączenia zwrotnego.
Domyślnie DOCKER_ to 0.0.0.0: porty nasłuchują na każdym interfejsie hosta Docker, a agenci samodzielnie wyszukują swój publiczny adres. Ustaw konkretny adres tylko wtedy, gdy host go posiada i cele mogą się z nim połączyć; za NAT-em pozostaw domyślne ustawienie. Porty publikowane przez Dockera omijają reguły ufw i firewalld na hoście, więc ogranicz zakres za pomocą zapory sieciowej przed hostem, takiej jak grupa zabezpieczeń w chmurze, lub reguł w łańcuchu DOCKER-USER Dockera.
PROXY_ kieruje wywołania backendu do providerów modeli, providera embeddingów, API wyszukiwarek oraz sprawdzania aktualizacji przez proxy, co pomaga odizolować instalację od sieci zewnętrznych. Lokalne endpointy, takie jak Ollama, vLLM czy SearXNG, również przechodzą przez to proxy, ponieważ nie ma wyjątku NO_, więc proxy musi mieć do nich dostęp. Kontenery sandbox flow, w których agenci wykonują swoje polecenia, scraper, który otwiera strony internetowe dla narzędzia przeglądarki, oraz usługa Graphiti nie korzystają z tego proxy, dlatego ogranicz ich ruch wychodzący na poziomie sieci. Logowanie przez GitHub lub Google oraz wywołania endpointu Langfuse lub OpenTelemetry poza dołączonymi stosami również z niego nie korzystają, a demon Docker pobiera obrazy, używając własnych ustawień proxy.
Sprawdzanie aktualizacji
W ciągu dwóch minut od uruchomienia, a następnie co trzy godziny, serwer pyta update.pentagi.com, czy dostępna jest nowsza wersja. Żądanie zawiera identyfikator instalacji, klucz licencyjny (jeśli został ustawiony), wersję i platformę oraz podsumowanie instalacji: skonfigurowanego providera i typy logowania, kilka przełączników funkcji, liczbę użytkowników, flows, taskstask — zadanieJedno żądanie w flow: jego pierwsza wiadomość lub późniejsza wiadomość, która nie odpowiada na pytanie agenta. PentAGI dzieli każde zadanie na podzadania., kontenerów, promptów, tokenów API i tool callstool call — wywołanie narzędziaŻądanie modelu wykonania jednego z narzędzi agenta, np. polecenia terminala lub wyszukiwania w sieci., a także sumy tokenów i kosztów według typu providera — bez nazw, adresów, promptów ani zawartości flow. UPDATE_ wyłącza tę opcję. Przy każdym uruchomieniu instalatora i po każdej wykonanej przez niego akcji, takiej jak Apply Changes, Update, Start lub Stop, wysyłane są zainstalowane obrazy i stan każdego stosu, a gdy PentAGI działa, przesyłane jest również to samo podsumowanie; UPDATE_ nie ma na to wpływu.
Kontener pentagi działa jako root, ponieważ zarządza kontenerami przez gniazdo Docker. Aby zapewnić silniejszą izolację, uruchom toolstool — narzędzieTo, za pomocą czego działa agent: wbudowana funkcja, taka jak terminal, izolowana przeglądarka lub wyszukiwanie w sieci, albo program w sandboxie, np. nmap, metasploit lub sqlmap. na osobnym worker node.
Ostatnia aktualizacja