Linux jakby rozmiękczony

Zabiegi utwardzające

Zawężanie dyskusji o bezpieczeństwie Linuxa do kwestii włamań byłoby zbyt daleko posuniętym uproszczeniem. Dość nieprzyjemną sytuację może spowodować błąd w dowolnym programie skutkujący tworzeniem bardzo dużej ilości plików albo też plików o monstrualnych rozmiarach. W dobrze skonfigurowanej dystrybucji przewidziano ustawienia kwoty dyskowej, która uniemożliwia całkowite zapełnienie dysku. Temu samemu celowi służą także partycje.

Gdy użytkownik uruchamia jakiś program, korzystając ze zwykłych uprawnień, program ten zazwyczaj może zapisywać pliki do katalogu domowego (/home/nazwa uzytkownika/...), tymczasowego (/tmp) względnie do innych katalogów tymczasowych utworzonych przez administratora (np. /opt/tmp czy /usr/local/tmp). Przy prawidłowym podziale na partycje najważniejsze zasoby dyskowe pozostają dostępne, gdyż zapełnienie partycji /tmp nie skutkuje brakiem miejsca na /var (i odwrotnie). Ochrona za pomocą ustawienia kwoty dyskowej uniemożliwi wadliwemu programowi naruszenie stabilności systemu poprzez całkowite zapełnienie dysków "śmieciami". Może to prowadzić do błędów w pracy innych programów, skutkujących nawet możliwością przepełnienia bufora. Gdy wszystkie procesy pracują z najwyższymi uprawnieniami, o żadnej ochronie za pomocą kwoty nie może być mowy.

Większość instalatorów w "przyjaznych" dystrybucjach stosuje podział dysku na dwie partycje - root (/) oraz swap. Oczywiście jest to najprostszy podział i wielu użytkowników z niego korzysta. W mniej zagrożonych systemach, przeznaczonych na przykład do eksperymentów, jest on do przyjęcia, gdyż jest bardzo elastyczny pod względem wolnego miejsca. Należy jednak pamiętać, że podział na partycje to bardzo ważny krok w celu podwyższenia bezpieczeństwa. Nawet tak prosty w wykonaniu krok jak oddzielenie partycji, na których może zapisywać pliki zwykły użytkownik, od pozostałych, gdzie są dane systemowe (oddzielenie przestrzeni użytkownika), daje od razu wzrost bezpieczeństwa.

Partycje, na których użytkownik może zapisywać dane, należy zamontować z opcją nosuid oraz noexec. Wtedy użytkownik uruchomi tylko oprogramowanie zaakceptowane przez administratora. Ta prosta sztuczka jest bardzo skuteczna, ponieważ od razu odsiewa przeważającą większość ataków inicjowanych przez ciekawskich i mniej zaawansowanych włamywaczy.

Oczywiście także to zabezpieczenie daje się obejść, ale nie jest to takie proste i nie każdy amator włamań to potrafi. Na pewno uniemożliwi instalację oprogramowania przez zwykłych użytkowników - a to jest warunek konieczny bezpieczeństwa w dzisiejszych firmach. Właśnie ten cel stawiają sobie administratorzy systemów Windows i wkładają w to naprawdę wiele pracy. Z dobrych założeń warto korzystać.

Dystrybucja startująca z płyty, jak Knoppix czy Linux EduCD, nie musi zachowywać najwyższych możliwych poziomów bezpieczeństwa, bowiem nie do tego jest stworzona. Jej najważniejszą cechą jest fakt pracy bez używania twardego dysku. Dzięki temu, że nie ma możliwości trwałej modyfikacji żadnego pliku systemowego, można się zgodzić na obniżone bezpieczeństwo. Mało kto zdecyduje się wykorzystać dystrybucję taką jak Knoppix do codziennej pracy.

Gdy zaś mowa o minidystrybucjach przeznaczonych do środowiska terminalowego, to warto zauważyć, że na takim urządzeniu nie uruchamia się żadnych istotnych z punktu widzenia włamywacza usług. Obraz startowy bywa zapisany na stałe w nieulotnej pamięci Flash - w niektórych urządzeniach zapis do niej można zablokować mechanicznym przełącznikiem, co na potrzeby ochrony przed włamaniami elektronicznymi w zupełności wystarczy.

Zawsze znajdzie się firma, która zawierzy eleganckiej, łatwej w użyciu, a jednocześnie taniej dystrybucji. Jeśli będzie to Linspire lub podobnie "bezpieczny" produkt, słowo "Linux" może się dla niej stać synonimem słowa "kłopoty". W przypadku bowiem odnalezienia przez włamywacza istotnej dziury w bezpieczeństwie któregokolwiek z procesów systemowych, wszystkie stacje robocze w sieci LAN staną przed nim otworem. Gdy wszystkie procesy na stacji roboczej mają uprawnienia systemowe, przejęcie nad nią kontroli jest proste. Jeśli to się uda, włamywacz ma ułatwiony dostęp do serwera i jego zasobów.

Uprawnienia wypożyczone

Należy sobie zadać pytanie, czy trzeba stosować tak radykalne podejście do łatwości uruchamiania wszelkich programów, lekceważąc całkowicie bezpieczeństwo? Otóż, nie. Każdy doświadczony administrator systemów typu Unix poznał dwa najważniejsze programy służące do zmiany sposobu uwierzytelnienia - su oraz sudo. W systemach SCO OpenServer jest do dyspozycji narzędzie asroot, a w wersji 8 - tfadmin. Stosowanie ich w rozsądnych granicach daje ogromną elastyczność, trudną do osiągnięcia w systemach Windows, a także dużo lepsze bezpieczeństwo.

Najprościej mówiąc, su daje możliwość użycia odmiennego uwierzytelnienia dla wywoływanego procesu (może nim być powłoka systemu albo jakikolwiek inny program), zaś sudo umożliwia wykonywanie przez konkretnych użytkowników uprzednio ustalonych zadań z uprawnieniami systemowymi. Su przy przejściu z uprawnień zwykłego użytkownika na roota (podniesienie uprawnień) wymaga hasła roota, zaś przy odwrotnym przejściu (degradacja uprawnień) - hasło nie jest wymagane.

Dzięki temu administrator może wywołać proces z uprawnieniami innego użytkownika (i często z tej opcji korzysta dla lepszego bezpieczeństwa), zaś użytkownik posiadający hasło roota może nie logując się jako root na chwilę skorzystać z uprawnień systemowych. Sudo jest innym narzędziem, zapewniającym wykonywanie konkretnych poleceń z uprawnieniami roota. Administrator może nakazać podawanie hasła przy takim uruchomieniu, ale wtedy użytkownik podaje swoje hasło, a nie systemowe.


TOP 200