LINUX Zabazepiczenia PL


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.

 

0x01 graphic

 

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:

    • Zamykać na klucz pomieszczenie z komputerem.

    • 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 :-)

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

 
*     *     *

 

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

    • 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).

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

    • 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:

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

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

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

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

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

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

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

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

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

    • 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.

    • /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 ;-)

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

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

    • /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

    • /etc - miejsce umieszczenia plików konfiguracyjnych

    • /home - katalogi i pliki użytkowników. Tu znajdują się także dane z prywatnych witryn www i ftp.

    • /initrd - nie wiem co to. Katalog powstał automatycznie i... jest u mnie pusty.

    • /lib - miejsce umieszczenia bibliotek współdzielonych *.so. W Windowsie ich odpowiednikami są pliki *.dll.
      Patrz też /usr/lib oraz /usr/local/lib

    • /lost+found

    • /mnt - po zamontowaniu urządzenia np. dyskietki z /dev/fd0 możemy je używać uruchamiając urządzenie w /mnt/floppy

    • /opt - rezerwowe miejsce przechowywania dużych programów. Przykładem jest Netscape 4.8, który domyślnie tu chce się zainstalować. Dzięki temu możemy innego Netscape zainstalować w np. /usr/local/netscape :-)

    • /proc - zawiera pliki i katalogi, w których jądro przechowuje dane. Plik kcore (750) zajmuje się zasobami pamięci systemu i zawiera hasła(!), plik cpuinfo - dane o procesorze, version - dane związane z jądrem systemu (numer, nazwa, data kompilacji), pci - informacje o urządzeniach na PCI.

    • /root - katalog użytkownika root. Tutaj są jego prywatne pliki, program pocztowy itp.

    • /sbin - miejsce przechowywania plików administrujacych systemem.
      Patrz też /usr/sbin

    • /swap - partycja wspomagająca kości pamięci (coś na styl pliku wymiany z Windowsa).

    • /tmp - jak sama nazwa wskazuje, to miejsce przechowywania plików tymczasowych. Literka t w miejscu prawa do uruchomienia (z prawej-krańcowej strony) oznacza bit lepkości.

    • /usr - główne miejsce instalowania plików programów.
      Patrz też: /usr/share, /usr/local/share - czyli miejsca przechowywania plików z dodatkowymi plikami dużych programów.
      Patrz też: /usr/man, /usr/local/man, /usr/info, /usr/local/info - czyli pliki z pomocą.
      Patrz też: /usr/include, /usr/local/include - czyli pliki nagłówkowe dla kompilatora C, dotyczą odpowiednio bibliotek w /usr/lib i /usr/local/lib.

    • /var - miejsce przechowywania logów systemowych oraz głównej witryny www (apache) i ftp (proftpd).


Polecam wyśmienitą stronkę o plikach, katalogach itd. http://www.gabo.hi.pl/linux/pliki.htm

 

W Mandrake 9.0 można łatwo ustalić prawidłowe prawa do katalogów. W powłoce tekstowej wpisz jako root msec 4 (ustalisz czwarty poziom, czyli dla serwerów).

Uwaga: jeżeli zainstalowałeś Mandrake 9.0 i wybrałeś podczas instalacji PODWYŻSZONY(4) - dla serwerów POZIOM BEZPIECZEŃSTWA, to podczas KAŻDEGO restartu - system wyzeruje (między innymi) prawa do newralgicznych katalogów, zapewniając najwyższe bezpieczeństwo. Niestety, przy okazji zablokuje niechcąco np. użytkowników prywatnych z własnymi kontami www, ftp (trzeba wtedy wydać jako root polecenie chmod 711 /home/antek - ręcznie lub poprzez plik /etc/rc.d/rc.local). Przeczytaj moją stronką o POZIOMACH BEZPIECZEŃSTWA.

Pamiętaj o błędzie KDE w Mandrake 8.1 - samo klikniecie w napis MADRAKE CONTROL CENTER- BEZPIECZEŃSTWO zablokuje SDI-HISa.

 
*     *     *

 

  1. Zastosować funkcję haseł ukrytych.

Wyjaśnienie: w systemie Linux hasła tradycyjnie przechowywane są w postaci zaszyfrowanej w pliku /etc/passwd. Z tego pliku korzystają często programy, więc jego prawa dostępu pozwalają na odczyt wszystkim użytkownikom. Istnieje jednak możliwość zastosowania systemu haseł ukrytych, które znajdują się w osobnym pliku /etc/shadow, do którego dostęp ma jedynie administrator. Jeżeli w Twoim systemie nie jest wykorzystywana funkcja haseł ukrytych, użyj poleceń:

    • pwconv


oraz

    • grpconv

Przekonwertujesz w ten sposób hasła znajdujące się w plikach /etc/passwd oraz /etc/group do postaci ukrytej w plikach /etc/shadow oraz /etc/gshadow.
Uwaga: w nowych dystrybucjach LINUXA ten sposób zabezpieczania haseł jest już standardowo instalowany.

 
*     *     *

 

  1. Zastosować opcję umożliwiającą używanie haseł długich.

Wyjaśnienie: standardowa, maksymalna długość hasła w systemie to pierwotnie 8 znaków. Może być także krótsze, w zależności od ustawień w pliku /etc/login.defs. Aby móc używać haseł dłuższych, należy zastosować algorytm szyfrowania MD5. Wiele dystrybucji ma tę opcję włączoną automatycznie, a jeżeli tak nie jest - możesz to zmienić poprzez edycję pliku /etc/login.defs wstawiając linię:

"MD5_CRYPT_ENAB yes"

W systemie Red Hat i Mandrake możesz w tym celu skorzystać z polecenia authconfig .
Uwaga: w nowych dystrybucjach LINUXA ten sposób zabezpieczania haseł jest już standardowo instalowany.

 
*     *     *

 

  1. Pamiętać o systematycznym usuwaniu pliku .bash_history (lub jego zawartości) znajdującego się w Twoim katalogu domowym (np./home/antek/.bash_history) oraz /root/.bash_history , gdyż istnieje prawdopodobieństwo, że może się w nim znaleźć Twoje hasło! Zapytasz jak? Jeżeli nie umiesz bezwzrokowo klepać po klawiaturze, a śpieszysz się, to w chwili nieuwagi zamiast polecenia np. su wpiszesz bezmyślnie od razu hasło roota. Zamiast sprawdzić na monitorze co wpisałeś - wciskasz ENTER... i polecenie (w postaci tekstu hasła) utrwalone zostało w pliku /home/antek/.bash_history
    Plik ten może być automatycznie usuwany w chwili wylogowywania się z systemu, jeżeli dodasz do pliku .bash_logout w katalogu domowym wiersz:
    rm -f $HOME/.bash_history

Wyjaśnienie: kropka przed nazwa pliku oznacza, że ma on atrybut ukrycia. Dla własnego bezpieczeństwa sprawdź, czy wpis w pliku .bash_logout działa. Jeżeli nie (a z przykrością muszę stwierdzić, że u mnie nie zadziałało), to po prostu ręcznie usuwaj plik .bash_history lub co lepsze edytuj go i usuwaj zawartość. Jeżeli używasz MC, to sprawdź zawartość katalogu .mc

Przeglądaj regularnie pliki zapisujące wydawane polecenia. Sprawdzaj też pliki tego typu w katalogu /root ;)

 
*     *     *

 

  1. Poziom bezpieczeństwa pracy w LINUXIE ustalamy nie tylko w czasie jego instalacji, eksploatacji, ale także (o czym niektórzy zapominają) na etapie dzielenia dysku, podczas przydzielania jego części poszczególnym tzw. PUNKTOM MONTOWANIA i poprzez wybranie sposobu montowania partycji. Tutaj poruszamy się po terenie nieznanym użytkownikom Windows 9x, którzy na dobra sprawę mogli na całym dysku założyć 1 dużą partycję (o ile BIOS nie robił wstrętów) i normalnie pracować. Jednak w systemach sieciowych LINUX, WINDOWS NT, NOWEL itp. należy zwracać szczególna uwagę na bezpieczeństwo i usuwać zagrożenia gdzie się tylko da :-)

Proponuję podzielić dysk na partycje z uwzględnieniem przeznaczenia głównych systemów plików:

    • PARTYCJA FAT32 pod Windows [Partycja podstawowa widziana jako C:\ , która nie przekracza wielkościa 1024 cylindra (np. max do 900 cylindra).
      Proponowana wielkość partycji dla przykładowego dysku 15 GB = 25% czyli ok. 3,7GB.]

    • / [KATALOG GŁÓWNY zawiera przede wszystkim skrypty startowe. Uwaga: ze względu na bezpieczeństwo powinna to być partycja wydzielona wyłącznie na Katalog Główny, natomiast ze względu na ograniczenia LILO musi się zmieścić w pierwszych 1024 cylindrach.
      Proponowana wielkość partycji dla przykładowego dysku 15 GB = 3% czyli ok. 400-500 MB (minimum 100MB).]

    • Partycja SWAP czyli część dysku pełniaca funkcję podobna do windowsowego Pliku Wymiany (win386.swp) .
      Ustal wielkość partycji na 128MB i ... nie będę nic więcej wyjaśniał, bo szkoda czasu.

    • /usr [Miejsce przeznaczone na instalowane programy - coś na styl Program Files z Windows. Jeżeli dasz tutaj zbyt mało miejsca to po jakimś czasie zapchasz partycję i będziesz musiał reinstalować LINUXA (aby założyć na nowo partycje) lub usuwać zbędne programy.
      Proponowana wielkość partycji dla przykładowego dysku 15 GB = 20% , ale nie więcej niż 3-4 GB.]

    • /home [Miejsce na katalogi i pliki użytkowników - coś podobnego do windowsowych Moich Dokumentów. Uwaga: jeżeli przewidujesz włączenie usług serwerowych www dla każdego użytkownika osobno, to w katalogu home znajda się (co oczywiste) pliki witryn www (drugim takim miejscem jest katalog /var/www/html/). Dlatego namawiam do wydzielenia osobnej partycji dla katalogu /home
      Jeżeli utworzysz osobna partycję dla systemu plików /home to uchronisz się przed konsekwencjami zapchania dysku twardego danymi prywatnymi Twoich użytkowników. Jakimi konsekwencjami zapytasz? Ano spróbuj uruchomić SYSTEM gdy CAŁY dysk będzie zapełniony :-)
      Proponowana wielkość partycji dla przykładowego dysku 15 GB = 35% czyli ok. 5 GB.]

    • /tmp [Katalog /tmp w LINUXIE ma szczególne prawa: mogą w nim pracować wszyscy użytkownicy, gdyż ma prawa takie jak po wydaniu polecenia chmod 777 /tmp (wejdź do katalogu głównego / i wydaj komendę ls -la ,a zobaczysz, że jest to jedyny katalog ze wszystkimi prawami). Proponowana wielkość partycji dla przykładowego dysku 15 GB = 5% czyli ok. 750 MB.]

    • /var [Miejsce na pliki serwera www, ftp oraz raporty. Proponowana wielkość partycji dla przykładowego dysku 15 GB = 5% czyli ok. 750 MB.]

    • /archcopy [Utwórz partycję, na której będziesz przechowywał kopie bezpieczeństwa. Nadaj jej restrykcyjne atrybuty i sposób montowania. Proponowana wielkość partycji dla przykładowego dysku 15 GB = 5% czyli ok. 750 MB] . Dodatkowe wyjaśnienie: jeżeli podczas zakładania partycji utworzysz dysk i nadasz mu nazwę (poprzez wpisanie PUNKTU MONTOWANIA) to Twój Linux w czasie instalacji sam utworzy katalog o tej samej nazwie. Zobaczysz go po zainstalowaniu systemu i wydaniu polecenia cd / oraz ls -la

Oczywiście powyższe propozycje podziału dysku są przykładowe. Jeżeli będziesz instalował wiele dużych programów, uruchomisz serwery FTP, http i sam będziesz jedynym użytkownikiem - to obraz dysku będzie wygladał inaczej. Trzeba jednak tutaj podkrelić, że jeżeli zdecydujesz się na instalację serwera Apache (ewentualnie proftpd) i udostępniania usługi http (lub ftp), to powinieneś założyć osobne partycje na katalogi /var/www/ oraz /vat/ftp/ . Zabezpieczysz w ten sposób swój system. Nadmierny podział dysku ma też swoje wady - możesz szybko zapchać jedna partycję i zablokować pracę komputera w sytuacji, gdy na innej części dysku będziesz posiadał zbędną nadwyżkę.
 
Aby sprawdzić stopień zapełnienia poszczególnych partycji, wybierz pod KDE: -K- APLIKACJE- MONITOROWANIE- WOLNA PRZESTRZEŃ NA DYSKACH (View Disk Usage). Wykonuj regularne kontrole - będziesz wiedział jak podzielić (w przyszłości) dysk twardy.

 
*     *     *

 

Teraz kiedy ustaliłeś ilość, wielkość oraz punkty montowania poszczególnych partycji możesz (po zakończeniu instalacji) wybrać sposób montowania dysków podczas startu systemu. W tym celu wyedytuj plik etc/fstab i oceń jego zawartość. Każdy wiersz opisuje jeden system plików.

Przykład wpisu:

/dev/hda1 /mnt/windows vfat defaults 0 0

Nas interesuje czwarty segment, w którym zapisano sposób montowania dysku. Do wyboru mamy:

    • defaults (wszystkie opcje są włączone: zapis, czytanie, quota, SUID)

    • noquota (wyłącza opcję quota)

    • quota (włącza opcję quota)

    • nosuid (wyłącza dostęp do atrybutu SUID zapisanego w plikach należacych do tego katalogu-dysku)

    • suid (włącza opcję SUID)

    • ro (tylko do odczytu)

    • rw (do zapisu i odczytu)

Aby zwiększyć stopień bezpieczeństwa można:

    • Zmienić zapis na nosuid w dysku do archiwaliów, dysku obsługujacym konta użytkowników, usługi serwerowe typu www.

    • Ustalić sposób montowania partycji DOSowych (np. z Windowsem): czy montowanie ma odbywać się w trybie DEFAULT ze wszystkimi tego konsekwencjami, czy z opcją TYLKO DO ODCZYTU? Jeżeli nie dbasz o bezpieczeństwo, a wygodę użytkowników to możesz zastapić wpis default na noauto,user,rw (co oznacza, że partycja nie jest montowana automatycznie, a prawo do odczytu i zapisu ma użytkownik, który ją zamontował plus root).

    • Radykalnie zabezpieczyć partycję z archiwaliami poprzez usunięcie montowania tego dysku podczas startu LINUXA (kasując wiersz z tym dyskiem w pliku etc/fstab - zrób wcześniej kopię pliku!) i wydaniu polecenia umount /archcopy (lub restarcie komputera). Jeżeli dodatkowo usuniesz pusty już, bo odmontowany katalog /archcopy to nikt z internetu nawet nie domyśli się, że posiadasz na dysku tajne archiwum. Powtórny zapis na ten dysk lub jego odczyt będzie możliwy oczywiście dopiero po utworzeniu pustego na razie katalogu /archcopy i wprowadzeniu usuniętego wiersza do pliku /etc/fstab (rozumiesz więc po co proponowałem wykonanie kopii). Teraz jedynie zostało wydanie polecenia mount /archcopy lub restart komputera. Jedynie osoba mająca bezpośredni dostęp do komputera może zauważyć, że zamiast deklarowanych w BIOSIE 30 GB jest ... np. 25!!! stąd ważne jest zwykłe hasłowanie BIOSU i fizyczne zabezpieczenie serwera.
      Co trzymać w takim archiwum? Np. pliki aktualizacyjne system, kopie witryn www użytkowników, kopie plików użytkowników, "sejwy" gierek itp. Oczywiście natychmiast po skopiowaniu plików należy usunąć linię archcopy w pliku /etc/fstab i odmontować katalog /archkopy (lub zrestartować komputer). Wykluczone powinno być używanie archiwum w trakcie połączenia z siecią, internetem.

    • Przykład uprawnień dostępu do partycji w pliku /etc/fstab (CHIP 6/2002 str. 162-167):

/usr   defaults,ro,nodev
/var   dafaults,nodev
/tmp   defaults,nodev,nosuid,noexec
/home   rw,nosuid,nodev,exec,auto,nouser,async

Jeżeli dobrze się przyjrzałeś, to powyższa propozycja jest mocno restrykcyjna, w sam raz na serwer. Należy pamiętać by przed instalowaniem programów, a nawet przed wykonaniem zwykłego uaktualnienia plików zmienić wpis:

/usr   defaults,ro,nodev
na
/usr   defaults

i po zakończeniu prac znowu zabezpieczyć system. W przeciwnym wypadku przeczytasz enigmatyczny komunikat, informujący że instalacja nie doszła do skutku (bez wskazania przyczyny). Pamietaj, że po wprowadzeniu zmian w pliku /etc/fstab w linii partycji /usr trzeba restartować system.

Przykładowy plik /etc/fstab pobrany z Mandrake 9.0.

 
*     *     *

 

  1. Kiedy zakończysz instalację systemu i programów - sprawdź, w jakich plikach masz ustawione bity SUID, SGID (SetUID, SetGID). Określają one prawa użytkownika (SUID) lub grupy (SGID) do wykonania programu z prawami roota. Nie jest wskazane, abyś samodzielnie (w trakcie nauki) nadawał takie uprawnienia, gdyż dla wprawnego włamywacza nawet gra działajaca z prawami administratora może pomóc w przejęciu praw roota.

Odrobina wyjaśnień: czasami zdarza się, że trzeba uruchomić program, który do poprawnego działania wymaga uruchomienia przez roota. Aby umożliwić innym użytkownikom uruchamianie takiego programu (np. ping) trzeba uaktywnić prawo dostępu SUID zleceniem chmod 4755 /bin/ping (zwróć uwagę na liczbę 4). Natomiast SGID działa nieco inaczej: programy opatrzone tym prawem dostępu są wykonywane z prawami dostępu grupy do której należą (zamiast praw grupy, w skład której wchodzi użytkownik je uruchamiający). Prawo SGID jest oznaczane cyfrą 2 i zlecenie nakładające je wygląda następująco: chmod 2755 /usr/local/backups/plik . Po wykonaniu listowania (zleceniem ls -l) zobaczymy w miejscu praw uruchomienia (x) literkę s. Prawa dostępu do plików SUID zawierają s tam, gdzie powinno znajdować się pierwsze x, a w przypadku plików SGID literka s, zamiast drugiego x.

Warto usunąć bity SUID, SGID wobec plików, które nie muszą działać z prawami roota. Ale mam jedną uwagę: jeżeli nie instalowałeś gierek, to dajac WYSOKI poziom bezpieczeństwa (w trakcie instalacji) ustaliłeś automatycznie na minimalnym poziomie obecność tych bitów w systemie :)

Sprawdzenie obecności bitów SUID
find / -type f -perm -4000 -exec ls -l '{}' \;|more
lub po prostu
find / -perm +4000

Sprawdzenie obecności bitów SGID
find / -type f -perm -2000 -exec ls -l '{}' \;|more
lub po prostu
find / -perm +2000

Spróbuj usunąć flagi SUID, SGID poleceniem:
chmod -s nazwa_pliku (wydane z pozycji katalogu w którym znajduje się plik) - jednoczesne usunięcie bitów SUID, SGID
chmod u-s nazwa_pliku - usunięcie bitu SUID
chmod g-s nazwa_pliku - usunięcie bitu SGID

Obserwowałem mój system pod względem obecności bitów SUID i stwierdziłem, że są one niezbędne na partycji montowanej jako /usr (konkretnie w podkatalogach: /usr/bin , /usr/lib , /usr/sbin). Co to oznacza w praktyce? Że można zaryzykować usunięcie ich z plików mieszczących się w innych katalogach np. /var , /var/www , /var/ftp.

Jako ciekawostkę podam treść e-maila (z dnia 04.09.2002) od Mandrake-Security, w którym proponuje się użytkownikom wersji 7.2-8.2 usunięcie bitu setuid z pliku linuxconf poleceniem chmod u-s /bin/linuxconf

(...) by default, Mandrake Linux ships linuxconf as setuid root in versions 7.2 through 8.2. Successful exploitation will yield a root shell. MandrakeSoft recommends that all users take steps and remove the setuid bit from linuxconf. This can be done by issuing, as root, the following command:
chmod u-s /bin/linuxconf . For users of Linux-Mandrake 7.2, the correct location of the linuxconf executable is /sbin(...)

Jeżeli jesteś zainteresowany otrzymywaniem listów z ostrzeżeniami i uwagami (musisz znać j. angielski) kliknij tutaj (i wybierz subscribe to one of the mailing lists provided).

 
*     *     *

 

  1. Pamiętać o możliwości zabezpieczenia ważnych plików poprzez założenie tzw. bitu lepkości (ang. sticky) na wrażliwe katalogi (np. /tmp) poleceniem chmod -t /tmp . Od teraz TYLKO właściciel pliku będzie mógł go usunąć. Na wydruku polecenia ls -la taki katalog ma t zamiast standardowej krańcowej-prawej litery x.

 
*     *     *

 

  1. Pamiętać o zabezpieczeniu systemu firewallem (ścianą ogniową). Uwaga: KDE zawiera błędy, które po skonfigurowaniu firewalla przez MANDRAKE CONTROL CENTER skutkują blokowaniem HISa ew. sieci domowej. Dlatego proponuję następujące kroki:

    • Mandrake 8.1 - zamiast MANDRAKE CONTROL CENTER- BEZPIECZEŃSTWO- FIREWALL wybierz w powłoce tekstowej (jako root) drakfirewall (/usr/sbin/drakfirewall ew. mcc) oraz doszlifuj ustawienia edytując plik /etc/rc.d/rc.firewall*2.2

    • Mandrake 9.0 - można bez obaw użyć MANDRAKE CONTROL CENTER- FIREWALL (lub to samo, ale poprzez plik /usr/sbin/drakfirewall ew. mcc). Pamiętaj, aby po zakończeniu konfiguracji firewalla powtórzyć konfigurację udostępniania (w MANDRAKE CONTROL CENTER lub poleceniem drakgw). Niestety standardowe pliki rc.firewall* nie istnieją, gdyż projektanci Mandraka zastosowali nowe narzędzie konfiguracyjne shorewall.

 
*     *     *

 

  1. Zmniejszyć liczbę pamiętanych poleceń - poprzez edycję pliku /etc/profile, np.:

HISTFILESIZE=15
HISTSIZE=15
export HISTFILESIZE HISTSIZE

 
*     *     *

 

  1. Program PortSentry wykrywa próby skanowania portów, automatycznie tworzy wpis do /etc/hosts.deny (ALL: 158.68.207.12) po wykryciu intruza i chroni przed atakami większości skanerów. Obecnie nie spełnia już takich zadań jak kiedyś, gdyż rozwinięto i uszczelniono programy typu firewll. Ja osobiście lubię PortSentry, ponieważ tworzy przejrzyste raporty o próbach ataków i wskazuje kto oraz na jakim porcie co próbował... Opisuję tutaj konfigurację dla Mandrake 8.1 (w innych dystrybucjach umiejscowienie plików może być inne). Uwaga: program PortSentry znajduje się na instalce CD Mandrake 8.1, nie ma go za to na instalce Mandrake 8.2 i 9.0.


 

    • Plik /etc/portsentry/portsentry.conf umożliwia konfigurację programu. Potrzebna jest jednak znajomość j. angielskiego ;-) Na pocieszenie pragnę zapewnić, że podczas instalacji MANDRAKE 8.1 wszystkie opcje PORTSENTRY są od razu ustawione tak jak należy.

    • Plik /etc/portsentry/portsentry.modes ustala tryb uruchamiania:

BASIC... (podstawowe)
STEALTH... (z punktu widzenia skanujacego - port jest martwy)
ADVANCED... (j.w. ale zamiast nasłuchiwać na wybranych portach, robi to na całym zakresie portów TCP/UDP - uwaga: jeżeli masz słaby komputer np. P75 lub P100, to taki wybór zwiększy co prawda bezpieczeństwo, ale może spowolnić inne procesy).

    • Plik /etc/portsentry/portsentry.history zawiera listę komputerów, które atakowały Twoja stację. W dystrybucjach innych niż Mandrake 8.1 może być umieszczony w katalogu /var/log/portsentry/

    • Pliki /etc/portsentry/always_ignore oraz /etc/portsentry/portsentry.ignore zawierają listę komputerów, którymi program portsentry się nie zajmuje (czyli nie będzie generował wpisów do /etc/hosts.denny w przypadku wykrycia podejrzanej działalności).

    • Plik /etc/portsentry/portsentry.blocked.atcp oraz portsentry.blocked.audp zawiera listę obecnie zablokowanych komputerów. Oczywiście początek nazwy pliku (tutaj atcp oraz audp) jest zależny od opcji wybranej w pliku portsentry.modes . W innych dystrybucjach niż MANDRAKE 8.1 pliki *.blocked.* mogą być umieszczone w katalogu /var/log/portsentry/
      Mam tutaj jedną uwagę: dane o zablokowanych komputerach są utrzymywane w plikach *.blocked.* tylko na czas aktualnej sesji. Po restarcie systemu następuje oczyszczenie listy.

Zobacz jakie komputery są na stałe zablokowane edytując plik /etc/hosts.deny (lista komputerów zaufanych znajduje się w pliku /etc/hosts.allow).

 
*     *     *

 

  1. Jeżeli zdecydowałeś się na aktywizację usług serwerowych na swoim LINUXIE, to zacznij od edycji plików: /etc/hosts.allow i /etc/hosts.deny. W /etc/hosts.allow określ "zaufane" komputery, natomiast w /etc/hosts.deny zabroniony dostęp.

*

Wstaw wpis do pliku /etc/hosts.deny
ALL: ALL
W ten sposób nikt nie ma dostępu do (bezpośredniego) do serwera nawet aplikacja działajaca na serwerze wobec serwera (czytaj poniżej).

Z powodu ewentualnych kłopotów w testowaniu ustawień wskazane odblokować samego siebie (czyli serwer działający na serwerze w tzw. pentelce) i wpisać:
ALL:ALL EXCEPT localhost:DENNY
lub
ALL:ALL EXCEPT 127.0.0.1:DENNY
Oczywicie localhost lub 127.0.0.1 to Twój serwer, który w ten sposób akceptuje samego siebie. Trochę to skomplikowane nie? :-)))

*

Teraz w /etc/hosts.allow wpisz swoje zaufane maszyny np.:


ALL:192.168.0.2
ALL:192.168.0.22
ALL:192.168.0.4
in.telnet:192.168.0.3

W powyższym przykładzie wszystkie komputery z IP 192.168.0.2, 22 i 4 mają dostęp do wszystkich usług (ALL) natomiast host 192.168.0.3 tylko do telnetu (in znaczy wejście do serwera). Przypominam, że 192.168.xxx.xxx to niewidoczne z internetu adresy komputerów sieci wewnętrznej.
Uwaga: posiadacze programu Portsentry muszą się liczyć z automatycznie robionymi wpisami w pliku /etc/hosts.deny . Przeglądnij pliki konfiguracyjne w katalogu /etc/potrsentry/*

 
*     *     *

 

  1. Najczęściej atakowanymi elementami oprogramowania systemu Linux jest sendmail oraz imap. Stąd wskazane jest zainstalować najnowszą wersję tych programów lub wręcz zrezygnować z nich. Zamiast sendmaila możesz użyć innego programu do obsługi poczty na przykład Postfix, ZMailer, qmail

Ja jednak proponuję całkowitą rezygnację z tych serwerów. Jeżeli dopiero uczysz się obsługiwać Linuxa, to daj sobie na razie spokój z samodzielnym kontem pocztowym i załóż go na np. wp.pl, onet.pl, czy poczta.fm . Będziesz spokojniej spać, a pocztę Twoją zawsze obsłuży czynny 24 godziny na dobę profesjonalny serwer. Ostatnim argumentem może być informacja, że w przypadku wyhakowania Twojego serwera pocztowego - na Twoje konto jakiś dowcipas może wysyłać w świat spam w ilościach kilku tysięcy maili na dobę. I możesz mieć z tego powodu kłopoty - TY, a nie włamywacz, który po zatarciu śladów zniknie w eterze...

 
*     *     *

 

  1. Usuń możliwość uruchamiania usług na Twoim komputerze.

W Mandrake można decydować, jakie programy mają być uruchamiane podczas startu systemu, poprzez MANDRAKE CONTROL CENTER - USŁUGI. Więcej na ten temat tutaj.

Wyłącz niebezpieczne usługi:

    • Te, które zaczynaja się od literki r (rsh, rexec, rcp, rlogin itd.). Generalnie wszystkie te usługi można zastapić programem ssh. Mam tutaj uwagę: jeżeli podczas instalacji wybrałeś WYSOKI poziom zabezpieczeń - nie masz zainstalowanych domyślnie poniższych programów.

    • finger (udostępnia informacje o użytkownikach systemu)

    • echo

    • daytime

    • discard

    • chargen

    • tftp (umożliwia pobieranie plików bez autoryzacji)

    • nntp (serwer news)

    • smpt (zdalne Zarządzanie serwerem)

    • telnet (koniecznie zainstaluj ssh!)

    • systat

    • netstat (informacje o systemie i sieci)

    • talk

    • ntalk

    • printer...

O tym, czy wprowadzone zmiany odniosły skutek, możesz się dowiedzieć wydając polecenie: netstat -l (małe L) lub poleceniem netstat -n (patrz na górne wiersze wydruku). Program netstat wyświetli wówczas listę usług aktualnie udostępnianych przez Twoja maszynę i listę połaczeń.

 
*     *     *

 

  1. Twój komputer jest stosunkowo bezpieczny jeżeli używasz go jako stację, zabezpieczyłeś WYSOKIM poziomem bezpieczeństwa i restrykcyjnie ustawiłeś firewalla. Problemy pojawiają się gdy udostępnisz połączenie internetowe dla domowej sieci i włączysz serwery (np. Apache, ProFTPd, DHCP itd.). W tym przypadku będziesz się musiał ... latami :) uczyć, aby w miarę spokojnie spać. Jednym z pomysłów na zabezpieczanie komputera jest ukrycie przed światem informacji o wersji Twojego systemu.
    Aby ukryć przed innymi w internecie dane o swoim systemie wyedytuj plik /etc/issue.net i skasuj jego zawartość. Jeżeli będziesz chciał usunąć powitalny komunikat startowy zawierajacy między innymi dane o wersji systemu to skasuj zawartość pliku /etc/issue . Niestety po restarcie komputera będziesz musiał znowu powrócić do tematu, gdyż zostaną przywrócone pierwotne wpisy (zrobi to plik /etc/rc.d/rc.local). Zobacz jakie szkolne rozwiązanie proponuję w sprawie plików issue.

Jako ciekawostkę potraktuj informację, że można tak skonfigurować sshd, aby po zalogowaniu z zewnątrz - klient zobaczył komunikat powitalny będący zawartością pliku /etc/motd . W Mandrake 9.0 zobaczysz także jego treść po po zwykłym zalogowaniu się na konsoli tekstowej.

 
*     *     *

 

  1. Mandrake 8.1, 9.0 mają domyślnie zainstalowane narzędzia kontrolujące zmiany w systemie. Jeżeli od czasu do czasu sprawdzisz system - uzyskasz dobry materiał do oceny stopnia zabezpieczenia komputera. O tym jak ważne są to narzędzia niech pokaże przykład: wykonaj modyfikację dowolnego pliku z bitem SUID - usuń ten bit. Następnie uruchom plik /usr/share/msec/security.sh, a zobaczysz, że otrzymasz komunikat ostrzegajacy o zmianach. Jeżeli sam to zrobiłeś, to nie ma strachu. Ale jeżeli nic Ci o tym nie wiadomo, to może oznaczać, że wyhakowano Twój komputer i zmodyfikowano kluczowe pliki. W Mandrake 8.1 (przy WYSOKIM(4) POZIOMIE BEZPIECZEŃSTWA) plik /etc/crontab raz na dobę (4 nad ranem) - odpala plik /usr/share/ msec/security.sh . W Mandrake 9.0 plik security.sh (przy WYŻSZYM4 POZIOMIE BEZPIECZEŃSTWA) jest uruchamiany przez narzędzie msec, stąd brak wpisu w crontabie. Jeżeli więc wybrałę nizszy poziom zabezpieczeń - to dopisz wiersz w /etc/crontab

Przykładowy plik /etc/crontab pobrany z Mandrake 9.0. Zwróć uwagę na wiersz 0 22,6,14 * * *   root   /usr/share/msec/security.sh oraz dodatkowe wpisy automatyzujące kopiowanie raportów na pulpit użytkownika antek . Daje to możliwość sprawdzania wybranemu uzytkownikowi (pod nieobecność roota) wyników kontroli systemu. Wiecej o automatyzowaniu prac na stronie o zarządzaniu Linuxem.

 
*     *     *

 

  1. Jako administrator powinieneś mieć kontrolę nad zdarzeniami zachodzącymi w systemie. Należy w tym celu regularrnie edytować pliki z logami. Niestety - ich podstawową wadą jest... nadmiar informacji i bez narzędzi wyszukujących praca z nimi nie ma sensu. Pod KDE (MANDRAKE CONTROL CENTER- SYSTEM- LOGS) zaprojektowano przyjazny moduł sortujący wg różnych kryteriów materiał z czterech plików:

    • /var/log/auth.log - zawiera wykaz prób logowania (bezpośrednio i z sieci)

    • /var/log/messages - koszmarnie dużo informacji z każdej chyba dziedziny

    • /var/log/syslog - czyli systemowe oraz sprzętowe komunikaty

    • /var/log/user - co działo się w systemie (np. komunikaty o instalowaniu programów, aktualizacjach)

Inne ciekawe pliki z logami (nie obsługiwanymi przez wspomniane powyżej narzędzie):

    • /var/log/secure - wykaz logowań na serwer proftp, lista wydanych poleceń związanych z dodawaniem i usówaniem użytkowników.

    • /var/log/security.log komunikaty z róznicami zaistnałymi w systemie, powstałe po kontroli programu /usr/share/msec/security.sh

    • oraz standardowe pliki z logami serwerów typu: proftpd, apache.

 
*     *     *

 

  1. PAM czyli pomocnik administratora jest programem nadzorującym użytkowników. Posiada pliki konfiguracyjne w katalogu /etc/security

Przykład pliku /etc/security/limits.conf

@antek hard maxlogins 3
@kajtek hard maxlogins 1
@kajtek hard priority 5
@ftpantka hard maxlogins 0
@ftp hard maxlogins 0
ftp hard nproc 0
apache hard nproc 0
# End of file

Wyjaśnienie: w pierwszym wierszu użytkownicy z grupy antek mogą logować się na maksymalnie trzech konsolach jednocześnie, w drugim i trzecim wierszu użytkownicy z grupy kajtek mogą logować się na maksymalnie jednej konsoli z maksymalnym priorytetem 5. Na czerwono zaznaczyłem sposób na radykalne zabezpieczenie użytkowników ftp (publicznego). Jeżeli dałeś użytkownikom indywidualnym możliwość posiadania swojego konta ftp, to przemyśl czy im też radykalnie nie ograniczyć praw.

 

Plik /etc/security/time.conf ustala czas i porę, gdy będzie można logować się na serwerze.

 
*     *     *

 

  1. Mając małą domową sieć, powinieneś zaopatrzyć się w dwa programy: s n i f f i t oraz n m a p. Umożliwi to nadzór nad łącznością w sieci i kontrolę portów na serwerze. Niestety, na Mandrake 9.0 czasami udaje się zainstalować, czasami nie :-(

 
*     *     *

 

  1. Jeżeli masz podstawy sądzić, że włamano się na serwer - to natychmiast wyłącz internet, skopiuj cały katalog /var/log oraz /etc na osobną partycję. Następnie sformatuj dyski i zainstaluj na nowo system. Edytując uratowane archiwalia odtwórz historię ataku i wyciągnij wnioski.

 
*     *     *

 

  1. W Mandrake 9.0 możesz skorzystać z pewnej nieudokumentowanej opcji instalatora. Dodasz w ten sposób bibliotekę libsafe zabezpieczającą system przed atakiem przeprowadzonym za pomocą specjalnie spreparowanych znaków. Podczas instalacji wykonuj zwykłe, standardowe kroki, ale w pewnych punktach zatrzymaj się:

    • na etapie RODZAJ INSTALACJI wybierz ZAINSTALUJ, ZAAWANSOWANA (czyli standardowo)

    • na etapie BEZPIECZEŃSTWO wybierz WYŻSZY (dla serwerów) POZIOM BEZPIECZEŃSTWA (czyli standardowo)

    • na etapie WYBÓR PAKIETÓW wybierz tylko SERWER SIECIOWY i... powróć do etapu BEZPIECZEŃSTWO klikając w zielony przycisk (pierwszy nietypowy krok)

    • na etapie BEZPIECZEŃSTWO zobaczysz znajomą planszę, ale... z dodatkową opcją zabezpieczającą serwer przed przepełnieniem buforu oraz atakami odpowiednio spreparowanych ciągów znaków (drugi nietypowy krok)

    • kolejne kroki instalacji wykonaj już standardowo. Po powrocie do panelu WYBÓR GRUP PAKIETÓW punkt SERWER SIECIOWY nie jest już zaznaczony i nie zmieniaj tego. Ewentualne serwery sieciowe typu OPENSSH, SAMBA itd. za chwilę dobierzesz ręcznie na kolejnym panelu.

Przeczytaj poniższy punkt.

 
*     *     *

 

  1. Przed chwilą mogłeś zaznajomić się z zabezpieczeniem serwera przed przepełnieniem buforu. Przypuszczam, że aż gotujesz się z ciekawości jak przeprowadza się taki atak. W uproszczony sposób można to przedstawić jako wykorzystanie pewnej cechy systemu, gdy przejmuje on część zapisu z tej treści polecenia do demona, która jest większa od ustalonej, dopuszczalnej wartości. Programiści znają pojęcie ustalania zmiennych. Jest to bardzo przydatne, gdyż pozwala gospodarować oszczędnie pamięcią. Niestety problemy powstają, jeżeli rzeczywista wartość zmiennej jest większa niż dopuścił projektant. Przedstawię to poprzez uproszczony przykład: przyjmijmy, że apache przystosowany jest do przyjęcia wezwania załadowania strony www o adresie nie dłuższym niż 200 znaków. Jeżeli jakiś dureń wpisze do przeglądarki adres zawierający ponad 200 znaków, to serwer przyjmie pierwsze 200 znaków, natomiast pozostałe umieści w pamięci systemowej (zabezpieczony serwer odrzuci nadwyżkę). Jeżeli będą to specjalnie przygotowane polecenia systemowe, to... jak już się domyślasz hacker odniesie sukces. Oczywiście nie napalaj się na ten sposób, gdyż na pewno nie uda Ci się wyhakować serwer poprzez wpisanie zbyt długiego adresu :-) . Mam nadzieję, że za pomocą tego uproszczonego przykładu zrozumiałeś logikę przepełnienia buforu.

Osobiście byłem obiektem ataków poprzez serwer BIND (odpowiadający za DNS). Włamywacz logował się poprzez port 53 i listował gatalogi główne. Reinstalka systemu nie pomogła, więc usunąłem demona BINDa (po głębszym zastanowieniu uznałem, że został zupełnie niepotrzebnie zainstalowany podczas konfiguracji udostępnienia połaczenia). I od tego momentu mam spokój, przynajmniej z atakami na port 53 ;-) . Pytasz się po co o tym wszystkim piszę? Gdyż to samo może dotyczyć Ciebie(!). Mandrake ma miłe narzedzia, które co prawda pomagają w konfiguracji, ale niestety posiadają wadę: trzeba po ich działaniu ręcznie uszczelnić system. Niestety, nikt w MandrakeSoft nie pomyślał, że użytkownicy SDI muszą konfigurować sieć na DNS od TPSA (194.204.159.1, 194.204.152.34) i własny serwer jest po prostu... nieprzydatny. Dlatego pamiętaj: PO KAŻDYM SKONFIGUROWANIU UDOSTĘPNIENIA (poprzez Mandrake Control Center lub drakgw) USUŃ DEMONA BIND (plus dodatkowe pakiety). Usuwać możesz poprzez Mandrake Control Center ;-)

 
*     *     *

 

  1. RedHat, a za nim Mandrake zastosowali narzędzie ułatwiające konfigurowanie systemu: linuxconf. Można go uruchomić w powłoce tekstowej i pod okienkami np. KDE. Ma swoje wady i zalety, ale ja nie o tym... . LINUXCONF ma opcję, o której niektórzy admini zapominają - można przy jego pomocy zdalnie (z odległego komputera) przekonfigurować system. Z jednej strony jest to przydatne zlecenie (gdy serwerem administrujemy mieszkając np. w innym mieście), z drugiej potencjalna dziura w bezpieczeństwie. Wybierz więc: linuxconf , -NETWORKING -LINUXCONF NETWORK ACCESS- usuń zaznaczenie przy opcji umożliwiające zdalne konfigurowanie. Jeżeli mimo wszystko chcesz korzystać z tej możliwości, zwróć uwagę na plik /var/log/linuxconf/htmlaccess.log . Kontakt ze zleceniem linuxconf odbywa się (przy pomocy przeglądarki) poprzez wpisanie adresu http://machine:98/ (machine to pełna nazwa serwera, 98 czyli nr portu).

 
*     *     *

 

  1. Są witryny, które sprawdzają odporność Twojego systemu na włamania. Oto ich wykaz (cytuję za Komputer Świat-EXPERT 1/2002):

oraz inne adresy:

 

 
*     *     *

 

 

 
LINKI.

 

www.mandrakesecure.net/en/ftp.php - pliki aktualizacyjne dla Mandrake.

ftp.task.gda.pl/pub/linux/Mandrake/iso/ - obrazy ISO płyt CD z instalkami Mandrake.

www.linuxindex.pl - link do wyszukiwarki zajmującej się Linuxem (wpisz hasło i...)

http://www.iana.org/assignments/port-numbers - lista portów z objaśnieniami.

ftp://ftp.portsdb.org/PortsDB/services - lista portów z objaśnieniami.

http://www.securityfocus.com/focus/sun/form.html - wyszukiwarka tematyczna (wpisz np. 135 jako nr interesującego Ciebie portu)

 
Program antywirusowy dla Linuxa:

 

 

Podziękowania dla autora witryny



Wyszukiwarka

Podobne podstrony:
linux knoppix pl mini podrecznik Z3ANOX5ZZW3OHAVSELSWE47XLBJV37F6EROUREA
abc linux helion pl RANZZPPMBTDYJHOG4KJ7UZCU5PNO377KYB5IAUY
Linux terminarze PL
Linux ipchains HOWTO pl
PL Linux+ 2005 01 (osiol NET) www!OSIOLEK!com
www debianusers pl Kompilacja j�dra Linux
linux polskie znaki (pl) 2DLF245BVKWZ2FDWY64ODUIQIPV4Y3JYVVUL3GA
(ebooks pl) linux leksykon kieszonkowy BW3PRTMB7R4W6BLR3GFRI6UNTVMYEGO6E32UMGI
(e book PL pdf) Linux BASH Programowanie w powloce Radek Przychodaid 1260
struktura plikow linux (pl) 3V6PCDOHCKYOJEEAIXAAY47YI4YZTYAO6WRMQYA
Linux.Komendy.(Polecenia).-.(Pl), INFORMATYKA, informatyka
Zabawy z Ubuntu. Część pierwsza i trochę, Linux, Ubuntu, czytelnia.ubuntu.pl
2 Linux Debian FAQ PL
Zabawy z Ubuntu. Część pierwsza O LiveCD, Linux, Ubuntu, czytelnia.ubuntu.pl

więcej podobnych podstron