Szyfrowanie dysku zdalnego serwera
Odpowiedź
Pełne szyfrowanie dysku na zdalnym serwerze wykorzystuje LUKS2 z hasłem wprowadzanym przy starcie przez konsolę poza pasmem lub powłokę dropbear SSH w initramfs. Chroni przed przejęciem dysku i odzyskaniem danych ze złomowanych dysków. Nie chroni działającego serwera, którego klucze są w RAM.
Bądź precyzyjny co do zagrożenia, które adresuje
Pełne szyfrowanie dysku chroni dane w spoczynku. Gdy maszyna zostanie uruchomiona, a wolumin odblokowany, klucz jest w pamięci jądra, a system plików jest czytelny dla wszystkiego z wystarczającymi uprawnieniami — w tym, na platformie zwirtualizowanej, dla operatora hiperwizora, który może zrzucić pamięć gościa.
Więc FDE pokonuje: przejęcie sprzętu przy wyłączonym zasilaniu, dyski opuszczające centrum danych pod koniec życia oraz zimną kopię obrazu wirtualnego dysku. Nie pokonuje: atakującego na działającym systemie ani przeciwnika na poziomie hiperwizora przeciw działającej maszynie wirtualnej. To uczciwe granice i każdy przewodnik, który je pomija, sprzedaje pocieszenie.
Problem zdalnego odblokowania
Na laptopie wpisujesz hasło przy starcie. Na serwerze dwa tysiące kilometrów dalej coś musi je dostarczyć, a oczywiste rozwiązania wszystkie niweczą cel — plik klucza na tym samym dysku lub klucz przechowywany przez dostawcę oznacza, że szyfrowanie jest dekoracyjne.
Są dwie poprawne odpowiedzi. Na naszych dedykowanych serwerach i serwerach GPU użyj konsoli poza pasmem: IPMI daje ekran startowy i wpisujesz hasło tak jak lokalnie. Na VPS umieść dropbear-initramfs w początkowym ramdisku, aby maszyna uruchomiła się na tyle, by przyjąć połączenie SSH, odblokujesz przez to połączenie, a start będzie kontynuowany.
Konfiguracja
Czysta ścieżka to zaszyfrowanie podczas instalacji. Uruchom niestandardowe ISO przez nośnik wirtualny, podziel na niezaszyfrowany /boot i kontener LUKS2 na wszystko inne, a następnie instaluj. Wybierz Argon2id jako funkcję wyprowadzania klucza — to domyślna opcja LUKS2 i jest odporna na pamięć, co ma znaczenie przeciw brute force.
Zamów LUKS przy provisioning na dowolnym planie dedykowanym, GPU lub storage, a my zrobimy partycjonowanie; Ty wprowadzasz hasło przez konsolę przy pierwszym starcie i nigdy nie dotyka ono naszej infrastruktury. Nie ma opłaty ani ścieżki odzyskiwania, co jest tym samym stwierdzeniem wypowiedzianym dwa razy.
- cryptsetup luksFormat --type luks2 --pbkdf argon2id /dev/sdaX
- Niezaszifrowany /boot, wszystko inne w kontenerze
- apt install dropbear-initramfs na VPS do zdalnego odblokowania
- Dodaj swój klucz SSH do /etc/dropbear/initramfs/authorized_keys
- Przetestuj pełny restart, zanim cokolwiek na nim umieścisz
- Trzymaj drugi slot klucza z hasłem przechowywanym w bezpiecznym miejscu
Dwie rzeczy, które ludzie mylą
Pierwsza to posiadanie tylko jednego slotu klucza. LUKS2 obsługuje osiem; użyj co najmniej dwóch, z drugim trzymającym długie losowe hasło w menedżerze haseł. Pojedyncze zapomniane hasło jest nie do odzyskania, a nie do odzyskania znaczy nie do odzyskania.
Drugim jest nietestowanie restartu przed umieszczeniem danych na maszynie. Źle skonfigurowany dropbear initramfs zamienia pierwszy nieplanowany restart w maszynę, która nigdy nie wróci. Celowo zrestartuj ją dwa razy, gdy jest jeszcze pusta.
Często zadawane pytania
01 Czy mój dostawca może odczytać zaszyfrowany dysk?
Nie w spoczynku. Na działającej maszynie wirtualnej operator hiperwizora może w zasadzie odczytać pamięć gościa, która zawiera klucz — to prawda dla każdego dostawcy wirtualizacji. Bare metal z LUKS usuwa ten interfejs.
02 Jak odblokować serwer, do którego nie mam fizycznego dostępu?
Konsola IPMI out-of-band na serwerach dedykowanych i GPU, lub dropbear-initramfs na VPS — maszyna uruchamia się na tyle, by przyjąć SSH, odblokowujesz ją przez to, a boot jest kontynuowany.
03 Co jeśli zapomnę hasła?
Dane są stracone. Nie ma odzyskiwania, żadnych tylnych drzwi ani klucza przechowywanego u dostawcy. Użyj co najmniej dwóch slotów kluczy LUKS, z drugim zawierającym długie losowe hasło w menedżerze haseł.
Powiązane