From bc80745a942f521314c03573551d4711353509ef Mon Sep 17 00:00:00 2001 From: migatu Date: Tue, 4 Aug 2026 16:46:47 +0200 Subject: [PATCH] docs(wymagania): DAN-25 rozbite na 25a (zrobione) i 25b (Kerberos, nice to have) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Runbook wykonany na NAS-ie, więc wymaganie rozdziela się na to, co faktycznie osiągnięte, i to, co zostaje jako opcja na przyszłość — mieszanie obu w jednym wierszu kazałoby wybierać między „zrobione" a „niezrobione" dla czegoś, co jest i jednym, i drugim. DAN-25a (Must, ZROBIONE): udział /mnt/Tank1/astrololo wyeksportowany wyłącznie dla trzech węzłów k3s, tylko do odczytu, z root_squash. Zamknięta najkrótsza droga wycieku — wcześniej każdy w LAN mógł zamontować udział i wziąć kompletne bazy z pominięciem logowania, limitów, audytu i canary. Zawężony TYLKO ten udział, bo Tank1 obsługuje cały homelab. Procedura: docs/dan25-zabezpieczenie-nfs.md. DAN-25b (Could, do zrobienia): NFSv4 + Kerberos albo wolumen nieosiągalny poza klastrem. Uzasadnienie w wierszu: lista adresów IP zatrzymuje dostęp przypadkowy i oportunistyczny, ale NIE jest uwierzytelnianiem — adres da się podszyć w tej samej sieci, a przejęcie dowolnego węzła daje udział. Koszt (KDC + keytaby) uzasadniony dopiero, gdy sieć przestanie być zaufana. Bilans: 63 Zrobione · 9 W trakcie · 14 Do zrobienia. Co-Authored-By: Claude Opus 4.8 --- docs/astrololo_wymagania.xlsx | Bin 38064 -> 38549 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/astrololo_wymagania.xlsx b/docs/astrololo_wymagania.xlsx index dca6e4e4c472f8bb16859e8ed275ef8de4357008..382c5fd647b6b7af9965f4baf5608f6719f389f0 100644 GIT binary patch delta 7846 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