42 (12)


Rozdział 42.
Bezpieczeństwo w sieci

Tim Parker
W tym rozdziale:
* Słabe hasła
* Bezpieczeństwo plików
* Dostęp przez modem
* UUCP
* Dostęp poprzez sieć lokalną
* Śledzenie intruza
* Przygotowywanie się na najgorsze
Omówienie wszystkich zagadnień związanych z bezpieczeństwem systemów zajęłoby
kilka tomów, z konieczności więc omówimy tylko te najprostsze. Przyjrzymy się
najbardziej podstawowym mechanizmom zabezpieczania się przed włamaniami poprzez
łącza telefoniczne i niektórym aspektom zabezpieczeń w sieci lokalnej. Nie
będziemy omawiać skomplikowanych rozwiązań, które są trudne do wprowadzenia i
wymagają specjalistycznej wiedzy, a ponadto mogą być zastosowane tylko w
niektórych systemach.
Zamiast tego przyjrzymy się podstawowym metodom zabezpieczania systemu, które
są zarówno proste, jak i skuteczne. Wielu administratorów albo nie wie, co
można zrobić, aby zabezpieczyć się przed włamaniem, albo też lekceważy taką
możliwość. Włamania są jednak wyjątkowo częste, więc nie warto igrać z ogniem.
Słabe hasła
Może się to wydawać nieprawdopodobne, ale najczęściej intruzi dostają się do
systemów (obojętne czy przez sieć lokalną, czy połączenie modemowe),
wykorzystując słabe
czyli łatwe do odgadnięcia
hasła użytkowników. Jeśli
użytkownicy stosują słabe hasła, nawet najlepszy system zabezpieczeń nie może
zabezpieczyć przed włamaniem.
Jeśli zarządzasz systemem, w którym jest kilku użytkowników, powinieneś wymagać
od nich zmiany hasła co pewien czas (na przykład co sześć czy osiem tygodni).
Najlepsze hasła składają się z kombinacji cyfr i liter, których nie można
znaleźć w żadnym słowniku.
Czasem zmiana haseł nie wystarcza
powinieneś wtedy rozważyć użycie jednego
z programów komercyjnych lub dostępnych na licencji public domain,
wymuszających użycie mocnych haseł. Pakiety takie zwykle rozprowadzane są w
postaci kodu źródłowego, przed użyciem konieczne jest więc ich skompilowanie.
Bezpieczeństwo plików
Dbałość o bezpieczeństwo systemu powinna zaczynać się już na poziomie praw
dostępu do plików, które powinny być ustawiane bardzo uważnie. Jeśli chcesz
zabezpieczyć nowe pliki przed niepowołanymi osobami, ustaw odpowiednią wartość
zmiennej umask.
Oczywiście kwestie bezpieczeństwa plików mają znaczenie tylko wtedy, gdy z
systemu korzysta jeszcze ktoś oprócz Ciebie. Jeśli tak jest, warto pomyśleć nad
globalnym ustawieniem wartości tej zmiennej dla wszystkich użytkowników,
zapewniając, że nowe pliki będą miały przypisane prawa dostępu nadające ich
właścicielom i nikomu innemu prawo do odczytu i zapisu. To w zasadzie wszystko,
co można zrobić dla zabezpieczenia plików.
Szczególnie ważne pliki (na przykład zawierające dane o pracownikach) warto
dodatkowo zabezpieczyć za pomocą jakiegoś programu szyfrującego
dostępnych
jest wiele tego rodzaju aplikacji. W większości z nich do kodowania i
dekodowania używa się tego samego hasła
Dostęp przez modem
Dla większości użytkowników Linuxa problem zabezpieczania się przed włamaniem
poprzez bramkę internetową nie jest szczególnie istotny z prostego powodu
nie
posiadają oni bezpośredniego połączenia z Internetem. Trzeba jednak pomyśleć o
zabezpieczeniu się przed włamaniami przez modem.
Modemy są najczęściej używanym "oknem na świat" w systemach linuxowych. Za ich
pośrednictwem można używać systemu z komputera zdalnego, uzyskać dostęp do
Internetu itp. Zabezpieczenie linii używanych przez modem jest prostą i
efektywną metodą powstrzymania przypadkowych szperaczy.
Modemy oddzwaniające
Najbezpieczniejszą techniką kontrolowania dostępu do modemu jest użycie modemów
oddzwaniających (ang. callback modems). Modemy tego typu pozwalają
użytkownikowi połączyć się w zwykły sposób, następnie przerywają połączenie,
wyszukują w bazie danych numer telefonu użytkownika, który chciał się
zalogować, i same nawiązują połączenie. Największą wadą takiego rozwiązania są
wysokie koszty, dlatego nie jest ono stosowane zbyt często.
Dodatkowe problemy pojawiają się, gdy użytkownicy często zmieniają miejsce, z
którego dzwonią, co wiąże się ze zmianą numeru telefonu. Modemy oddzwaniające
dają się również oszukać za pomocą przekazywania rozmowy
rozwiązania
oferowanego przez wiele nowocześniejszych aparatów telefonicznych.
Problemy z modemami
Typowy modem telefoniczny może być źródłem problemów, jeśli nie kończy
prawidłowo połączenia (nie odwiesza słuchawki po zakończeniu sesji). Wynika to
często ze złej konfiguracji modemu lub niewłaściwego podłączenia.
Problemy powodowane przez nieprawidłowe podłączenie modemu mogą wydawać się
banalne, ale w wielu systemach połączenia montowane na własną rękę nie
zapewniają prawidłowej kontroli nad linią i możliwe jest pozostawienie nie
zakończonego połączenia. Wtedy następny dzwoniący kontynuuje sesję poprzedniego
użytkownika.
Aby zabezpieczyć się przed tego typu problemami, wymień wszystkie robione
ręcznie połączenia na okablowanie pochodzące od pewnego producenta. Warto
również kilka czy kilkanaście razy sprawdzić, czy po zakończeniu sesji
połączenie jest prawidłowo przerywane.
Problem ten może być również spowodowany nieprawidłową konfiguracją
oprogramowania. Sprawdź w dokumentacji modemu, czy Twój skrypt potrafi odwiesić
słuchawkę po zakończeniu sesji i przy zerwaniu połączenia. Problem ten rzadko
występuje w przypadku popularnych modemów, ale mając jakiś mniej znany model
warto się upewnić, czy nie będzie on powodował problemów, sprawdzając, czy po
zakończeniu połączenia linia jest zwalniana.
Bardzo skuteczną metodą zapobiegania włamaniom przez modem jest po prostu
odłączanie go w czasie, kiedy nie jest potrzebny. Ponieważ włamania zwykle mają
miejsce po normalnych godzinach pracy systemów, można po prostu wyłączać modem
na noc. Można również użyć pliku crontab do czasowego wyłączania portu
szeregowego, do którego podłączony jest modem.
W wielu systemach wyłączanie modemu nie jest praktycznym rozwiązaniem, ale
często warto je rozważyć. Jeśli dostęp w godzinach nocnych jest konieczny,
można na przykład pozostawić jeden modem załączony, wyłączając pozostałe. W
większych systemach zwykle liczba modemów działających po godzinach pracy jest
znacznie mniejsza, niż pracujących normalnie.
Jak modem obsługuje połączenie
Aby użytkownik mógł otrzymać dostęp do systemu linuxowego przez modem, w
systemie musi działać proces getty. Jest on uruchamiany przez proces init dla
każdego portu szeregowego. Proces getty jest odpowiedzialny za pobranie
identyfikatora użytkownika, ustalenie parametrów transmisji (na przykład typu
terminalu i prędkości przesyłu danych) oraz obserwowanie, czy czas oczekiwania
na odpowiedź nie został przekroczony. W systemie Linux porty szeregowe i porty
kart multiport kontrolowane są przez plik /etc/ttys.
W niektórych systemach możliwe jest założenie dodatkowego hasła, wymaganego do
połączeń modemowych. Użytkownik łączący się za pośrednictwem modemu będzie
musiał wprowadzić dwa hasła. Jeśli hasło do połączeń modemowych jest
obsługiwane, ustawia się je w pliku /etc/dialups.
W systemach linuxowych w pliku /etc/dialups przechowywana jest lista portów
wymagających podania hasła, natomiast same hasła przechowywane są w innym pliku
(na przykład /etc/d_passwd). Podobne rozwiązanie można również zastosować do
połączeń UUCP.
UUCP
Przy projektowaniu systemu UUCP brano pod uwagę problemy bezpieczeństwa, ale
było to wiele lat temu
od tego czasu wymagania stawiane tego typu systemom
zmieniły się bardzo znacznie. Znaleziono również sporo luk w bezpieczeństwie
stwarzanych przez ten system, choć większość z nich została naprawiona poprzez
modyfikacje w kodzie źródłowym. System UUCP nadal wymaga, by poświęcić nieco
uwagi prawidłowej konfiguracji
wtedy będzie działał poprawnie i bezpiecznie.
Jeśli nie zamierzasz używać UUCP, usuń z pliku /etc/passwd użytkownika uucp
(lub przynajmniej zablokuj logowanie dopisując gwiazdkę na początku hasła).
Usunięcie użytkownika uucp nie zakłóci w żaden sposób działania systemu, o ile
nie jest używany protokół UUCP.
Wszystkim katalogom i plikom systemu UUCP powinny być przypisane tak
ograniczone prawa dostępu, jak to tylko możliwe (zwykle są to katalogi
/usr/lib/uucp, /usr/ spool/uucp i /usr/spool/uucppublic). Odpowiednie prawa
możesz ustalić za pomocą poleceń chown, chmod i chgrp. Właścicielem tych
katalogów powinien być użytkownik uucp, grupa uucp. Warto również regularnie
sprawdzać, czy wszystkie pliki mają przypisane prawidłowe prawa dostępu.
To, czy dany system ma prawo korzystać z protokołu UUCP, ustalane jest na
podstawie zawartości kilku plików. Pliki te (na przykład /usr/lib/uucp/Systems
i /usr/lib/ uucp/Permissions) powinny być również własnością użytkownika uucp i
tylko on powinien mieć do nich dostęp. To zabezpieczy przed ich modyfikacją
przez niepowołane osoby.
Katalog /usr/spool/uucppublic często jest celem włamań, ponieważ każdy łączący
się system ma w nim prawo zapisu i odczytu. Pewnym zabezpieczeniem może być
utworzenie dwóch podkatalogów: jednego do odbierania, a drugiego do nadawania
plików. Można również utworzyć osobny podkatalog dla każdego systemu łączącego
się za pośrednictwem UUCP.
Dostęp poprzez sieć lokalną
Choć sieci lokalne rzadko stanowią zagrożenie same w sobie (ponieważ zwykle
korzystają z nich zaufane osoby), są jednak jednym z najłatwiejszych sposobów
na włamanie się do systemu. Najpoważniejszy problem polega na tym, że jeśli
choć jedna maszyna ma jakieś słabe punkty (jeśli chodzi o zabezpieczenia), to
żaden inny komputer w sieci nie jest bezpieczny. Z tego powodu każde
zabezpieczenie powinno działać na wszystkich bez wyjątku komputerach w sieci.
Idealny system bezpieczeństwa w sieci lokalnej wymusza zastosowanie
odpowiednich procedur uwierzytelniania dla każdego połączenia. Niestety, takie
rozwiązanie może powodować konflikty z wieloma istniejącymi programami i
rozwiązaniami systemowymi. Dlatego w Linuxie istnieje pojęcie komputera
zaufanego (ang. trusted host). Taki komputer może połączyć się z systemem bez
żadnych problemów, pod warunkiem, że jego nazwa znajduje się w odpowiednim
pliku
w większości przypadków nie jest wymagane nawet hasło! Wszystko, co
musi zrobić włamywacz, to poznać nazwę komputera zaufanego i połączyć się,
podając taką nazwę. Sprawdź więc dokładnie zawartość plików /etc/hosts.equiv,
/etc/hosts i .rhosts.
Jednym z rozwiązań jest używany ostatnio dość powszechnie system Kreberos,
opracowany przez MIT. Kreberos wprowadza pojęcie komputera bardzo bezpiecznego
(ang. very secure host), który działa jako serwer uwierzytelniający połączenia.
Szyfrowanie przesyłanych wiadomości zabezpiecza również przed odczytywaniem ich
nagłówków przez włamywaczy. System Kreberos uwierzytelnia wszystkie wiadomości
przesyłane w obrębie sieci.
Ze względu na naturę większości sieci, systemy linuxowe są narażone na ataki
intruzów posiadających dużą wiedzę o systemie. Znane są dosłownie setki
problemów stwarzanych przez oprogramowanie TCP/IP. Jako pierwszy krok w
zabezpieczaniu systemu powinieneś więc wyłączyć wszystkie te usługi i
protokoły, których nie wykorzystujesz, ponieważ ktoś może użyć ich do włamania
się do systemu.
Śledzenie intruza
Większość włamań dokonywanych jest przez ludzi ciekawych, jakiego typu dane
przechowywane są w systemie, ale nie mających na celu dokonania zniszczeń.
Często włamują się do systemu co jakiś czas, rozglądają się, grają w jakieś gry
i wylogowują się niczego nie zmieniając. Z tego powodu trudno zauważyć, że ktoś
się włamał
wówczas zdany jesteś tylko na łaskawość intruza. Może nie
przyjdzie mu do głowy niczego niszczyć. Czasem również system może być
wykorzystywany jako odskocznia przy atakowaniu innego
wtedy administrator
tego systemu stwierdzi, że włamanie nastąpiło z Twojego komputera i możesz mieć
kłopoty.
"Śledzić" użytkowników systemu możesz włączając proces rejestrujący dane
użytkownika za każdym razem, gdy łączy się on i rozłącza z systemem, nazywany
procesem audytu (ang. auditing) lub procesem monitorowania połączeń. Nie we
wszystkich wersjach Linuxa proces taki jest dostępny. Dokładniejszych
informacji szukaj na stronach man.
Jeśli proces audytu działa w Twoim systemie, powinieneś często przeglądać
generowany plik. Dobrze jest również napisać prosty skrypt wyświetlający
podsumowanie, zawierające dane o tym, kto ile czasu był podłączony do systemu,
w jakich godzinach itp. To może pozwolić Ci wyłapać wszelkie anomalie czy
zauważyć coś, co nie zgadza się z Twoimi informacjami (na przykład logowanie
się po godzinach pracy itp.). Taki skrypt możesz z łatwością napisać na
przykład w języku gawk. Dostępne są również gotowe programy do tego celu.
Przygotowywanie się na najgorsze
Załóżmy, że ktoś się włamuje. Co możesz zrobić w takim przypadku? Oczywiście
kopii zapasowych nie da się przecenić
pomogą Ci one odzyskać wszystkie
usunięte czy uszkodzone pliki. Ale poza tym, co jeszcze można zrobić?
Po pierwsze, powinieneś dowiedzieć się, w jaki sposób dokonano włamania i
zabezpieczyć tę drogę tak, by włamanie nie mogło się już powtórzyć. Jeśli nie
jesteś pewny, wyłącz wszystkie modemy i terminale i uważnie sprawdź wszystkie
pliki konfiguracyjne, szukając nieprawidłowych danych. Gdzieś musi być błąd,
ponieważ inaczej nie byłoby włamania. Sprawdź również hasła i listę
użytkowników
być może zapomniałeś usunąć jakieś konto, które dawno już nie
powinno istnieć.
Jeśli jesteś ofiarą powtarzających się ataków, spróbuj załączyć system
monitorowania połączeń. Być może dzięki temu będziesz mógł wyśledzić, jaką
drogą nieproszony gość dostaje się do systemu i co w nim robi.
Powinieneś również mieć świadomość, że włamania są nielegalne
w ostateczności
możesz więc skontaktować się z organami ścigania.
Podsumowanie
Przestrzegając kilku podanych wyżej prostych zasad, powinieneś uchronić się
przed "zwykłymi" hakerami. Niestety, nie wystarczą one, by zabezpieczyć się
przed najlepszymi
im nie przeszkadzają nawet wojskowe systemy ochrony.
Wprowadzając opisane wcześniej zabezpieczenia, na pewno nie wyrządzisz żadnych
szkód w systemie, więc warto wprowadzić je w każdym systemie połączonym z
innymi systemami za pomocą modemu lub sieci lokalnej.
Konfiguracja sieciowego systemu plików (NFS) opisana jest w rozdziale 43.
"NFS".
Metody tworzenia kopii zapasowych omawia rozdział 45. "Kopie zapasowe".
Problematykę związaną z konfigurowaniem systemu tak, by mógł on działać jak
serwer WWW, podejmuje rozdział 47. "Konfiguracja węzła internetowego".
Rozdział 57. "Dostosowywanie jądra systemu" przedstawia metody wprowadzania
zmian do jądra systemu.



Wyszukiwarka

Podobne podstrony:
42 12 Pażdziernik 1999 Wola najwyższego
2005 12 42
248 12
Biuletyn 01 12 2014
12 control statements
Rzym 5 w 12,14 CZY WIERZYSZ EWOLUCJI

więcej podobnych podstron