Wtorek, 11 grudnia 2018 r.
https://www.pichen.com/

Get Firefox!
Valid XHTML 1.0 Strict
Poprawny CSS!

Alternatywne metody uzyskania dostępu do linuksowych systemów operacyjnych

Wstęp

W niniejszym artykule przedstawione zostaną wybrane alternatywne sposoby uzyskania dostępu dostępu do systemów linuksowych. Przedstawione metody mogą być bardzo przydatne dla administratorów systemów linuksowych w przypadku awarii systemu operacyjnego czy też zagubienia hasła roota. Metody te mają jedną wspólną cechę, tzn. wymają uzyskania fizycznego dostępu do komputera. Część z nich wymaga także dostępu do BIOSu, ponieważ konieczna jest modyfikacja kolejności rozruchu napędów.
Poniżej przedstawione zostaną najbardziej interesujące przykłady.

Uruchamianie systemu w trybie jednego użytkownika

Czasem zdarza się, iż z pewnych powodów system operacyjny się nie uruchamia. Z opisaną sytuacją można spotkać się np. wówczas, gdy serwer X zostanie uszkodzony, lub też jakikolwiek inny program, uruchamiany w trakcie startu systemu, się zatrzyma. Rozwiązaniem problemu jest uruchomienia systemu w tzw. trybie jednego użytkownika (ang. single user mode). W trybie tym program init uruchamia system z wyłącznie jedną konsolą, co powoduje, że z systemu korzystać może jedynie jeden użytkownik. Skrypty rozruchowe systemu dla trybu jednego użytkownika napisane są tak, aby uruchomić system bez żadnych dodatkowych programów startujących w trakcie normalnego trybu wielu użytkowników (demony, serwer X, etc.). Zapewnia to, iż system operacyjny będzie pracował z minimalną ilością procesów oraz na ogół pozwoli administratorowi na lokalizację problemu oraz jego usunięcie. Aby uruchomić system w trybie jednego użytkownika należy do jądra przekazać opcję single, tudzież init 1. Zarówno bootloader LILO, jak i GRUB umożliwiają w łatwy sposób przekazywanie parametrów do jądra. W przypadku tego drugiego programu wystarczy wcisnąć klawisz e, zaznaczywszy uprzednio właściwy system operacyjny oraz jądro, po czym należy wpisać parametry, które mają zostać przekazane do jądra.

Parametr init jest również ciekawy z innego powodu. Dzięki niemu można jednorazowo zmienić poziom uruchomienia systemu (ang. runlevel). Np. podczas, gdy standardowo system uruchamia się na poziomie 5., a więc w trybie wielu użytkowników z uruchomieniem środowiska graficznego, za pomocą parametru init 3 doprowadzimy do tego, że system uruchomi się na poziomie 3., a więc w trybie wielu użytkowników, ale bez uruchomienia środowiska graficznego.

Uruchomienie systemu bez programu init

Gdy hasło roota systemu zostanie zapomniane, nie będzie możliwości uruchomienia systemu w trybie jednego użytkownika, gdyż program init dba o to, aby przed uruchomieniem interpretera powłoki użytkownik się zalogował do systemu. Można tę przeszkodę jednak ominąć. Wystarczy w tym celu przekazać jądru informację o tym, jaki program zamiast init, ma zostać uruchomiony po załadowaniu jądra. Jeśli chcemy, aby jądro załadowało powłokę BASH, należy przekazać następujący parametr init=/bin/bash. Spowoduje to, iż uruchomiony zostanie interpreter poleceń beż żadnego procesu logowania. Od tej pory można pracować w systemie plików, jednakże należy pamiętać o jednym istotnym fakcie. Otóż jądro montuje główny system plików w trybie tylko do odczytu, toteż jeśli planujemy modyfikację (np. modyfikacja hasła użytkownika za pomocą programu passwd), usuwanie lub dodawanie nowych plików należy go przemontować w trybie do zapisu. W tym celu należy użyć komendy mount / -o rw,remount. Warto także po zakończeniu zmian ponownie przemontować system plików do trybu tylko do odczytu, gdyż zapewni to, iż w momencie następnego uruchomienia systemu operacyjnego nie pojawi się komunikat, iż system plików nie został prawidłowo odmontowany. W tym celu należy użyć rozkazu mount / -o ro,remount.

Uruchomienie systemu ratunkowego

Może się okazać tak, iż nie będzie dostępne przekazywanie parametrów do jądra. Może to być spowodowane np. awarią bootloadera lub też jego zabezpieczenia hasłem, które zostało zapomniane. Ratunkiem w takiej sytuacji jest skorzystanie z płyty ratunkowej systemu operacyjnego, który jest zainstalowany na komputerze. W takiej sytuacji należy zmienić w BIOS-ie sekwencję rozruchową systemu tak, aby rozruch komputera następował z napędu płyt CD/DVD. Należy uruchomić opcję trybu ratunkowego (ang. rescue mode), która spowoduje załadowanie systemu operacyjnego z płyty CD/DVD bez uruchamiania demonów oraz środowiska graficznego. Następnie należy zamontować system plików na którym zainstalowany został system operacyjny do którego chcemy uzyskać dostęp. Jeśli system ten znajduje się na 7. partycji pierwszego dysku twardego SATA należy użyć polecenia mount /dev/sda7 /mnt/system, przy czym należy wcześniej się upewnić, czy kartoteka /mnt/system istnieje. W ten sposób w kartotece, w której został zamontowany system plików uzyskamy dostęp do plików partycji. Będziemy mogli zmienić pliki systemowe, jednakże zmiana hasła roota nie będzie możliwa, gdyż plik /etc/shadow, przechowuje hasła w sposób zabezpieczony, tzn. są one specjalnie haszowane. Aby zmienić hasło należy wykorzystać pewien trik. Należy użyć polecenia chroot /mnt/system, które spowoduje, iż dla aktualnego procesu oraz jego procesów potomnych, korzeń systemu plików będzie znajdował się w kartotece /mnt/system. Dzięki temu, uruchamiając jakiekolwiek programy, będą odnosić się do plików systemu operacyjnego, który chcemy modyfikować. Od tej pory możliwa staje się modyfikacja hasła za pomocą programu passwd.
Po zakończeniu pracy w środowisku chrootowanym, należy pamiętać o odmontowaniu systemu plików.

Zabezpieczenia

Przedstawione metody mogą być bardzo przydatne administratorowi w przypadku awarii systemu. Niestety mogą być one także wykorzystane do nieautoryzowanego dostępu do systemu operacyjnego przez niepowołane osoby. Czy istnieją zatem sposoby zabezpieczenia się przed wymienionymi metodami?

Przed dwiema pierwszymi metodami można się uchronić, zabezpieczając hasłem możliwość edycji parametrów, jakie mają zostać przekazane do jądra systemu operacyjnego. Bootloadery LILO oraz GRUB dają taką możliwość. W przypadku tego drugiego należy w pliku konfiguracyjnym /boot/grub/menu.lst, do każdej sekcji opisu systemu operacyjnego, który ma zostać zabezpieczony, dopisać linię password = "nasze_hasło". Należy przy tym zadbać, aby plik ten nie mógł być czytany przez niepowołanych użytkowników. Istniej także możliwość zapisania hasła w postaci haszu MD5, co znacznie podnosi bezpieczeństwo poznania hasła w przypadku odczytania zawartości pliku konfiguracyjnego programu GRUB.

Mimo tak przygotowanych zabezpieczeń, możliwe będzie skorzystanie ze sposobu polegającego na uruchomieniu płyty ratunkowej. Przed tym sposobem można się zabezpieczyć w zasadzie na jeden sposób. Należy zablokować hasłem dostęp do BIOSu tak, aby nie było możliwości zmiany sekwencji rozruchowej systemu. Niestety takie zabezpieczenie jest bardzo słabe, gdyż w prosty sposób można usunąć hasło do BIOSu (chociażby za pomocą zworki CMOS Clear znajdującej się na płycie głównej, czy też wyjęciem baterii). Ponadto niektóre BIOSy mają opcję wyboru napędu z jakiego ma zostać wykonany rozruch za pomocą pewnego klawisza. W takim wypadku użytkownik nie jest proszony o podanie hasła! Dla przykładu w nowych BIOSach AMIBIOS firmy American Megatrends wystarczy użyć klawisza ESC, aby pojawiło się menu wyboru napędu z jakiego ma zostać wykonany rozruch. To powoduje, że jedynym sesnowym sposobem ochrony jest całkowite uniemożliwienie intruzowi fizycznego dostępu do komputera.

Wnioski

Przedstawione w niniejszym artykule sposoby uzyskania dostępu do systemów linuksowych pokazują, iż systemy te nie są zbyt bezpieczne jeśli chodzi o możliwość fizycznego uzyskania dostępu do komputera. Sprawa wygląda zupełnie inaczej, jeśli pod uwagę weźmiemy dostęp zdalny i próby włamania za pomocą różnych usług (np. http, ftp, ssh). W przypadku, gdy zainstalowane oprogramowanie jest na bieżąco uaktualniane, systemy linuksowe okazują się być bardzo bezpieczne. Niemniej jednak należy pamiętać o odpowiednim zabezpieczeniu, w szczególności serwerów przed niepowołanymi osobami, gdyż powyższe przykłady są dowodem na to, iż niepowołana osoba, która uzyska fizyczny dostęp do komputera może uzyskać prawa administratora, a tym samym mieć nieograniczoną kontrolę w systemie operacyjnym. Dlatego też należy stosować odpowiednie zabezpieczenia, np. obudowy zamykane na klucz, szafy krosownicze z dobrymi zamkami, czy też umieszczanie serwerów w specjalnych pomieszczeniach, do których dostęp mogą mieć tylko uprawnione osoby.

Data artykułu: 2007-10-11.


Waszym zdaniem...

Na razie nie ma jeszcze żadnych komentarzy. Bądź pierwszy!

Aktualności

2017-05-14

Od dzisiaj strona jest dostępna wyłącznie w połączeniu szyfrowanym (bezpiecznym). Naprawiłem niedziałające odnośniki do galerii, usunąłem problem z wyświetlaniem znaków na starszych stronach relacji z Rosji, Ukrainy i Chin. Dodałem zdjęcia do mojego bloga o Malezji.

2017-05-07

Tydzień przeprowadziłem się do pracy do Kuala Lumpur w Malezji. Zapraszam do przeczytania mojego bloga dotyczącego tej przygody.

2017-03-21

Dodałem obsługę protokołu SSL. Strona dostępna jest także w bezpiecznej, zaszyfrowanej wersji. Drobne korekty w artykułach (dzięki Chris!). Zaktualizowałem sekcję Podróże.

2012-06-06

Dodałem relację z mojej podróży na wschód Kanady w 2010 r. Wzbogaciłem stronę o obsługę komentarzy. Naprawiłem formularz kontaktowy – odtąd korzysta z technologii AJAX. Przeszedłem na użycie tzw. „przyjaznych linków”.

2010-03-30

Dodałem wg mnie ciekawy artykuł opisujący sposób instalacji systemu openSUSE bez użycia nośników instalacyjnych. Do tego celu użyta zostanie technologia PXE umożliwiająca rozruch komputera z sieci. Zapraszam do przeczytania artykułu.

2009-07-18

Zaaktualizowałem informacje o sobie oraz dane kontaktowe. Dodałem nowe podstrony, tj. strony zawierające arytykuły dotyczące systemów UNIX oraz Linux. Ponadto dodałem odnośniki do moich profili na popularnych portalach społecznościowych. Na stronie pojawił się także odnośnik do mojej galerii zdjęć w systemie Google Picasa. Zaktualizowałem zbiór odnośników do relacji z podróży do Chin, Rosji i Mongolii.

2008-07-29

Dodałem podstronę, na której umieściłem przykładowe skrypty systemów uniksowych. Strona została przeniesiona na nowy serwer. Zmieniłem także kodowanie znaków strony na UTF-8.

2006-09-02

Dodałem galerię zdjęć. W galerii umieściłem zdjęcia z podróży do Chin, która odbyła się w 2005 roku. Jako, że aktualnie służę w wojsku, to w galerii umieściłem 4 zdjęcia z przysięgi wojskowej.
Osoby oczekujące na relację z Chin informuję, że jeszcze w tym roku powinna się pojawić na stronie.
 
© Copyright 2000 - 2018 Dawid Pichen. All rights reserved.