Zabezpieczanie Ubuntu Linux - 10 kluczowych porad

Strona głównaZabezpieczanie Ubuntu Linux - 10 kluczowych porad
23.07.2007 14:30
Zabezpieczanie Ubuntu Linux - 10 kluczowych porad

Stare przysłowie administratorów zajmujących się Uniksami mówi, że najsłabszym elementem systemu jest ten, który znajduje się bezpośrednio przed monitorem. Czy masz świadomość tego, że jako administrator komputera w starciu z włamywaczem jesteś na straconej pozycji? Ty, aby wygrać wojnę, musisz wygrywać każdą bitwę - włamywacz natomiast wygrywa wojnę jednym celnym strzałem. Deweloperzy oprogramowania robią wiele, aby niedoświadczony przedstawiciel "elementu" miał jak najmniej do powiedzenia, jednak mimo ich wysiłków ciągle pozostało wiele otwartych szczelin, przez które potencjalnie ma szansę wśliznąć się włamywacz. Jako że pokazywaliśmy wam już, jak zająć się zabezpieczaniem Windows, dziś zajmiemy się Linuksem, a konkretnie jego najpopularniejszą odmianą: Ubuntu. Oto 10 przykazań prawdziwego administratora, które każdy powinien wziąć sobie do serca.

Poniższy artykuł stanowi kwintesencję porad, które dawaliśmy czytelnikom papierowego wydania PC World Komputera. Artykuły miały za zadanie uzupełnić przestarzałe lub angielskojęzyczne materiały dostępne w Internecie. Jeśli szukasz szerszego omówienia zagadnień albo frapuje cię, dlaczego zdecydowaliśmy się na taką a nie inną opcję, zainteresujesz się PCWK 11/2006 ( "Linux ukochany przez miliony" ), 05/2007 ( "Jak chronić pingwina" ) - http://www.pcworld.pl/digital/numer.asp?id=1628, 06/2007 ( "Transfery ubezpieczone" ) - http://www.pcworld.pl/digital/numer.asp?id=1640, 07/2007 ( "Stos kuloodporny" ) - http://www.pcworld.pl/digital/numer.asp?id=1658.

We wspomnianych numerach umieściliśmy ponadto trzyczęściowy kurs nt. zabezpieczania ( hardeningu ) systemów Windows XP oraz Windows Vista.

Porada 1: uruchomienie firewalla

Może dziwić, że w tej jakże popularnej dystrybucji zapora sieciowa nie jest uruchamiana w domyślnej konfiguracji. Deweloperzy Ubuntu twierdzą jednak, że wobec braku nasłuchujących usług żaden firewall nie jest potrzebny i jeśli ktoś zdecyduje się na uruchomienie serwera, poradzi sobie również z iptables. Oczywiście wierzysz im, ale... swoje też wiesz. Dlatego zdecydujesz się na instalację zapory ogniowej.

Wpisz w terminalu polecenie ( nie zapomnij o sudo na początku, jeżeli nie jesteś zalogowany na koncie roota ):

apt-get install firestarter

Po krótkiej chwili w sekcji System | Administracja pojawi się kolejna opcja, właśnie Firestarter. Możesz uznać go za moduł analogiczny do Centrum zabezpieczeń w Windows XP SP2. Gdy już uruchomisz Firestarter, aktywuj opcje Uruchamianie zapory podczas wdzwaniania i Adres IP przydzielany za pomocą DHCP. Później już tylko klikaj Do przodu, wreszcie Zapisz i Zakończ. Gotowe!Porada 2: automatyczna synchronizacja zegara

W w wielu algorytmach zabezpieczających ruch sieciowy kluczową rolę odgrywa czas, a konkretnie dokładność zegara systemowego. Jeśli te parametry są ustawione źle ( np. zegar późni się o kilka godzin ), nie wszystko będzie działać poprawnie. Mogą się pojawić problemy z logowaniem na witryny wykorzystujące ciasteczka bądź protokół SSL ( HTTPS ).

Dlatego właśnie powinieneś kliknąć prawym klawiszem myszy okienko zegara znajdujące się na belce nad pulpitem. Z menu wybierz Dostosuj datę i czas. Z rozwijalnej listy zamiast Ręcznie wybierz Synchronizowanie zegara z serwerami w Internecie, kliknij Instaluj wsparcie dla NTP | Zastąp | Zamknij | Wybierz serwery. W okienku dialogowym wpisz ntp.icm.edu.pl i kliknij Dodaj.

Gotowe, możesz już zamknąć aplet - Ubuntu będzie regularnie synchronizowało czas komputera z czasem podawanym przez warszawski serwer ICM.

Porada 3: blokada katalogu roota

Jednym z najbardziej nieszczęśliwych kompromisów w Ubuntu są ustawienia dotyczące uprawnień. Spróbuj przeprowadzić następujący eksperyment: dodaj do systemu nowego użytkownika. Zaloguj się na jego konto, po czym kliknij Miejsca | Folder domowy | System plików *( po lewej stronie ) *| root. Przekonasz się, że Ubuntu w żaden sposób cię nie ogranicza. Każdy może wejść do katalogu administratora systemu i sprawdzić, co się w nim znajduje. Oczywiście odczytanie zawartości plików to inna para kaloszy, jednak nawet ujawnianie ich nazw to stanowczo za dużo.

Dlatego sugerujemy, byś tuż po instalacji zmienił domyślne uprawnienia katalogu /root 755 na 750 lub nawet 700. Jeśli po tej operacji odświeżysz okienko Nautilusa, przekonasz się, że przy katalogu root pojawił się charakterystyczny znak informujący o braku dostępu.

_ UWAGA! Nie możesz też pomylić uprawnień z szyfrowaniem. Plik z uprawnieniami 000 jest nieczytelny dla wszystkich prócz roota pod warunkiem, że nikt nie ma fizycznego dostępu do twojej maszyny. Jeśli zaś można z niej wymontować dysk albo zmusić do uruchomienia z bootowalnej dystrybucji Linuksa, modyfikacja uprawnień nic ci nie da. _

Porada 4: blokada startu innych systemów operacyjnych...

Zanim wystawisz swój komputer na pastwę rodzeństwa lub ciekawskich kolegów, powinieneś wykonać kolejną operację. Dzięki niej będziesz w stanie zablokować możliwość uruchomienia twego sprzętu z systemu, którego nie kontrolujesz, na przykład z bootowalnej dystrybucji Linuksa.

Przede wszystkim wejdź do BIOS-u i ustaw właściwą kolejność napędów. Maszyna powinna zawsze startować z dysku twardego i pod żadnym pozorem nie wolno jej sprawdzać innych opcji ( CD-ROM-u, klucza USB itp. ). Dlatego właśnie pierwszym urządzeniem rozruchowym ( "First boot device" ) powinien być HDD, a opcja "Try other boot devices" musi być wyłączona.

Aby nikt niepowołany nie zmodyfikował twoich ustawień, załóż w BIOS-ie hasło. Inni dostaną się do informacji zgromadzonych na dysku dopiero po zresetowaniu CMOS-u i uruchomieniu komputera z bootowalnej dystrybucji live lub też po zamontowaniu HDD do innej maszyny.

...oraz Porada 5: dodatkowe zabezpieczenie w menedżerze GRUB

Na wszelki wypadek warto również założyć hasło, które uniemożliwi innym wejście do twojego Linuksa oraz zapobiegnie przypadkowemu rozruchowi Windows znajdującemu się na innej partycji.

Wymyśliłeś hasło? W takim razie wpisz w linii poleceń ( Terminal ) grub-md5-crypt i podaj swoją tajną frazę. Następnie otwórz jako root plik /boot/grub/menu.lst i znajdź linię # password topsecret. Skasuj początkowy znak komentarza ( # ), a zamiast "topsecret" wpisz --md5 [wygenerowany skrót hasła], oczywiście bez cudzysłowów i nawiasów kwadratowych.

To jeszcze nie wszystko, na razie tylko uniemożliwiłeś intruzowi edycję plików konfiguracyjnych gruba przed uruchomieniem Linuksa. Jeśli chcesz całkowicie zablokować możliwość startu innych systemów operacyjnych, odszukaj linijki rozpoczynające się od "title" i wstaw pod nimi w nowej linii słowo lock.

Od tego momentu uruchomienie systemu, który zdecydowaliśmy się "zablockować", będzie wymagało wcześniejszego podania hasła. Porada 6: aktywacja mocniejszego algorytmu zabezpieczającego hasło

W Linuksie do tworzenia zaszyfrowania haseł użytkowników domyślnie stosuje się algorytm MD5 przyprawiony ponadto solą ( ang. salt ), czyli przypadkowym ciągiem znaków dodawanym do podanej przez nas frazy.

To dobre zabezpieczenie, ale istnieją lepsze - zamiast MD5 możesz skorzystać z Blowfisha, którego łamanie metodą siłową trwać będzie przynajmniej kilka razy dłużej. Z Blowfisha w domyślnej konfiguracji korzysta choćby OpenBSD.

Uruchom Aplikacje | Akcesoria | Terminal i wpisz w nim:
sudo apt-get install libpam-unix2.

Otwórz teraz w edytorze tekstowym pliki common-auth i common-password. Najwygodniej będzie ci skorzystać z poleceń:
sudo gedit /etc/pam.d/common-auth

sudo gedit /etc/pam.d/common-password

W obu plikach zamień słowo "pam_unix.so" na "pam_unix2.so". W common-password ponadto zamiast "md5" wpisz "blowfish".

Od tego momentu skrót hasła każdego nowego użytkownika będzie generowany za pomocą algorytmu Blowfish, który jest mniej podatny na złamanie niż MD5; człowiek, który posiada już konto w systemie, musi skorzystać z polecenia passwd - czyli po prostu musi zmienić hasło - aby jego hasło zostało zabezpieczone za pomocą Blowfisha.

UWAGA: w niektórych edycjach Ubuntu porada może powodować problemy, jeśli wykorzystujesz wygaszacz ekranu zabezpieczony hasłem.

Porada 7: wzmocniona brama, czyli zabezpieczanie demona SSH

Jeśli masz w domu więcej niż jeden komputer, niekiedy pojawia się potrzeba wejścia na sprzęt z Ubuntu z poziomu maszyny z Windows. Posłuży ci do tego aplikacja PuTTy ( odpowiednik klienta SSH ) lub WinSCP ( menedżer plików wykorzystujący protokół SSH ). Polecamy zwłaszcza tę drugą, gdyż pozwala na wyjątkową wygodę i szybkie przerzucanie dokumentów między systemami.

Jednak aby z skorzystać z PuTTy, na komputerze z Linuksem powinieneś najpierw zainstalować demona SSH. Operacja jest bardzo prosta, wystarczy wpisać w terminalu:

sudo apt-get install ssh
Jako że SSHd to nasłuchująca w sieci usługa - czyli potencjalna brama dla włamywacza - nie możesz jej tak po prostu zostawić. Wpisz w terminalu:

sudo gedit /etc/ssh/sshd_config

Oto opcje, których modyfikację powinieneś przynajmniej rozważyć:
- Port 22 - skanery zabezpieczeń sprawdzają ten port i nasłuchującą na nim wersję SSHd. Gdybyś zdecydował się na zmianę numeru portu, wybierz taki, który nie jest testowany przez NMap. Naszym zdaniem jednak tej wartości modyfikować nie warto.
- # ListenAddress :::: lub # ListenAddress 0.0.0.0 - adres ( interfejs ), na którym demon SSH będzie aktywny. Jeśli komputer z Linuksem jest stale włączony i stanowi bramę pomiędzy tobą oraz Internetem ( czyli ma więcej niż jeden interfejs sieciowy ), SSHd powinien nasłuchiwać jedynie na adresie wewnętrznym.
- PermitRootLogin yes - opcja, którą należy czym prędzej zmienić na no! W konfiguracji domyślnej logowanie roota przez sieć jest dozwolone, co może znacząco ułatwić intruzom próbę wtargnięcia do systemu metodą siłową.
- X11Forwarding yes - wpis, dzięki któremu możliwe jest zdalne uruchamianie aplikacji graficznych, w tym komunikatora, przeglądarki itp. W tym momencie nie musisz jej modyfikować, sprawdź najpierw, jak pracuje się z użyciem przeglądarki załadowanej na serwerze, która u ciebie wyświetla jedynie okno.

Jeżeli śledzisz fora dyskusyjne poświęcone Linuksowi, dostrzeżesz być może zalecenie zmiany parametru ServerKeyBits 768. Nie przejmuj się nim. ServerKeyBits dotyczy wyłącznie pierwszej wersji protokołu, dlatego w twoim wypadku modyfikacja opcji niczego nie zmieni - w Ubuntu SSH wykorzystuje domyślnie tylko protokół 2.Porada 8: usuwanie zbędnych kompilatorów

Wolisz instalować oprogramowanie z paczek czy ze źródeł? Mamy nadzieję, że to drugie... Przeciętny użytkownik komputera nie powinien nigdy usłyszeć słowa "kompilator" czy "kod źródłowy", bowiem taka wiedza jest mu całkowicie zbędna podczas pisania życiorysu w OpenOffice.org.

Podręczniki zabezpieczania Linuksa radzą wręcz wprost, by usunąć wszelkie niewykorzystane kompilatory i interpretery języków. Taki zabieg utrudni cyberwłamywaczowi przygotowanie skryptów lub programów za pomocą naszej maszyny.

Nie wnikając w dalsze szczegóły - po prostu wydaj polecenie:

sudo apt-get remove gdb gcc make

W wersji dla Ubuntu 6.06 lista obejmowała również dpkg-dev libc6-dev libstdc++5, jednak w 7.04 i 7.05 usunięcie tych składników może spowodować skasowanie środowiska graficznego. Tak czy siak nie musisz się martwić, gdyby okazało się, że gcc lub gdb jednak jest potrzebny. Zawsze możesz je z powrotem zainstalować.

Porada 9: uczynienie plików nietykalnymi

Pliki, które są kluczowe do działania systemu, powinny mieć atrybuty 600 ( polecenie chmod 600 nazwapliku ), by nie mogli do niego zajrzeć ciekawscy lub przypadkowi przechodnie. Jeżeli chcesz się dodatkowo upewnić, że nawet ty nie zmodyfikujesz ich przez przypadek, nadaj im atrybut niezmienności ( ang. immutable ):
chattr +i nazwapliku

Porada 10: dodatkowe narzędzia

Nasza przechadzka po zabezpieczeniach w Ubuntu dobiegła końca. Wcale jednak nie musisz w tym miejscu przerywać przygody. Spróbuj uruchomić Terminal i wpisać apt-cache search harden lub wpisz słowo "harden" w polu wyszukiwania Synaptic.

Wyświetli ci się informacja o zbiorach skryptów, za pomocą których możliwe jest dodatkowe zabezpieczenie Linuksa. W ich skład wchodzą m.in. bastille i tiger. Możesz z nich korzystać - podawane przez nie informacje są niezwykle cenne - o ile tylko będziesz pamiętał, że stanowią one wyłącznie zbiór programów, których funkcjonowanie trzeba bardzo dobrze rozumieć. Nie należy polegać na nich jako na jedynych doradcach w kwestii zabezpieczeń.

Udostępnij:
Wybrane dla Ciebie
Komentarze (0)