Lekcja 26 · krok 2około 75 min pracy

Hartowanie instancji przed pierwszymi prawdziwymi danymi

Ćwiczenie do lekcji Bezpieczeństwo instancji OpenClaw: bind, auth, sekrety i kopie. Teorię masz za sobą — teraz wykonaj to na własnym agencie albo w dowolnym czacie z modelem. Bez tego kroku kurs zostaje wiedzą, która nie zmienia niczego w Twojej pracy.

Co powinieneś już wiedzieć z teorii

  • Domyślny gateway.bind to loopback, a w kontenerze oznacza to 127.0.0.1 wewnątrz kontenera — przy zwykłym -p 18789:18789 gateway pozostaje nieosiągalny, dopóki nie zmienisz bindu i nie dołożysz uwierzytelniania.
  • Publikowanie portu przez -p omija reguły INPUT hosta: decyzje zapadają w łańcuchu DOCKER-USER, a reguły IPv6 trzeba dopisać osobno w /etc/ufw/after6.rules.
  • gateway.auth.mode przyjmuje none, token, password i trusted-proxy; token generuje openclaw doctor --generate-gateway-token, a proxy musi nadpisywać X-Forwarded-For, nie dopisywać do niego.
  • Uprawnienia z dokumentacji: 700 na ~/.openclaw, 600 na openclaw.json, 600 na ~/.openclaw/credentials/** i 600 na ~/.openclaw/state/openclaw.sqlite, gdzie leżą tokeny MCP.

Co masz zrobić

Kwadrans na odczyty, godzina na poprawki. Przechodzisz przez ekspozycję sieciową, auth, sekrety i kopie, a na koniec masz wynik audytu bez pozycji oznaczonych jako critical.

Wklejam wynik komend openclaw config get gateway.bind, gateway.port oraz openclaw security audit --json z mojej instancji OpenClaw. Powiedz, które pozycje trzeba naprawić przed wpuszczeniem prawdziwych danych firmy, a które mogę świadomie zaakceptować i zapisać w security.audit.suppressions. Przy każdej naprawie podaj dokładną komendę albo klucz konfiguracyjny oraz to, co się zepsuje, jeśli ją zastosuję. Uszereguj od najgroźniejszej. Nie proponuj rotacji poświadczeń ani zmian, których audyt nie zgłosił.

Gotowe, gdy:

Gdzie to się najczęściej sypie

Zanim uznasz ćwiczenie za zrobione, sprawdź, czy nie wpadłeś w któreś z tych miejsc. Każde widzieliśmy więcej niż raz.

  • Zmiana gateway.bind na lan w kontenerze bez włączenia uwierzytelniania. Gateway odmówi bindowania, a gdy ktoś obejdzie to trybem none, port stoi otwarty dla całej sieci.
  • Poleganie na regułach UFW przy portach publikowanych przez -p. Ruch idzie przez łańcuchy forwardowania Dockera, więc reguła w INPUT go nie dotyka, a szczelna na oko zapora przepuszcza wszystko.
  • Reverse proxy w trybie trusted-proxy, które dopisuje do X-Forwarded-For zamiast go nadpisywać. Klient sam podstawia sobie wtedy tożsamość, a proxy na pętli zwrotnej bez gateway.auth.trustedProxy.allowLoopback i tak wymaga tokenu.
  • Używanie tego samego sekretu jako tokenu gatewaya i tokenu hooków. Audyt oznacza to checkiem hooks.token_reuse_gateway_token, bo rotacja jednego wymusza rotację drugiego, a o drugim zwykle nikt nie pamięta.

Nie masz jeszcze na czym ćwiczyć?

Agent w chmurze EU startuje w około minutę. Pierwsza subskrypcja pakietu Premium ma 5 dni za darmo, a kurs czytasz dalej niezależnie od tego.

Zobacz plany