Commit graph

2 commits

Author SHA1 Message Date
oskar 369ba31dde chore(kb): whitelist --check — /opt/homelab jako swiadomy wyjatek
Decyzja operatora 2026-08-04: /opt/homelab to standardowa sciezka deploy rootu
homelaba, ta sama na kazdym wezle, opisana wprost w publicznej czesci modelu
(standards, service-model, observer, event-system). Nie ujawnia sekretow ani
topologii, wiec zostaje na stronie publicznej.

scripts/kb/check_whitelist.txt: wpis `/opt/homelab` z uzasadnieniem i data.
Zakres wyjatku jest waski — sprawdzone, ze wycisza wylacznie warianty
`/opt/homelab/...`; `/home/oskar/...`, `/opt/other/...`, adresy RFC1918 i porty
dalej zapalaja czerwone.

gen_pages.py: load_whitelist() obcina komentarz `#` w dowolnym miejscu linii,
nie tylko na jej poczatku — wyjatek ma stac obok uzasadnienia, a nie osobno.
Zaden ze skanowanych wzorcow nie zawiera `#`, wiec obciecie jest bezpieczne.

kb/runbooks/kb-site-deploy.md §2: zapisany aktualny stan bramki (exit 0, 22
trafienia wyciszone) zamiast opisu decyzji do podjecia.

Po zmianie: python3 scripts/kb/gen_pages.py --check -> CZYSTO, exit 0.
2026-08-04 18:05:45 +02:00
oskar 9591c8b688 feat(kb): gen_pages.py --check — skan wygenerowanego HTML pod katem wyciekow
Tryb --check nie generuje niczego: skanuje build/kb-site/**/*.html linia po
linii i przerywa z exit 1 na pierwszym zestawie trafien. Wzorce:

  ip-rfc1918    192.168./10./172.16-31.
  ip-tailscale  100.64-127.
  ip-public-v4  reszta poprawnych adresow v4 (loopback, link-local, multicast,
                broadcast i pule dokumentacyjne RFC 5737 sa neutralne)
  ip-v6         adresy z "::" albo >=4 grupami (3 grupy to zwykle godzina)
  port          :NNNN w zakresie 1024-65535
  path-host     /home/... i /opt/...
  token-hex     ciagi hex >=32 znakow
  token-b64     ciagi base64-podobne >=40 znakow mieszajace cyfry i litery
                (sciezki absolutne odsiane — raportuje je path-host)

Raport: plik:linia [wzorzec] trafienie, na koncu licznik per wzorzec.

scripts/kb/check_whitelist.txt — swiadome wyjatki, na start PUSTY (same
komentarze z opisem formatu). Wpis to `<fragment>` albo
`<sciezka strony>|<fragment>`; fragment dopasowuje sie jako podciag trafienia,
wiec jeden wpis `/opt/homelab` wycisza wszystkie warianty.

Uruchomione lokalnie na 11 wygenerowanych stronach: 22 trafienia, wszystkie
path-host (/opt/homelab/... w dokumentach public), zero IP, portow i tokenow.
Whitelist zostaje pusta — decyzja co z tymi sciezkami zrobic nalezy do
operatora (patrz kb/runbooks/kb-site-deploy.md).
2026-08-04 17:57:37 +02:00