Możesz wykonać kopię zapasową zaszyfrowanego kontenera jako jednego obiektu albo zamontować go i skopiować pliki w środku. Oba przechodzą przez VPN bez problemu i na tym podobieństwo się kończy. Odtwarzają różne rzeczy, zależą od różnych kluczy, kosztują różne ilości miejsca i zawodzą na różne sposoby, gdy ktoś potrzebuje danych z powrotem. Najpierw wybierz obiekt odtworzenia, potem transport, potem szyfrowanie przechowywanej kopii. Poniższa lista kontrolna idzie w tej kolejności, bo prawie każdy spór o kopie zapasowe jest w istocie niezgodą co do tego, która z tych trzech decyzji została podjęta pierwsza.

Dwa obiekty, dwa kształty odtworzenia

Kopia na poziomie obrazu odtwarza kontener: odzyskujesz zaszyfrowany wolumen i nadal potrzebujesz jego materiału odtworzeniowego, aby go otworzyć. Kopia na poziomie plików odtwarza pliki i drzewa katalogów, a szyfrowanie, które je chroni, jest właściwością repozytorium kopii, a nie pierwotnego kontenera. Zwykła kopia do zdalnego folderu to trzeci przypadek i dziedziczy ochronę, którą ten folder przypadkiem ma.

ObjectWhat a restore gives youWhere the encryption question lands
Encrypted container imageThe volume, still lockedThe container format and its recovery key material
Mounted files into a backup toolSelected files and metadataThe backup repositorys own keys and design
Plain copy to a remote folderWhatever the copy process keptWhatever protects that storage afterwards

Środkowy wiersz to ten, który ludzie czytają źle. Może to być całkiem dobry projekt: program kopiujący czyta tekst jawny lokalnie i zapisuje zaszyfrowane, uwierzytelnione repozytorium. Bezpieczeństwo opiera się wtedy na tym programie i jego poświadczeniach, a nie na haśle pierwotnego kontenera, i tych dwóch nie należy opisywać tak, jakby były tą samą kontrolą.

Sprawdzenie 1: co odtworzenie musi zrekonstruować?

Zadaj pytanie w formie odtworzenia, nie kopii. Jeśli wymaganiem jest „przywrócić tę usługę na innym hoście”, obraz wraz z materiałem odtworzeniowym jest spójną odpowiedzią. Jeśli wymaganiem jest „odzyskać arkusz finansowy z marca”, odtworzenie obrazu o rozmiarze kilku gigabajtów tylko po to, by wyjąć jeden plik, jest kosztowną odpowiedzią. Oba są uzasadnionymi odtworzeniami i nie są wymiennymi budżetami. Plan, który wymienia tylko jedno z nich, prędzej czy później zostanie sprawdzony przez drugie.

Zapisz cel odtworzenia w planie: cały wolumen, drzewo katalogów lub pojedyncze pliki. Następnie zaznacz, jakie metadane muszą podróżować razem z nimi, bo własność, uprawnienia, rozszerzone atrybuty i znaczniki czasu są częścią odtworzenia na poziomie plików i często giną w procesach opartych na kopiowaniu, które podczas testów wydawały się wystarczające.

Zdecyduj też, kto wykonuje odtworzenie. Repozytorium na poziomie plików, które każdy operator może zamontować, to inny model dostępu niż obraz wymagający obecności posiadacza klucza, i żadne z nich nie jest automatycznie lepsze. Istotne jest, by wybór był świadomy i zapisany.

Sprawdzenie 2: co chroni przechowywaną kopię?

VPN chroni odcinek transportu. Nie mówi nic o przechowywanej kopii po zakończeniu transferu, a „przeszło przez tunel” nie jest stwierdzeniem o zdolności operatora kopii do czytania twoich danych. Jeśli druga strona jest prowadzona przez kogoś innego, pytaniem jest, co oni mogą przeczytać, a nie czy łącze było szyfrowane.

Dla obrazu oznacza to ochronę materiału klucza kontenera oddzielnie od samego obrazu. Utrata nagłówka to utrata wolumenu, więc rób kopię nagłówka tam, gdzie obrazu nie ma:

cryptsetup luksHeaderBackup /dev/vg0/data --header-backup-file data-header.img
cryptsetup luksDump /dev/vg0/data | head -20

Dla repozytorium na poziomie plików sprawdź, czy narzędzie szyfruje i uwierzytelnia treść oraz metadane, zanim opuszczą hosta, i ustal, kto trzyma klucze. Dokumentacja projektowa Restic wyraźnie mówi, że zakłada zaufanego hosta źródłowego i że szyfrowanie nie powstrzymuje kogoś z dostępem do magazynu przed usunięciem kopii. Oba zastrzeżenia są ważne: repozytorium może być poufne i mimo to zniszczone.

Sprawdzenie 3: czy kopia jest spójna?

Kopia, która przechwytuje zmieniający się system plików, jest kopią, a nie punktem odtworzenia. Dla obrazu użyj obsługiwanej metody narzędzia wolumenów do stabilnej migawki, co zwykle oznacza operację migawki lub odmontowanie, a nie czytanie dużego pliku w trakcie jego zmiany:

lvcreate -L 5G -s -n data-snap /dev/vg0/data
cryptsetup open /dev/vg0/data-snap data-snap --readonly

Dla zamontowanych plików użyj obsługiwanej przez aplikację procedury spójności dla aktywnych baz danych i innych danych koordynowanych. Kopia na poziomie systemu plików i punkt odtworzenia spójny z aplikacją to różne opisy, a różnica staje się widoczna dopiero wtedy, gdy spróbujesz uruchomić aplikację z odtworzonej kopii.

Trzymaj materiał odtworzeniowy na niezależnej chronionej ścieżce. Utrata oryginalnej maszyny nigdy nie powinna oznaczać także utraty jedynych poświadczeń, które otwierają jej kopię, i dokładnie to się dzieje, gdy plik klucza mieszka na wolumenie, który jest kopiowany. Przetestuj to rozdzielenie świadomie: odtwórz na hoście, który nigdy nie widział oryginału, używając tylko tego, co plan uznaje za dostępne.

Sprawdzenie 4: czy wykrywanie zmian działa dla tego obiektu?

Zaszyfrowany kontener wygląda dla większości narzędzi transferowych jak jeden duży nieprzejrzysty plik, więc drobna zmiana w tekście jawnym może spowodować duże ponowne czytanie lub pełne ponowne wysłanie, zależnie od narzędzia i formatu. Dzielenie na bloki o zmiennym rozmiarze i deduplikacja, jak dokumentuje restic, mogą to zmniejszyć, ale jest to właściwość tamtego narzędzia, a nie zaszyfrowanych kontenerów w ogóle.

Mierz zamiast zakładać. Porównaj pierwsze uruchomienie z drugim po małej, nieszkodliwej zmianie i zapisz przesłane bajty oraz upływ czasu. Zachowaj znaną dobrą kopię podczas eksperymentów, żeby test nie zużył twojego jedynego punktu odtworzenia.

Potem zakończ listę jedynym testem, który się liczy: odtworzeniem bez oryginalnej maszyny. Otwórz odtworzony kontener albo odtwórz wybrane pliki wraz z ich metadanymi i potwierdź, że aplikacja lub użytkownik może użyć wyniku. Szybki, dobrze zaszyfrowany transfer, który nie potrafi odpowiedzieć na ten test, jest kopią twoich danych, a nie ich kopią zapasową.

Powiązane artykuły