Kiedy zainstalowałem Ubuntu 10.04, a teraz 10.10, zaoferowano mi opcję włączenia „szyfrowanego LVM” na moim dysku twardym. Po wybraniu tej opcji podczas uruchamiania systemu pojawia się monit o podanie hasła w celu odszyfrowania LVM.
Teraz myślę o skonfigurowaniu bezgłowego serwera z systemem Linux (niekoniecznie Ubuntu), ale martwię się, że ponieważ serwer jest bezgłowy, nie będę w stanie go odszyfrować podczas uruchamiania. Czy będę mógł włączyć SSH podczas rozruchu, aby wprowadzić hasło do zaszyfrowanego LVM? Jeśli tak, jak to skonfigurować? A może jest inne rozwiązanie? Ponownie to pytanie NIE jest specyficzne dla Ubuntu. Dzięki.
zless /usr/share/doc/cryptsetup/README.remote.gz
Odpowiedzi:
Dla nowszych wersjach Ubuntu, na przykład, 14.04, znalazłem kombinacji @dragly i Ta blogposts' odpowiedzi bardzo pomocne. Parafrazować:
(Na serwerze) Zainstaluj Dropbear
(Na serwerze) Kopiuj i przypisuj uprawnienia do logowania na klucz publiczny / prywatny root
pamiętaj, aby zmienić użytkownika na swoją nazwę użytkownika na serwerze
(Na kliencie) Pobierz klucz prywatny z serwera
(Na kliencie) Dodaj wpis do konfiguracji ssh
(Na serwerze) Utwórz ten plik na
/etc/initramfs-tools/hooks/crypt_unlock.sh
(Na serwerze) Ustaw ten plik jako wykonywalny
Zaktualizuj initramfs
Wyłącz usługę dropbear podczas rozruchu, aby po odszyfrowaniu partycji używany był openssh
Jesteś skończony. Wypróbuj to. Sprawdź post na blogu, do którego prowadzi link powyżej, aby dowiedzieć się, jak skonfigurować serwer ze statycznym adresem IP, jeśli jest to coś, co musisz zrobić.
źródło
/etc/initramfs-tools/root/.ssh/authorized_keys
, nawet jeśli nadal przechodzi przez kopiowanie klucza prywatnego Dropbear, co można całkowicie zignorować. Przestrzeganie pozostałych instrukcji działa dla mnie, co oznacza, że powinna to być zaakceptowana odpowiedź (po odzwierciedleniu tej zmiany), ponieważ używa tylko kluczy publicznych.Przewodnik dotyczący takiej konfiguracji w BusyBox i Dropbear znajduje się w tym poście na blogu . wczesne ssh nie działało dla mnie i najwyraźniej nie jest już potrzebne.
Podsumowałem, co musisz zrobić w dalszej części. Aby uzyskać więcej informacji, spójrz na powyższy post:
Zainstaluj BusyBox i Dropbear na swoim serwerze
Zaktualizuj initramfs na serwerze
Skopiuj klucz prywatny wygenerowany przez dropbear na maszynę klienta. Może być konieczne skopiowanie tego do nowego katalogu i zmiana właściciela, aby to zrobić. Na serwerze wykonaj następujące czynności:
Pamiętaj, aby zastąpić użytkownika swoją nazwą użytkownika. Loginy do hasła nie działają.
Teraz możesz przenieść klucz prywatny za pomocą scp, dzwoniąc pod następujący numer na swoim kliencie :
Skonfiguruj plik ~ / .ssh / config swojego klienta, aby ułatwić logowanie. Otwórz go za pomocą edytora tekstu i dodaj następujące elementy:
Zmień hosta na dowolny, a HostName na nazwę swojego serwera. Pozwól użytkownikowi na rootowanie. Wygląda na to, że jest to jedyny zaakceptowany użytkownik w Dropbear. Zapisz i zamknij plik.
Uruchom ponownie serwer i poczekaj na monit o podanie hasła. Daj Dropbear kilka sekund na wykrycie i skonfigurowanie połączenia internetowego. Połącz się z serwerem za pomocą następującego polecenia na kliencie :
Po zalogowaniu wydaj następujące polecenie na swoim serwerze . Zobacz wpis na blogu, aby uzyskać szczegółowe informacje:
Zanim zaczniesz wpisywać swoje hasło, zajmie to trochę czasu (30 sekund). Wpisz go po wyświetleniu monitu.
Zamknij połączenie, pisząc
Twój serwer powinien teraz odblokować zaszyfrowany dysk twardy i uruchomić się normalnie.
(Ogromne podziękowania dla oryginalnego autora posta na blogu!)
źródło
Myślę, że wczesne ssh zapewnia to, czego szukasz:
Dostępny jest już pakiet .deb, więc prawdopodobnie nie masz nic przeciwko Ubuntu.
źródło
Zapoznaj się z plikiem Readme cryptsetup w tym celu
/usr/share/doc/cryptsetup/README.remote.gz
(pakiet Ubuntucryptsetup
). Tam jest pełny przewodnik, aby to osiągnąć. Jest podobny do odpowiedzi Dragly'ego , ale myślę, że jest to nieco bardziej eleganckie. (Klucze sformatowane w Dropbear, przekazujące hasło przez FIFO zamiast delikatnego skryptu powłoki itp.)Dzięki jap za wskazanie mi tego na innym kanale.
źródło
read -s -p
.Jeśli chcesz mieć możliwość uruchamiania bez nadzoru, jak i zdalnie, powinieneś także spojrzeć na Mandos (które ja i inni napisaliśmy):
Krótko mówiąc, serwer rozruchowy otrzymuje hasło przez sieć w bezpieczny sposób. Szczegółowe informacje można znaleźć w pliku README.
źródło
Serwer bezgłowy? Jeśli ma port szeregowy, użyj go.
GRUB można skonfigurować do pracy przez port szeregowy. Jądro można również skonfigurować za pomocą portu szeregowego do wysyłania początkowych komunikatów rozruchowych, wprowadzania hasła w celu odblokowania dysków i logowania. (Jeśli serwer obsługuje szeregowy system BIOS, włącz to również. Wówczas nigdy nie będziesz musiał się łączyć monitor do maszyny w ogóle).
Zawsze dobrym pomysłem jest posiadanie „niesieciowego” sposobu wejścia na serwer bezgłowy.
źródło
W Arch Linuxie jest pakiet AUR dropbear_initrd_encrypt, który robi to, co chcesz od razu po wyjęciu z pudełka. Działa całkiem dobrze w przypadku interfejsów przewodowych. Musiałem nieco zhakować to dla bezprzewodowego.
źródło
Niestety żadna z powyższych odpowiedzi nie działała dla mnie. Co więcej, kopiowanie klucza prywatnego z serwera wydaje się paradoksalne.
W każdym razie opracowano następujące instrukcje :
Uruchom SERWER, podłączając i odblokowując zaszyfrowaną partycję za pośrednictwem KLIENTA
Zainstaluj obowiązkowe pakiety (na SERWERZE)
Dodaj żądane klucze publiczne do pliku autoryzowanego_SERWERA SERWERA
Po prostu skopiuj i wklej swój klucz (-y) publiczny do
/etc/dropbear-initramfs/authorized_keys
SERWERAUtwórz skrypt odblokowujący
Utwórz następujący skrypt w
/etc/initramfs-tools/hooks/crypt_unlock.sh
Spraw, by był wykonywalny:
Utwórz statyczny adres IP (lub pomiń ten krok, aby użyć DHCP)
Edytuj,
/etc/initramfs-tools/initramfs.conf
aby dodać (lub zmienić) linię:Zaktualizuj initialramfs
Wyłącz usługę dropbear podczas rozruchu, aby po odszyfrowaniu partycji używany był openssh
Testowanie
ssh [email protected] [-i ~/.ssh/id_rsa]
źródło
W debianie 9 (stabilnym) to rozwiązanie było nieaktualne. Podczas instalacji pojawia się ostrzeżenie
dropbear: WARNING: Invalid authorized_keys file, remote unlocking of cryptroot via SSH won't work!
i nie udało mi się znaleźć potrzebnych kluczy. Ta metoda jest bardzo prosta i została mi wyjaśniona na świetnym kanale #debian (jeszcze raz dziękuję):Najpierw upewnij się, że
busybox
,dropbear
idropbear-initramfs
są zainstalowanenastępnie dodaj swój klucz publiczny (przez większość czasu
~/.ssh/id_rsa.pub
) do pliku/etc/dropbear-initramfs/authorized_keys
.Zaktualizuj,
initramfs
aby uwzględnić zmiany:: update-initramfs -uTo wszystko!
Uwaga: jeśli chcesz uniknąć kolizji między kluczami pomiędzy
dropbear
iopenssh
(dzielą ten sam adres IP, ale używają innego klucza), możesz chcieć umieścić w swoim kliencie~/.ssh/config
coś takiego:Następnie po prostu łączysz się za pomocą:
a gdy pojawi się monit, wpisz zgodnie z sugestią zajętego pola:
i wpisz swoje hasło.
Cieszyć się!
źródło
Napisałem Ansible rolę, która robi to za ciebie. Po prostu pobierz rolę debops-contrib.dropbear_initramfs i uruchom ją. Szczegółowe informacje można znaleźć w dokumentacji roli .
źródło
Używam techniki objaśnionej przez innych na tej stronie (SSH w initramfs z
IP
parametrem jądra do konfiguracji sieci) od kilku lat do zdalnego odblokowywania bezgłowych serwerów Linux Ubuntu (12.02, 14.04, 16.04 i 18.04).Posunąłem się nawet tak daleko, że opracowałem program Python ( odblokowanie-system zdalny ), który wykonuje dla mnie faktyczne odblokowanie, ponieważ proces ręcznego robienia tego wydawał mi się trochę kruchy i zacząłem bać się ponownego uruchamiania moich serwerów, więc w duchu „jeśli boli, to warto zautomatyzować” Swoją wiedzę zakodowałem w Pythonie 😇 (i to rzeczywiście znacznie ułatwiło regularne ponowne uruchamianie w celu zastosowania aktualizacji zabezpieczeń).
Od tego czasu postanowiłem udostępnić światu moje osobiste notatki na temat zdalnego szyfrowania dysku głównego . Strona, do której prowadzi link, zawiera sporo szczegółów na temat procedury (także kilka wskazówek, które nie zostały tutaj wymienione) i zamierzam ją aktualizować.
źródło