LINUX_Zabazepiczenia_PL.doc

(169 KB) Pobierz
LINUX - BHP

LINUX - BHP.

 

 

 

Miałem autentyczną rozmowę z amatorem-adminem, właścicielem małego serwerka opartego na Linuxie, który był w głębokim przeświadczeniu, że skoro system działa, to... nie został wyhakowany(!!!). Natrudziłem się trochę, zanim wyjaśniłem, że czasy prymitywnych włamań, po to aby formatować dysk się skończyły, a cudze serwery hakuje się, aby zrobić z nich zombi. Co to takiego? Ano na obcym komputerze, przy braku wiedzy właściciela instaluje się różne programy i z pokładu ofiary atakuje kolejne komputery w sieci, z tym że na konto ... wyhakowanego zombi.

 


 

Zabezpieczenie Twojego LINUXa musi odbywać się dwukierunkowo: zabezpieczenie przed intruzami od wewnątrz (domownicy, koledzy, użytkownicy kont mający bezpośredni dostęp do serwera) oraz od zewnątrz, czyli przed intruzami z sieci, internetu.

 
Aby podnieść bezpieczeństwo Twojego komputera pracującego pod Linuxem w sieci należy:

 

  1. Przyjąć do wiadomości, że można obronić się przed większością ataków z internetu, gdyż ich autorami są najczęściej niewyszkolone osoby, których cała wiedza ogranicza się do umiejętności odpalenia atakujacych skryptów (kiddie scripts, exploity). Dziennie mam kilka do kilkunastu identycznie wyglądających wpisów w plikach kontrolujących bezpieczeństwo systemu. Cały czas to samo, nudne i niegroźne. Najczęściej szukające plików windowsowych NT.

 
*     *     *

 

  1. Docenić rolę zabezpieczeń pozornie drobnych, które jednak w swojej liczbie mogą znacznie utrudnić atak i w konsekwencji zniechęcić intruza.

 
*     *     *

 

  1. Należy pilnować, aby na Twoim serwerze była zainstalowana najnowsza, stabilna wersja zarówno jądra systemu, jak i konkretnego oprogramowania. Aktualizację automatyczną (mając łącze z internetem) wykonasz: MANDRAKE CONTROL CENTER- SYSTEM- Zarządzanie Oprogramowaniem. W nowym panelu (w górnym lewym rogu) Configure a source wybierz TAK, Update the list of mirrors, OK (czekaj). Po paru minutach kliknij w Mandrake Update.
    Aktualizację ręczną wykonasz po ściągnięciu plików z witryny http://www.mandrakesecure.net/en/ftp.php i wydaniu polecenia rpm -Fvh *.rpm (będąc w katalogu z archiwum). Które pliki ściągnać? To proste - wykonaj wyżej opisana aktualizację automatyczną, zapisz w notatniku listę plików i... zaktualizuj ręcznie lub automatycznie (wg uznania :-)
    Uwaga: powyższy opis czynności dotyczył aktualizacji plików. Natomiast jeżeli nie masz w pobliżu osoby znającej się na aktualizacji jądra systemu - nie rób tego samodzielnie, gdyż źle wykonane obniża bezpieczeństwo i funkcjonalność całego systemu.

 
*     *     *

 

  1. Zabezpieczyć fizycznie komputer i nie lekceważyć zagrożenia wypływajacego ze strony różnych cwaniaczków, którzy współpracują z Tobą i mają fizyczny dostęp do komputera. Mogą oni np. uruchomić serwer z dyskietki zawierajacej np. jedna z minidystrybucji Linuxa (o minidystrybucjach możesz poczytać w magazynie CHIP 12/2001 oraz dodatkowym artykule na płytce CD z nr CHIP 1/2002 opisującym SDI pod Linuxem). Minidystrybucje do ściągnięcia są tutaj.

Należy więc:

o        Zamykać na klucz pomieszczenie z komputerem.

o        Ustawić BIOS tak, aby system startował wyłącznie z dysku twardego i co za tym idzie zainstalować bootloadera na dysku. Aby utrudnić przestawienie BIOSu należy oczywiście zabezpieczyć go hasłem. Uwaga: istnieja tzw. hasła uniwersalne dla BIOSów poszczególnych producentów (Award, Ami itp.). Pełna listę takich haseł znajdziesz tutaj). Jeżeli link nie zadziała to możesz pobrać kopię tamtej witryny z moich rezerw. Pamiętaj, że włamywacz może też odkręcić obudowę, wyjać bateryjkę (lub przestawić zworkę) i ... skasować hasło!!!. Ta metoda zostawi jednak ślady włamania w postaci braku hasła na BIOSIe serwera :-)

o        Usunąć z komputera czytnik CD-ROM oraz flopka 1,44.

 
*     *     *

 

Zabezpieczyć bootloadera LILO (dotyczy serwera startujacego z dysku, nie z dyskietki) poprzez:

o        dopisanie do pliku /etc/lilo.conf odpowiednich linii:

§         PASSWORD=Twoje hasło oraz

§         RESTRICTED zgodnie z poniższym przykładem:

boot=/dev/hda1 (jeżeli bootujesz z hda1)
prompt
timeout=50
image=/boot/vmlinuz
label=linux
root=/dev/hda2
read-only
password=Twoje hasło
restricted

Parametr RESTRICTED ma na celu złagodzenie wymagań LILO: podanie hasła będzie konieczne jedynie w przypadku, gdy podczas ładowania do systemu przekazywane będą parametry.
Pamiętaj, by po każdej edycji pliku lilo.conf wydać komendę lilo, która zaktualizuje ustawienia bootloadera.
W Mandrake 8.x - hasło możesz łatwo założyć pod KDE (MANDRAKE CONTROL CENTER).

o        Zadbanie o to, aby dostęp do pliku /etc/lilo.conf miał wyłącznie administrator, poprzez polecenie: chmod 600 /etc/lilo.conf

o        Zastosowanie dodatkowego zabezpieczenia poprzez uniemożliwienie zapisywania zmian wprowadzanych do tego pliku. Służy do tego komenda: chattr +i /etc/lilo.conf


Jeśli będziesz chciał później coś w nim zmienić, wystarczy wpisać: chattr -i /etc/lilo.conf

 
*     *     *

 

  1. Aby zabezpieczyć się przed domownikami i uniemożliwić wykonanie restartu [Alt]+[Ctrl]+[Del], należy wyedytować plik /etc/inittab i zamienić linię:


ca::ctrlaltdel:/sbin/shutdown -t1 -a -r -now
na np.:
ca::ctrlaltdel:/bin/echo "Po co wciskasz restart komputera?!?"

Po zastosowaniu powyższych zmian naciśnięcie stosownych klawiszy spowoduje tylko wypisanie odpowiedniego komunikatu. Oczywiście spytasz się: no i co z tego, że nie będzie można teraz restartować komputera??? Ano nie wiesz, że taki restart przy pomocy kombinacji klawiszy CTRL+ALT+DELETE (lub zwyczajnie poleceniem halt) jest pierwszym krokiem do przejęcia praw roota, mimo że nie podasz hasła!!! Jak to się robi? Czytaj str. 14 CHIP Special 3/2001: "Czasami jednak może się zdażyć, że zapomnimy hasło. W takim przypadku powinniśmy przeładować system (CTRL+ALT+DELETE) i po wyświetleniu zachęty boot: wpisać parametr single W efekcie system uruchomi się w trybie jednoużytkownikowym, udostępniajac nam konto root, mimo że nie podaliśmy hasła. Teraz po wydaniu polecenia passwd będziemy mogli podać nowe hasło dla administratora."


Zabezpieczenie komputera przed możliwościa restartu jest ważne z innych przyczyn. Można zmienić sposób montowania partycji dysku (np. z archiwaliami) w pliku /etc/fstab i nie mając uprawnień do polecenia mount, umount - spróbować restartować system. Da to zmienione (a nie zawsze zgodne z intencją administratora) parametry montowanych partycji. Niestety w KDE (czyli w okienkach) każdy zalogowany użytkownik miał domyślnie pełne prawo do restartowania systemu. Problem restartu pod KDE został rozwiazany w Mandrake 8.2, 9.0 i po wybraniu wysokiego (dla serwerów) poziomu bezpieczeństwa - ani w powłoce tekstowej, ani pod KDE zwykły użytkownik nie może restartować systemu.

 
*     *     *

 

  1. Hasło - to newralgiczna część bezpieczeństwa systemu. Należy często je zmieniać (zwłaszcza hasło administratora). Podczas tworzenia hasła należy bezwzględnie kierować się poniższymi zasadami:

o        Używać mieszaniny liczb, znaków specjalnych oraz liter wielkich i małych

o        Używać przynajmniej ośmiu znaków

o        Używać liter i liczb, które wydaja się przypadkowe, a są łatwe do zapamiętania dla właściciela

o        Nie używać nazw osób lub rzeczy

o        Nie używać żadnego słowa polskiego, obcego lub skrótu

o        Nie używać żadnej informacji zwiazanej z kontem (nazwa użytkownika, inicjały, numer telefonu, data urodzin, numer pokoju itp.)

o        Nie używać kolejnych klawiszy na klawiaturze (np. qwerty)

o        Nie używać żadnej z wyżej wymienionych rzeczy wypisanych w odwrotnej kolejności, wielkimi literami lub ukrytej w inny sposób

o        Nie używać haseł składających się z samych cyfr

o        Nie używać przykładowego hasła znalezionego w jakiejkolwiek publikacji


Przestrzegajac tych zasad unikniesz problemów podczas tzw. ataku słownikowego lub siłowego.

 
*     *     *

 

  1. Sprawdzić, czy kluczowe katalogi mają właściwe prawa dostępu.

Posiadaczy Mandrake 9.0 zapraszam tutaj (357KB). Utworzyłem też plik w formacie *.doc (164KB) zawierający tabelkę z wykazem praw własności dla wersji: klienta, serwera i maksymalnego bezpieczeństwa (łącznie z przyblokowaniem usług serwerowych). Jeżeli masz wątpliwości, czy Twój Mandrake 9.0 ma prawidłowe ustawienia plików i katalogów to warto poczytać.

Poniżej przedstawiłem skróconą w porównaniu z w/w dokumentem *.doc propozycję praw dla Mandrake 8.1 (wersja serwerowa).

Wejdź jako root do katalogu głównego / i wydaj polecenie ls -la . Porównaj swój wydruk (na ekranie) do poniższego ustawienia. Uwaga, moja propozycja jest dosyć restrykcyjna i może w wyjątkowych okolicznościach zablokować pracę jakiegoś demona. Przed wprowadzaniem zmian zapisz więc sobie na kartce pierwotne ustawienia.

/archiwum   d--- --- --- root.root
/bin   drwx --x --x root.root
/boot   drwx --- --- root.root
/dev   drwx --x --x root.root
/etc   drwx --x --x root.adm
/home   drwx r-x --x root.adm
/initrd   drwx r-x r-x root.root
/lib   drwx r-x --x root.adm
/lost+found   drwx r-x r-x root.root
/mnt   drwx r-x --- root.adm
/opt   drwx r-x --x root.root
/proc   dr-x r-x r-x root.root
/root   drwx --- --- root.root
/sbin   drwx r-x --x root.adm
/swap   drwx r-x r-x root.root
/tmp   drwx rwx -wt root.root
/usr   drwx r-x --x root.adm
Uwaga: wewnątrz /usr katalogi mają drwxr-x--x poza domyślnie ustawionymi /usr/doc i /usr/man)
/var   drwx r-x r-x root.root
Uwaga: wewnątrz /var podkatalog /var/log musi posiadać drwx --x --x
Uwaga: wewnątrz /var podkatalog /var/portsentry powinien posiadać drwx --- ---
Uwaga: wewnątrz /var pozostałe podkatalogi posiadają drwx r-x r-x (nie zwracamy uwagi na tmp, lock, catman, apache-mm, które można zostawić w zastanych opcjach)

Zaleca się, aby tylko root miał pełne prawa dostępu do następujących katalogów:
/etc , /var/log/ , /sbin , /lib , /boot, /root oraz ew. /archiwum
Natomiast grupa oraz pozostali użytkownicy mogą mieć jedynie prawo wykonywania, czyli wejścia (i uruchomienia pliku) bez prawa wyświetlania zawartości katalogu. Takie prawa ustalane są poleceniem chmod 711 /nazwakatalogu

Należy się w tym miejscu minimum informacji o przeznaczeniu katalogów. Przypominam, że zajmuję się dystrybucją Mandrake.

o        /archiwum - bardzo przydatnym jest, aby na etapie dzielenia dysku (przed instalacją systemu) wydzielić osobną partycję 1-5 GB na archiwum. Oczywiście trzeba to zrobić ręcznie, gdyż instalator Mandrake nie utworzy /archiwum automatycznie ;-)

o        /bin - miejsce umieszczenia plików wykonywalnych.
Patrz też /usr/bin oraz /usr/local/bin

o        /boot - zawiera jądro (Kernel) systemu.

o        /dev - miejsce przechowywania plików specjalnych umożliwiajacych montowanie urządzeń (np. dysków, partycji, dyskietek, CD-ROMU). Po zamontowaniu ich - będzie można je uruchomić w katalogu /mnt

o        /etc - m...

Zgłoś jeśli naruszono regulamin