Kopiowanie pliku konfiguracyjnego nie jest kopią zapasową, a kopia, której nikt nie potrafi odtworzyć, nie jest planem. Archiwum musi zawierać tożsamość usługi, politykę wokół niej i stan mówiący, które urządzenia są jeszcze dozwolone. Musi też być chronione, bo w większości wdrożeń archiwum daje dokładnie to, co daje VPN. Decyzja o tym, co musi być odtwarzalne, przychodzi pierwsza; lista plików wynika z tej decyzji.

Zacznij od celu odbudowy

Zapisz, co musi robić odbudowany serwer, zanim wymienisz choćby jeden plik: kończyć te same tunele, przedstawiać tę samą tożsamość i odrzucać urządzenia, które są obecnie unieważnione. To zdanie wyklucza większość naiwnych kopii, ponieważ katalog konfiguracji rzadko zawiera listę unieważnień lub zewnętrzną zależność tożsamości. Ujawnia też części żyjące poza hostem, takie jak rekordy DNS, reguły zapory w chmurze i katalog, wobec którego brama się uwierzytelnia. Plan, który je pomija, daje odtworzony serwer, który wygląda zdrowo i nikogo nie wpuszcza.

Pogrupuj materiał w trzy kosze: tożsamość, konfiguracja i stan. Tożsamość to klucze, certyfikaty i urząd, które je podpisuje. Konfiguracja to ustawienia demona, pule, trasy i polityka zapory, a stan to zbiór peerów, kont i unieważnień, który zmienia się każdego dnia.

Tożsamość to część, której nie można wygenerować ponownie

Kluczy prywatnych nie da się odtworzyć z pamięci, a certyfikaty, które od nich zależą, wygasają według harmonogramu, który dziedziczysz, a nie wybierasz. Zrób kopię klucza serwera, materiału do obsługi klientów i urzędu certyfikacji, a potem zaznacz, które z nich mają pozostać offline. Klucz urzędu, który żyje tylko na działającej bramie, jest jedno naruszenie od pełnego resetu tożsamości dla każdego klienta. Zapisz, co jest celowo przechowywane gdzie indziej, aby nikt nie zduplikował tego do archiwum o niższej ochronie.

Unieważnienie zasługuje na własny wiersz w planie. Odtworzenie wczorajszej konfiguracji może przywrócić tożsamość, którą dzisiaj usunąłeś, co zamienia odzyskiwanie w incydent bezpieczeństwa. Trzymaj bieżący stan unieważnień w miejscu niezależnym od migawki, do której byś wracał, i sprawdzaj go po każdym odtworzeniu.

Zrób migawkę stanu w jednej chwili

Kopia wykonana, gdy usługa zapisuje, daje niespójny inwentarz, a niespójne dane tożsamości są gorsze od starszej czystej kopii. Dla każdego magazynu użyj obsługiwanej ścieżki eksportu, a potem zapisz czas migawki, bo każde późniejsze pytanie o odtwarzanie od niego zależy.

wg showconf wg0 > /srv/backup/wg0.runtime.conf
sqlite3 /var/lib/vpn/admin.db ".backup '/srv/backup/admin.db'"
cp -a /etc/wireguard /srv/backup/etc-wireguard
sha256sum /srv/backup/*.conf > /srv/backup/MANIFEST

Pierwsze polecenie wypisuje działający interfejs z powrotem jako konfigurację, co jest najszybszym sposobem przechwycenia peerów dodanych ręcznie, a nie narzędziem zarządzającym; dokumentuje to podręcznik wg(8). Wiersz sqlite to wzorzec dla bazy zarządzającej: polecenie kopii tworzy spójną kopię, gdy zapisujący nadal działa. Kopia katalogu zachowuje uprawnienia, co ma znaczenie, ponieważ te pliki kluczy może czytać tylko root. Manifest pozwala odróżnić archiwum kompletne od obciętego.

Uczyń odtwarzanie możliwym, a potem je wypróbuj

Zaszyfruj archiwum i trzymaj klucz odzyskiwania gdzie indziej niż na maszynie, z której pochodzi. Kopia, której hasło istnieje tylko na uszkodzonym serwerze, to kopia, której nikt nie otworzy. Ogranicz pobieranie do osób, które już mogły administrować bramą, i rejestruj każde pobranie. Przetestuj odtwarzanie w izolowanej sieci, ponieważ sklonowana tożsamość uruchomiona obok produkcji tworzy dwa serwery odpowiadające za ten sam klucz peera.

Udokumentuj wyłączenia tak starannie jak zawartość. Reguły zapory w chmurze, rekordy DNS i zewnętrzny katalog mogą każde wymagać własnego kroku odzyskiwania. Udana kopia plików nie jest dowodem, że usługa wraca; jedynym dowodem, który się liczy, jest odbudowany punkt końcowy przechodzący ten sam test akceptacyjny co oryginał.

Powiązane artykuły