Serwery internetowe Red Hat Linux

1,625 views

Published on

Oficjalny przewodnik po serwerach internetowych bazujących na systemie Red Hat Linux

Niniejsza książka została zrecenzowana oraz zaakceptowana przez zespół ekspertów z firmy Red Hat. Zawiera ona informacje niezbędne do poprawnej konfiguracji serwerów internetowych działających pod kontrolą Linuksa, jak również zarządzania nimi.

Eksperci od systemu Red Hat Linux: Paul Sery oraz Jay Beale rozpoczynają od podstaw -- istotnych informacji na temat zagadnień sieciowych, połączeń z siecią Internet, zapór sieciowych. Następnie w sposób bardziej szczegółowy przedstawiają sposób konfigurowania usług sieciowych oraz internetowych, począwszy od połączenia z bazą danych, tworzenia połączeń bezpiecznych i udostępniania mediów strumieniowych. W dalszej kolejności zajmują się konfiguracją serwerów nazwy domenowej, usług poczty elektronicznej, serwerów FTP oraz Samba. W kolejnych rozdziałach autorzy poświęcają wiele miejsca zarządzaniu serwerami, jak również umieszczają porady dotyczące utrzymywania zabezpieczeń sieci.

Ten autoryzowany przewodnik okaże się nieocenioną pomocą podczas tworzenia bezpiecznego, wydajnego serwera internetowego opartego na systemie Red Hat.

Autorzy podają sprawdzone sposoby implementacji serwerów internetowych opartych na systemie Red Hat Linux.

* Konfiguracja sieci komputerowej w jednej z dwóch przedstawionych topologii
* Ustanowienie połączenia z siecią Internet za pomocą modemu kablowego lub DSL
* Tworzenie zapory sieciowej dokonującej filtrowania pakietów IP z uwzględnieniem ich stanu
* Konfiguracja serwera WWW Apache 2 oraz serwera strumieniowych danych audio
* Połączenie z bazą danych SQL z poziomu serwera WWW oraz tworzenie bezpiecznych połączeń SSL
* Tworzenie serwerów DNS, SMTP, FTP oraz Samba
* Automatyzacja tworzenia kopii bezpieczeństwa poprzez sieć komputerową
* Zabezpieczanie serwerów i wykrywanie włamań


"Nareszcie jest coś, na co czekali użytkownicy systemu Red Hat! Książka zawiera wyczerpujący przegląd najważniejszych zagadnień dotyczących serwerów internetowych bazujących na systemie Red Hat Linux wraz z mnóstwem praktycznych przykładów pozwalających użytkownikowi zaoszczędzić czas.”

Mark J.Cox.
Starszy menedżer ds. rozwoju w firmie Red Hat.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,625
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Serwery internetowe Red Hat Linux

  1. 1. IDZ DO PRZYK£ADOWY ROZDZIA£ SPIS TRE CI Serwery internetowe Red Hat Linux KATALOG KSI¥¯EK Autorzy: Paul G. Sery, Jay Beale T³umaczenie: Rafa³ Szpoton (rozdz. 1 - 9, 19, dod. A - C), KATALOG ONLINE Marek Pêtlicki (rozdz. 10 - 18) ISBN: 83-7361-415-X ZAMÓW DRUKOWANY KATALOG Tytu³ orygina³u: Red Hat Linux Internet Server Format: B5, stron: 536 TWÓJ KOSZYK Niniejsza ksi¹¿ka zosta³a zrecenzowana oraz zaakceptowana przez zespó³ ekspertów DODAJ DO KOSZYKA z firmy Red Hat. Zawiera ona informacje niezbêdne do poprawnej konfiguracji serwerów internetowych dzia³aj¹cych pod kontrol¹ Linuksa, jak równie¿ zarz¹dzania nimi. CENNIK I INFORMACJE Eksperci od systemu Red Hat Linux: Paul Sery oraz Jay Beale rozpoczynaj¹ od podstaw — istotnych informacji na temat zagadnieñ sieciowych, po³¹czeñ z sieci¹ Internet, zapór sieciowych. Nastêpnie w sposób bardziej szczegó³owy przedstawiaj¹ sposób ZAMÓW INFORMACJE O NOWO CIACH konfigurowania us³ug sieciowych oraz internetowych, pocz¹wszy od po³¹czenia z baz¹ danych, tworzenia po³¹czeñ bezpiecznych i udostêpniania mediów strumieniowych. ZAMÓW CENNIK W dalszej kolejno ci zajmuj¹ siê konfiguracj¹ serwerów nazwy domenowej, us³ug poczty elektronicznej, serwerów FTP oraz Samba. W kolejnych rozdzia³ach autorzy po wiêcaj¹ wiele miejsca zarz¹dzaniu serwerami, jak równie¿ umieszczaj¹ porady dotycz¹ce CZYTELNIA utrzymywania zabezpieczeñ sieci. Ten autoryzowany przewodnik oka¿e siê nieocenion¹ pomoc¹ podczas tworzenia FRAGMENTY KSI¥¯EK ONLINE bezpiecznego, wydajnego serwera internetowego opartego na systemie Red Hat. Autorzy podaj¹ sprawdzone sposoby implementacji serwerów internetowych opartych na systemie Red Hat Linux. • Konfiguracja sieci komputerowej w jednej z dwóch przedstawionych topologii • Ustanowienie po³¹czenia z sieci¹ Internet za pomoc¹ modemu kablowego lub DSL • Tworzenie zapory sieciowej dokonuj¹cej filtrowania pakietów IP z uwzglêdnieniem ich stanu • Konfiguracja serwera WWW Apache 2 oraz serwera strumieniowych danych audio • Po³¹czenie z baz¹ danych SQL z poziomu serwera WWW oraz tworzenie bezpiecznych po³¹czeñ SSL • Tworzenie serwerów DNS, SMTP, FTP oraz Samba Wydawnictwo Helion • Automatyzacja tworzenia kopii bezpieczeñstwa poprzez sieæ komputerow¹ ul. Chopina 6 • Zabezpieczanie serwerów i wykrywanie w³amañ 44-100 Gliwice O autorach: tel. (32)230-98-63 Paul G. Sery pracuje dla Narodowego laboratorium Sandia w Albuquerque, w stanie e-mail: helion@helion.pl Nowy Meksyk, w którym zajmuje siê projektowaniem sieci oraz zarz¹dzaniem nimi. Jay Beale jest za³o¿ycielem oraz przewodnicz¹cym firmy konsultingowej JJB Security Consulting, jak równie¿ g³ównym programist¹ projektu Bastille Linux, który ma byæ u¿ywany do lepszego zabezpieczania systemów Linux oraz HP-UX. Czêsto wyk³ada na konferencjach po wiêconych bezpieczeñstwu systemów.
  2. 2. Spis treści O Autorach ...................................................................................... 13 Przedmowa...................................................................................... 15 Część I Tworzenie sieci komputerowej w oparciu o system Linux.... 19 Rozdział 1. Przykłady sieci komputerowych ........................................................ 21 Przykłady sieci komputerowych .......................................................................................22 Bezpośrednie połączenie z siecią internetową (DCI) .................................................22 Połączenie z siecią internetową za pośrednictwem strefy zdemilitaryzowanej (DMZI)....23 Opis funkcji serwera..........................................................................................................25 Podstawy konfiguracji sieci DCI ................................................................................26 Podstawy konfiguracji DMZI .....................................................................................28 Dodawanie podsieci do obu przykładowych sieci komputerowych .................................29 Podsumowanie ..................................................................................................................30 Rozdział 2. Konfiguracja usług sieciowych w systemie Red Hat .......................... 33 Podstawy protokołu internetowego IP ..............................................................................34 Usługi sieciowe a model OSI......................................................................................34 Podstawy protokołów warstwy transportowej ............................................................35 Podstawy protokołów warstwy sieci (przekazywanie pakietów IP) .................................36 Działanie protokołów warstwy łącza (ramki w sieci Ethernet).........................................37 Wygląd sieci opartej na systemie Red Hat Linux .............................................................38 Wa ne pliki konfiguracyjne sieci................................................................................38 Wa ne aplikacje oraz skrypty .....................................................................................42 arp/rarp........................................................................................................................42 ifconfig........................................................................................................................43 netstat ..........................................................................................................................44 nmap............................................................................................................................44 ping .............................................................................................................................44 redhat-config-network-druid/ redhat-config-network-cmd ........................................45 route ............................................................................................................................45 sysctl ...........................................................................................................................46 tcpdump.......................................................................................................................47 modprobe ....................................................................................................................47
  3. 3. 4 Serwery internetowe Red Hat Linux Konfiguracja jednej lub większej liczby kart sieciowych.................................................48 Przykład 1: Konfiguracja pojedynczego interfejsu sieciowego..................................48 Przykład 2: Konfiguracja dwóch interfejsów sieciowych (dwie podsieci).................52 Przykład 3: Konfiguracja routera w oparciu o system Red Hat Linux .......................55 Podsumowanie ..................................................................................................................59 Rozdział 3. Nawiązywanie połączenia z siecią Internet przy użyciu łącza DSL ....... 61 Podstawy technologii DSL................................................................................................62 Terminologia stosowana w technologii DSL ....................................................................66 Ogólne definicje..........................................................................................................66 Rodzaje usług DSL .....................................................................................................70 Tworzenie połączenia z siecią Internet przy u yciu łącza DSL........................................71 Uzyskiwanie połączenia internetowego DSL .............................................................71 Fizyczne podłączanie modemu DSL ..........................................................................71 Konfiguracja wyposa enia udostępnianego przez dostawcę usługi DSL...................73 Podstawowe wskazówki przydatne podczas rozwiązywania problemów.........................79 Podsumowanie ..................................................................................................................83 Rozdział 4. Tworzenie systemu zapory sieciowej................................................. 85 Podstawy systemów zapór sieciowych .............................................................................85 Zapory sieciowe filtrujące pakiety..............................................................................86 Zapory pośredniczące .................................................................................................87 Zapory hybrydowe ......................................................................................................88 Podstawy translacji adresów (NAT) ...........................................................................88 Wyjaśnienie przepływu pakietów w sieci Internet .....................................................89 Podstawy stanowych filtrów pakietów (Netfilter/iptables).........................................91 Tworzenie systemu zapory sieciowej................................................................................97 Ochrona sieci za pomocą prostego zestawu reguł ......................................................97 Zacieśnianie zapory sieciowej przy u yciu łańcuchów definiowanych przez u ytkownika..................................................................................................104 Wpuszczanie z zewnątrz połączeń SSH..........................................................................109 Konfiguracja serwera SSH........................................................................................112 Modyfikacja serwera zapory sieciowej (atlas) w celu umo liwienia korzystania z usługi SSH .....................................................114 Zarządzanie systemem zapory sieciowej ........................................................................116 Podsumowanie ................................................................................................................117 Rozdział 5. Rozwiązywanie prostych problemów ............................................... 119 Rozwiązywanie problemów przy u yciu drzewa decyzyjnego.......................................120 Rozwiązywanie problemów sieciowych w systemie Red Hat Linux .............................121 Czy zostało włączone zasilanie? ...............................................................................121 Czy nie została uszkodzona fizyczna instalacja sieci komputerowej? .....................122 Czy przełącznik sieciowy lub koncentrator jest skonfigurowany w sposób poprawny? ..............................................................................................122 Czy interfejs sieciowy został skonfigurowany w sposób prawidłowy?....................122 Rozwiązywanie problemów z połączeniem DSL............................................................129 Sprawdzanie konfiguracji modemu DSL (routera) po stronie u ytkownika ............130 Sprawdzanie konfiguracji dostawcy usługi DSL......................................................131 Sprawdzanie konfiguracji ISP...................................................................................132 Rozwiązywanie problemów z bramką i zaporą sieciową................................................132 Sprawdzanie konfiguracji sieciowej w systemie Red Hat Linux..............................133 Sprawdzanie tras bramki oraz przekazywania pakietów IP......................................134 Sprawdzanie skryptów zapory sieciowej ..................................................................136
  4. 4. Spis treści 5 Sprawdzanie modułów jądra oraz znaczników.........................................................137 Wykorzystywanie narzędzi podsłuchujących ruch w sieci.......................................137 Dodatkowe informacje ....................................................................................................139 Podsumowanie ................................................................................................................139 Część II Tworzenie serwera WWW .............................................141 Rozdział 6. Prosta konfiguracja serwera Apache............................................... 143 Podstawy języka HTML oraz protokołu HTTP ..............................................................143 Protokół HTTP..........................................................................................................143 Język HTML (HTML nie jest protokołem) ..............................................................144 Serwer WWW Apache ....................................................................................................148 Dyrektywy konfiguracyjne serwera Apache.............................................................149 Plik konfiguracyjny serwera Apache ........................................................................149 Tworzenie prostej witryny WWW ..................................................................................158 Instalacja serwera Apache.........................................................................................158 Konfiguracja serwera Apache...................................................................................159 Kontrolowanie działania serwera Apache ................................................................162 U ywanie serwera Apache........................................................................................163 Kontrola dostępu do serwera WWW za pomocą plików .htaccess oraz .htpasswd .....163 Uruchamianie wirtualnego serwera WWW ....................................................................164 Stosowanie protokołu SSL z serwerem Apache .............................................................167 Instalacja pakietu mod_ssl ........................................................................................168 Negocjacja SSL oraz certyfikaty ..............................................................................168 Centra autoryzacji .....................................................................................................169 Konfiguracja serwera Apache w celu wykorzystywania protokołu HTTP z SSL....169 Tworzenie certyfikatów podpisanych przez CA .............................................................170 Rozwiązywanie problemów ............................................................................................171 Sprawdzanie systemowych plików dziennika systemu Linux..................................172 Sprawdzanie plików dziennika serwera Apache.......................................................172 Połączenie lokalne ....................................................................................................173 Sprawdzanie konfiguracji serwera Apache...............................................................173 Jeśli mamy taką mo liwość, nale y u yć uproszczonego pliku httpd.conf..............173 Stopniowe dodawanie nowych dyrektyw .................................................................174 Podsumowanie ................................................................................................................174 Rozdział 7. Tworzenie połączenia z bazą danych ............................................... 175 Podstawy języka SQL .....................................................................................................175 Instalacja oraz konfiguracja bazy MySQL......................................................................177 Dostęp do serwera SQL...................................................................................................178 Tworzenie bazy danych ............................................................................................179 Wykorzystywanie bazy danych MySQL ..................................................................181 Wymiana danych z serwerem SQL przy u yciu skryptów .............................................182 Wyświetlanie danych z bazy danych MySQL ..........................................................183 Wstawianie danych do bazy danych MySQL...........................................................186 Modyfikacja danych w bazie danych MySQL..........................................................187 Wykorzystywanie skryptu CGI w celu dostępu do bazy danych SQL za pomocą przeglądarki..........................................................................................190 Zabezpieczanie bazy danych MySQL.............................................................................195 Podsumowanie ................................................................................................................196 Rozdział 8. Tworzenie prostego serwera multimedialnego ................................. 197 Wprowadzenie do technologii strumieniowej.................................................................197 Fundacja Xiph.org...........................................................................................................198
  5. 5. 6 Serwery internetowe Red Hat Linux Udostępnianie strumieni danych dźwiękowych przy u yciu serwera Icecast.................200 Instalacja oraz konfiguracja serwera Icecast.............................................................200 Instalacja oraz konfiguracja źródła Ices....................................................................202 Udostępnianie strumieni MP3...................................................................................203 Udostępniane strumieni Ogg Vorbis.........................................................................205 Rozwiązywanie problemów ............................................................................................218 Podsumowanie ................................................................................................................220 Część III Udostępnianie prostych usług internetowych.................221 Rozdział 9. Tworzenie serwera DNS.................................................................. 223 Podstawy systemu DNS ..................................................................................................223 Domeny.....................................................................................................................224 Strefy.........................................................................................................................224 Autorytatywne serwery nazw ...................................................................................225 Podstawy procesu tłumaczenia nazwy przez klienta ................................................226 Analiza prostego ądania przetłumaczenia nazwy ...................................................227 Rekordy zasobów ............................................................................................................230 Stosowanie rekordu SOA..........................................................................................230 Definiowanie rekordów zasobów strefy ...................................................................232 Instrukcje konfiguracyjne oraz parametry demona bind ..........................................232 Pliki konfiguracyjne /var/named/..............................................................................234 Konfiguracja prostego serwera DNS...............................................................................235 Konfiguracja nadrzędnego serwera nazw .................................................................236 Konfiguracja pomocniczego serwera nazw ..............................................................240 Dodawanie środków bezpieczeństwa..............................................................................241 Stosowanie list ACL .................................................................................................241 Stosowanie podpisów cyfrowych podczas wymiany stref........................................243 Uruchamianie demona named w środowisku chroot ................................................244 Uruchamianie oraz zatrzymywanie działania serwera nazw ....................................245 Tworzenie wielu plików stref..........................................................................................246 Konfiguracja serwera rozdzielonej domeny....................................................................248 Konfiguracja serwera nazw dla sieci prywatnej w konfiguracji rozdzielonej domeny ......................................................................249 Konfiguracja serwera nazw dla sieci DMZ w konfiguracji domeny podzielonej ....251 Rozwiązywanie problemów ............................................................................................252 named-checkzone......................................................................................................252 named-checkconf ......................................................................................................252 dig .............................................................................................................................253 host............................................................................................................................253 tcpdump.....................................................................................................................254 Podsumowanie ................................................................................................................254 Rozdział 10. Konfiguracja serwera pocztowego SMTP......................................... 255 Trochę teorii na temat poczty elektronicznej ..................................................................255 Kompatybilność ........................................................................................................256 Wydajność.................................................................................................................257 Wykorzystanie ..........................................................................................................257 Kolejki.............................................................................................................................257 Parametry konfiguracyjne ...............................................................................................257 Składnia parametrów ................................................................................................258 Wartości bezpośrednie ..............................................................................................258 Pliki ...........................................................................................................................258 Bazy danych i tablice ................................................................................................258
  6. 6. Spis treści 7 Obsługa niechcianej poczty.............................................................................................259 Najwa niejsze parametry z pliku main.cf .......................................................................259 queue_directory.........................................................................................................259 command_directory ..................................................................................................259 daemon_directory .....................................................................................................260 mail_owner ...............................................................................................................260 default_privs .............................................................................................................260 myhostname ..............................................................................................................261 mydomain .................................................................................................................261 myorigin....................................................................................................................261 inet_interfaces ...........................................................................................................261 mydestination............................................................................................................262 local_recipient_maps ................................................................................................262 masquerade_domains................................................................................................262 masquerade_exceptions ............................................................................................262 local_transport...........................................................................................................263 alias_maps.................................................................................................................263 alias_database ...........................................................................................................263 home_mailbox...........................................................................................................263 mail_spool_directory ................................................................................................263 mailbox_command....................................................................................................264 mailbox_transport .....................................................................................................264 fallback_transport .....................................................................................................264 luser_relay.................................................................................................................264 smtpd_recipient_limit ...............................................................................................265 smtpd_timeout...........................................................................................................265 mynetworks_style .....................................................................................................265 mynetworks...............................................................................................................266 allow_untrusted_routing ...........................................................................................266 maps_rbl_domains ....................................................................................................266 smtpd_client_restrictions ..........................................................................................266 smtpd_sender_restrictions.........................................................................................267 smtpd_recipient_restrictions .....................................................................................267 smtpd_helo_required.................................................................................................267 smtpd_helo_restrictions ............................................................................................267 smtpd_delay_reject ...................................................................................................268 strict_rfc821 _envelopes ...........................................................................................268 header_checks ...........................................................................................................268 body_checks..............................................................................................................268 message_size_limit ...................................................................................................269 relay_domains ...........................................................................................................269 mynetworks...............................................................................................................269 smtpd_banner............................................................................................................269 local_destination_concurrency_limit........................................................................270 default_destination_concurrency_limit.....................................................................270 debug_peer_list .........................................................................................................270 debug_peer_level ......................................................................................................270 debugger_command..................................................................................................270 disable_vrfy_command.............................................................................................271 Konfiguracja podstawowych plików...............................................................................271 Konfiguracja pliku master.cf ....................................................................................271 Konfiguracja pliku aliases.........................................................................................271 Konfiguracja pliku virtual.........................................................................................272 Konfiguracja pliku canonical....................................................................................272 Konfiguracja pliku access .........................................................................................272
  7. 7. 8 Serwery internetowe Red Hat Linux Wykorzystanie poleceń administracyjnych.....................................................................273 Terminologia serwerów poczty elektronicznej ...............................................................273 Programy typu Mail User Agent...............................................................................274 Skład poczty..............................................................................................................274 Programy typu Mail Transport Agent.......................................................................274 Nagłówki poczty .......................................................................................................275 Koperta......................................................................................................................275 Przykładowe konfiguracje...............................................................................................276 Przykład 1: Wysyłanie poczty ..................................................................................276 Przykład 2: Przyjmowanie poczty dla ró nych domen.............................................276 Przykład 3: Wirtualne domeny w stylu systemu Postfix ..........................................277 Przekazywanie poczty między adresami wirtualnymi..............................................278 Przykład 4: Weryfikacja ustawień DNS dla serwera poczty ....................................280 Przykład 5: Przekazywanie całej poczty przez serwer centralny..............................287 Przykład 6: Konfiguracja serwera centralnego .........................................................288 Przykład 7: Minimalizacja ilości niechcianej poczty................................................288 Podstawy systemu spamassassin...............................................................................290 Podsumowanie ................................................................................................................291 Rozdział 11. FTP ............................................................................................... 293 Podstawy protokołu FTP.................................................................................................293 Washington University FTP (WU-FTPD) ......................................................................294 Instalacja WU-FTPD ................................................................................................295 Plik konfiguracyjny /etc/xinetd.d/wu-ftpd ................................................................296 Plik ftpaccess ............................................................................................................298 Plik ftpconversions....................................................................................................302 Konfiguracja serwera FTP trybu rzeczywistego .............................................................303 Konfigurowanie kont gościnnych ...................................................................................303 Konfiguracja kont anonimowych ....................................................................................305 Konfiguracja kont anonimowych..............................................................................305 Konfiguracja mo liwości anonimowego przesyłania plików na serwer...................306 Rozwiązywanie problemów z serwerem WU-FTPD ......................................................308 Kontrola na poziomie ogólnym ................................................................................309 Problemy z trybem gościnnym .................................................................................311 Problemy z trybem anonimowym.............................................................................313 Podsumowanie ................................................................................................................314 Rozdział 12. Konfiguracja Samby ....................................................................... 315 Wprowadzenie do Samby................................................................................................315 Składnia pliku smb.conf............................................................................................317 Parametry pliku smb.conf .........................................................................................317 Struktura pliku smb.conf...........................................................................................318 Przykłady konfiguracji Samby ........................................................................................319 Konfiguracja Samby w celu wykorzystania szyfrowanych haseł.............................319 Tworzenie zasobów Samby ......................................................................................323 Dostęp do macierzystych katalogów u ytkowników................................................323 Uprawnienia Linuksa i Samby..................................................................................324 Wykorzystanie makr Samby .....................................................................................330 Udostępnianie drukarek sieciowych za pomocą Linuksa i Samby...........................331 Narzędzie SWAT ............................................................................................................335 Rozwiązywanie problemów ............................................................................................335 Podsumowanie ................................................................................................................336
  8. 8. Spis treści 9 Część IV Zarządzanie serwerami linuksowymi..............................339 Rozdział 13. Automatyzacja sieciowych kopii zapasowych................................. 341 Wprowadzenie do systemu AMANDA...........................................................................342 Szczegóły systemu AMANDA .......................................................................................343 Części serwerowa i kliencka systemu AMANDA....................................................343 Serwisy sieciowe.......................................................................................................344 Pliki konfiguracyjne..................................................................................................345 Narzędzia systemu AMANDA .................................................................................347 Wykorzystanie systemu AMANDA................................................................................348 Konfiguracja minimalistycznego systemu kopii zapasowych ..................................349 Konfiguracja prostego systemu kopii zapasowych...................................................352 Automatyzacja procesu wykonywania kopii zapasowych........................................357 Rozwiązywanie problemów ............................................................................................357 Podsumowanie ................................................................................................................358 Rozdział 14. Zwiększanie niezawodności serwera............................................... 361 Lokalizacja słabych punktów ..........................................................................................361 Wykorzystanie systemu plików ext3...............................................................................363 Wykorzystanie macierzy RAID ......................................................................................365 RAID programowy ...................................................................................................365 Implementacja programowej macierzy RAID ..........................................................368 Tworzenie klastra o wysokiej dostępności......................................................................370 Mechanizm działania HA .........................................................................................371 Tryby przejęcia obsługi.............................................................................................371 Tworzenie prostego klastra wysokiej dostępności na Linuksie................................372 Testowanie systemu Heartbeat .................................................................................374 Podsumowanie ................................................................................................................375 Część V Zwiększanie bezpieczeństwa ........................................379 Rozdział 15. Podstawy bezpieczeństwa serwerów ............................................... 381 Zrozumienie zagro eń .....................................................................................................381 Znaczenie poprawek systemowych.................................................................................382 Identyfikacja napastników...............................................................................................384 Kategorie napastników..............................................................................................384 Przewidywanie ataków....................................................................................................386 Sposoby obrony...............................................................................................................389 Podsumowanie ................................................................................................................396 Rozdział 16. Podstawy bezpiecznej administracji systemów................................ 397 Administrator systemu a administrator bezpieczeństwa .................................................397 Automatyczna aktualizacja, łaty i zagro enia .................................................................398 Środowisko produkcyjne i rozwojowe............................................................................400 Automatyczne instalowanie poprawek............................................................................402 Minimalizacja, standaryzacja i upraszczanie ..................................................................404 Zrozumieć minimalizację..........................................................................................404 Trzy cnoty główne ....................................................................................................407 Monitorowanie i bezpieczna zdalna administracja .........................................................407 Centralny system zarządzania .........................................................................................409 Monitorowanie stanu.......................................................................................................410 Podsumowanie ................................................................................................................411
  9. 9. 10 Serwery internetowe Red Hat Linux Rozdział 17. Wzmacnianie systemu.................................................................... 413 Zrozumieć proces wzmacniania systemu........................................................................413 Ręczne wzmacnianie systemu...................................................................................415 Blokowanie lub usuwanie niepotrzebnych programów............................................415 Powtórka z procesu uruchamiania Linuksa ..............................................................417 Kontynuacja audytu demona sieciowego..................................................................422 Automatyczne wzmacnianie systemu za pomocą Bastille Linux .............................435 Moduł zabezpieczeń kont u ytkowników.................................................................435 Moduł bezpieczeństwa procesu uruchamiania systemu ...........................................436 Konfiguracja ustawień mechanizmu PAM ...............................................................436 Moduł deaktywacji demonów...................................................................................436 Moduł blokujący dostęp do narzędzi ........................................................................437 Moduł uprawnień do plików.....................................................................................437 Moduł dzienników ....................................................................................................437 Moduł wydruku.........................................................................................................438 Moduł zabezpieczania inetd lub xinetd.....................................................................438 Moduł zabezpieczenia katalogu tymczasowego .......................................................438 Moduł Apache...........................................................................................................439 Moduł BIND (DNS) .................................................................................................439 Moduł FTP ................................................................................................................439 Moduł sendmail ........................................................................................................440 Moduł zapory sieciowej............................................................................................440 Moduł detekcji skanowania portów ..........................................................................440 Podsumowanie ................................................................................................................440 Rozdział 18. Proste systemy wykrywania włamań............................................... 443 Sieciowe i systemowe wykrywanie włamań...................................................................443 Określenie zakresu odpowiedzialności ...........................................................................444 Odpowiedzialność administratora.............................................................................444 Odpowiedzialność oznacza władzę...........................................................................446 Mechanizmy sieciowe .....................................................................................................447 Pakiety.......................................................................................................................447 Adresy IP ..................................................................................................................449 Porty..........................................................................................................................451 ICMP.........................................................................................................................454 UDP...........................................................................................................................454 TCP ...........................................................................................................................454 Rozpoznania i zagro enia .........................................................................................456 Projektowanie defensywnej konfiguracji sieci................................................................459 Filtrowanie na routerach oraz zapory sieciowe ........................................................459 Filtrowanie ingress i egress.......................................................................................460 DMZ..........................................................................................................................460 Hosty bastionowe......................................................................................................460 Dedykowane serwery................................................................................................461 Projektowanie strategii wykrywania włamań .................................................................461 Ustalanie reguł.................................................................................................................462 Detektory włamań nie wykrywają włamań...............................................................463 Pozytywne specyfikacje są złe..................................................................................463 Negatywne specyfikacje nie są lepsze ......................................................................463 Heurystyczne wykrywanie anomalii — Święty Graal..............................................464 Przykładowy system NIDS — Snort...............................................................................464 Opis i historia............................................................................................................464 Przegląd funkcji systemu Snort (wybrane opcje wiersza poleceń)...........................465 Podsumowanie ................................................................................................................467
  10. 10. Spis treści 11 Rozdział 19. Monitorowanie plików dziennika oraz reagowanie na zdarzenia ......... 469 Odczytywanie systemowych plików dziennika ..............................................................469 Rejestrowanie danych w plikach dziennika ....................................................................470 Rejestrowanie danych w plikach dziennika aplikacji ...............................................471 Rejestrowanie danych w plikach dziennika systemu................................................472 Rejestrowanie danych w hybrydowych plikach dziennika.......................................473 Syslog........................................................................................................................474 Wykonywanie akcji wybranych przez selektor...............................................................475 Pola selektorów, jednostki oraz priorytety................................................................475 Miejsca docelowe......................................................................................................477 Wykorzystywanie plików dziennika ...............................................................................478 Analiza bezpośrednia ................................................................................................479 Narzędzia przetwarzające pliki dziennika ................................................................479 egrep..........................................................................................................................480 Tworzenie raportów ..................................................................................................482 Narzędzie monitorujące pliki dziennika ...................................................................485 Zarządzanie odpowiedziami na zdarzenia.......................................................................486 Najgorsza jest panika ................................................................................................486 Przewidywanie oznacza politykę bezpieczeństwa....................................................487 Podsumowanie ................................................................................................................487 Dodatki .......................................................................................489 Dodatek A Konfiguracja komutowanego połączenia typu dial-up z siecią Internet ...491 Lokalizacja modemu .......................................................................................................491 Nawiązywanie połączenia z siecią Internet ..............................................................493 Dodatek B Automatyzacja konfiguracji serwera ............................................... 499 Instalacja systemu przy u yciu programu Kickstart .......................................................500 Tworzenie pliku konfiguracyjnego programu Kickstart .................................................500 Tworzenie dyskietki startowej programu Kickstart ........................................................501 Instalacja przy u yciu programu Kickstart......................................................................503 Tworzenie własnych pakietów RPM...............................................................................503 Wygląd pakietu RPM................................................................................................504 Przykładowy pakiet RPM .........................................................................................504 Dodatek C Stosowanie usługi DHCP ................................................................ 507 Instalacja dhcpd...............................................................................................................507 Konfiguracja stacji roboczej działającej pod kontrolą systemu Red Hat Linux w celu korzystania z usługi DHCP ...............................................................................508 Konfiguracja komputera działającego pod kontrolą systemu Windows w charakterze klienta DHCP ........................................................................................509 Skorowidz...................................................................................... 511
  11. 11. Rozdział 18. Proste systemy wykrywania włamań W niniejszym rozdziale zajmiemy się systemami wykrywania włamań (Intrusion Detection System — IDS). System IDS nie wie, kim jest intruz. Taki system śledzi zdarzenia i warunki związane z wrogą aktywnością w komputerze lub sieci. Ktoś — a konkretnie administrator — musi określić, które sytuacje oznaczają włamanie i upew- nić się, e IDS będzie na nie odpowiednio reagować. W rzeczywistości większość systemów IDS ma określony zestaw domyślnych warunków wskazujących, e w systemie dzieje się coś niedobrego, lecz ka dego dnia pojawiają się nowe sytuacje tego typu, więc ktoś musi uzupełniać ustawienia IDS, tak aby reago- wał na takie „niestandardowe” przypadki. Jak się wkrótce przekonamy, administrator znajduje sytuacje specyficzne dla konkretnej konfiguracji, które chciałby uwzględnić w reakcjach systemu wykrywania, a które nie były przewidziane w standardowej kon- figuracji udostępnionej przez dostawcę systemu IDS. Sieciowe i systemowe wykrywanie włamań Wielu obcych i złych ludzi przygląda się ciągle naszym komputerom. Być mo e spo- tkałeś się ju z ich śladami wyzierającymi z katalogów, w których wprowadzili własne poprawki i podmienili narzędzia systemowe na własne, które bardziej im się podobały. Biznes alarmów antywłamaniowych kwitnie najbardziej w okresach, kiedy włamywacze są bardziej aktywni. Z tego samego powodu wysoką popularnością cieszą się „alarmy antywłamaniowe” sieci komputerowych, czyli systemy IDS. Wielu sprzedawców wmu- sza je tak samo, jak robią to z zaporami sieciowymi — sugerują jakoby były cudownym środkiem rozwiązującym wszelkie problemy z intruzami. Jeśli wierzysz fachowcom od marketingu, powtórzymy to, co mówiliśmy ju kilkakrotnie: nie ma cudownych środ- ków. Naprawdę. Zaufaj nam.
  12. 12. 444 Część V ♦ Zwiększanie bezpieczeństwa Nie chcemy jednak deprecjonować znaczenia zapór sieciowych czy systemów IDS. Zarówno zapory sieciowe jak, i IDS są potrzebne pod warunkiem, e zostały właściwie zaprojektowane. Nie uzyskamy większych korzyści z ich stosowania, jeśli ich imple- mentacja nie będzie poprzedzona dokładną analizą konkretnej sieci i systemów. W tym rozdziale omówimy ogólne koncepcje związane z systemami IDS, a następnie przed- stawimy bardzo ciekawy i darmowy system sieciowego wykrywania włamań (NIDS) o nazwie Snort. Nawiasem mówiąc, skrót NIDS oznacza Network Intrusion Detection System, czyli system sieciowego wykrywania włamań, natomiast HIDS jest skrótem od Host Intrusion Detection System, czyli systemu wykrywania włamań na poziomie systemu (systemowy). Sieciowe systemy IDS śledzą zdarzenia w sieci w oczekiwaniu na ataki. Systemowe IDS działają w monitorowanym systemie w oczekiwaniu na nieautoryzowany dostęp, a nawet na nietypowe zachowanie systemu i u ytkowników. Zaletą podejścia siecio- wego jest lepsza skalowalność i o wiele większa prostota rozwiązania. W rezultacie w większości przypadków pojęcie IDS jest uto samiane z podejściem sieciowym do tego zagadnienia, czyli z NIDS. Teoretycznie podejście systemowe cechuje się większą dokładnością, z mniejszym prawdopodobieństwem fałszywych alarmów, lecz dość trudno o dobrą implementację systemu HIDS opartego o analizę nietypowych zachowań. Najpopularniejsza imple- mentacja systemu HIDS polega na sprawdzaniu integralności plików systemowych. Program tego typu monitoruje najwa niejsze pliki w systemie pod kątem wprowadza- nych zmian. Podejście to opiera się o stwierdzenie, e włamywacz w celu zwiększe- nia swoich uprawnień lub zachowania dostępu do systemu na stałe z reguły stara się zmodyfikować wa ne konfiguracje w systemie. W kolejnym podrozdziale zapoznamy się z koncepcją NIDS jako częścią planowania systemu bezpieczeństwa. Rozpoczniemy od problemu określenia roli, jaką chcemy powierzyć podsystemowi NIDS w całym systemie. Określenie zakresu odpowiedzialności Zdecydowaliśmy się zatem zaimplementować NIDS w naszej sieci. Jak wspomnieli- śmy, wią e się to z koniecznością przeprowadzenia wstępnej analizy i planowania. Zanim zajmiemy się więc tą najbardziej ekscytującą częścią zadania, jaką niewątpli- wie są ataki sieciowe, musimy odpowiedzieć sobie na kilka wa nych pytań tak oczy- wistych, e często zapominamy sobie na nie odpowiedzieć. Bez odpowiedzi na nie nie ma sensu dalsze działanie w tym kierunku. Pytania te przeanalizujemy w kolejnych podrozdziałach. Odpowiedzialność administratora Ten rozdział ksią ki zajmuje się bezpieczeństwem, rozpatrzymy zatem odpowiedzialność administratora w dziedzinie bezpieczeństwa.
  13. 13. Rozdział 18. ♦ Proste systemy wykrywania włamań 445 Im więcej zastanawiamy się nad komputerem — indywidualnie lub jako częścią sieci — tym bardziej dochodzimy do przekonania, e trzeba go chronić lub pilnować, a raczej jedno i drugie! Podczas pierwszej sesji kontroli ruchu w sieci administratorzy niezmiennie dają się zaskoczyć ilością odbywających się transakcji. Takie samo odczucie towarzy- szy im podczas pierwszej kontroli dzienników na scentralizowanym serwerze dzienni- ków systemu sieciowego. Uświadomienie sobie implikacji ka dego bitu ruchu siecio- wego i ka dego wpisu w dziennikach stanowi tę łatwiejszą części większego zadania. Prawdziwa praca zaczyna się, gdy musimy ka dą z tych części przeanalizować w powią- zaniu z innymi zdarzeniami, szczególnie wtedy gdy wcią napływają nowe informa- cje i pojawiają się nowe potencjalne zagro enia systemu. Jeśli chcemy utrzymać kontrolę, od samego początku musimy narzucić sobie ograni- czenia. Musimy określić ramy odpowiedzialności i mo liwości projektowanego systemu bezpieczeństwa, zanim zaczniemy zastanawiać się, w jaki sposób ustawić poszczególne jego elementy. We wszystkich tych przypadkach musimy zastanowić się, co musimy chronić, i nakreślić zakres naszych wymagań dotyczących bezpieczeństwa. Zarządzanie systemem dla pracodawcy. Jeśli dla kogoś pracujesz, musisz wiedzieć, czego się od Ciebie oczekuje. Odpowiedź na tę kwestię musi być ujęta na piśmie, jak w umowie. Co mam chronić? Te zagadnienia formułują zakres odpowiedzialności. Ka da strategia NIDS (lub pokrewna) musi zawierać wszystkie elementy bezpieczeństwa w określonym zakresie odpowiedzialności. Jeśli określona strategia przynosi korzyść innym, to doskonale, lecz przede wszystkim nale y skupić się na realizacji własnych zadań, jeśli chcemy osiągnąć jakiekolwiek rezultaty. Zarządzanie systemem we własnej firmie. Jeśli system, którym zarządzasz, słu y Twoim własnym interesom, musisz określić swoje oczekiwania w stosunku do niego. Jeśli Twoja firma prowadzi serwisy WWW, nie ma potrzeby udostępniania serwera IRC (w ka dym razie nie na tej samej maszynie!). Po określeniu wymagań biznesowych wiemy ju , co musimy chronić. Po prostu chronimy mo liwości spokojnego prowadzenia interesów. Ta zasada przekłada się bezpośrednio na ochronę określonych systemów, a nawet określonych funkcji systemów. Zarządzanie systemem na u ytek prywatny. Mo na równie zarządzać systemem na własny u ytek lub te w celu udostępnienia go grupce przyjaciół. Dla zabawy. Wtedy chcesz chronić ten system dla siebie i swoich przyjaciół, aby kontynuować zabawę. Oczywiście chcemy śledzić wszystkie zagadnienia dotyczące serwerów (lub przynajm- niej dotyczące świadczonych przez nie usług). Chcemy równie śledzić inne zagad- nienia, na przykład tylko ruch sieciowy skierowany do serwerów w naszej sieci. Jeśli jednak przytrafią się podejrzane pakiety skierowane do serwera lub kilku z nich, nie mamy pewności, czy to były skany w poszukiwaniu słabych punktów systemu, czy te śmieci w wyniku jakiegoś błędu sprzętowego urządzeń sieciowych w drugim końcu świata. Jeśli jednak monitorujemy cały ruch sieciowy i widzimy, e takie same pakiety trafiły do większej liczby maszyn w sieci w kolejności zgodnej z numeracją adresów, wiemy ju , e mamy do czynienia ze skanem. Błędy sprzętowe nie charakteryzują się takim uporządkowaniem.
  14. 14. 446 Część V ♦ Zwiększanie bezpieczeństwa Gdy określimy zakres ochrony, musimy ustalić zakres nadzoru, aby uzyskać informacje wystarczające do zapewnienia tej ochrony. Nale y określić zakres monitoringu sieciowego. Zakres monitoringu mógłby z powodzeniem obejmować cały Internet i ka dy komputer w Internecie, jak równie podsystemy energetyczne, do których podłączony jest nasz system. Oczywiście nie mamy dostępu do tych informacji, dlatego musimy skoncen- trować się na kontroli tych obszarów, które mo emy kontrolować. Do tej grupy nale y cały ruch przechodzący przez monitorowany system (niezale nie od tego, czy ruch jest skierowany do tego systemu). Mamy dostęp do wszystkich dzienników systemowych, które mo e wygenerować system (niestety nie wszystkie procesy, które są w stanie wyge- nerować informacje do dziennika, mają domyślnie aktywną tę funkcję). Czy posiada- ne informacje są wartościowe? Prawdopodobnie. Czy są wystarczające? Na pewno nie. Informacji nigdy nie jest wystarczająco du o. Czy posiadana ilość informacji jest roz- sądna z punktu widzenia potrzeb związanych z wykonywanymi przez nas zadaniami? To zale y od własnej oceny. Nie mo emy na nikim wymusić zakresu prowadzonego monitoringu, ka dy musi sam to określić. My mo emy jedynie powiedzieć, e zakres monitoringu powinien odpowiadać zakresowi wymagań. Odpowiedzialność oznacza władzę W poprzednim podrozdziale milcząco zało yliśmy, e administrator (czytelnik) jest w stanie podjąć odpowiednie środki bezpieczeństwa na wszystkich serwerach, którymi zarządza. Innymi słowy, nikt nie będzie pociągał go do odpowiedzialności za zagad- nienia wybiegające poza zakres jego kontroli. W idealnym świecie nie byłoby w ogóle potrzeby podkreślania tego oczywistego faktu. W rzeczywistym jednak uwa amy, e jest to zagadnienie, które warto wyraźnie podkreślić. Jeśli administrator uwa a, e pewne zagadnienia są kluczowe w celu realizacji funkcji bezpieczeństwa, lecz nie ma nad nimi kontroli, powinien natychmiast podjąć ten temat na piśmie. Notatka słu bowa stanowi doskonałe narzędzie formalne, zwykle wykorzystywane w celu wyjaśnienia zagadnień. W naszym przypadku mo e być z powodzeniem u yta jako uprzejme zwrócenie uwagi na to, e ktoś podjął błędne decyzje. Oto przykład takiej notatki: Od: Ktoś Do: Szef i Szef Szefa Data: 1 marca 2003r. Temat: Hasło konta root na serwerze baz danych No to co Ty właściwie robisz? Jeśli z umowy lub zakresu obowiązków nie można jasno wywnioskować zakresu odpowiedzialno- ści, należy wyegzekwować taki dokument na piśmie. Istnieje tendencja do obwiniania administra- torów systemów za wszelkiego rodzaju problemy. Tym bardziej dotyczy to osób odpowiedzialnych za bezpieczeństwo systemów! Należy zatem jasno zdefiniować odpowiedzialność i wszystkie strony muszą potwierdzić tę umowę na piśmie.
  15. 15. Rozdział 18. ♦ Proste systemy wykrywania włamań 447 Niniejsza notatka ma za zadanie udokumentować wyniki spotkania z 28 lutego 2003r. dotyczącego zagadnień bezpieczeństwa głównego serwera bazy danych. Po przeanalizowaniu zaleceń szefa systemu bezpieczeństwa (zob. poprzednia notatka z dnia 30 listopada 2002r.) dotyczącego wymogu wykorzystania haseł na koncie root słu by wykorzystujące ten serwer uznały, i spowoduje to nadmierne komplikacje procesu uwierzytelniania u ytkowników przewy szające zalety uzyskane z podniesienia poziomu bezpieczeństwa. Jak widać, notatka ta odwołuje się do poprzedniej notatki. Gdy administrator jest osobą zatrudnioną w firmie, pozostawianie śladu na papierze na temat wszelkich zdarzeń jest kluczowe dla bezpieczeństwa własnej pracy. Jeśli administrator pracuje na własną rękę, równie powinien to robić, choćby po to, by później prześledzić zdarzenia i upewnić się, e właściciel pamięta o wszystkim, co powiedział. Przed dalszą analizą przygotowującą do wdro enia mechanizmu NIDS prześledźmy mechanizmy sieciowe w Internecie. Czytelnicy dobrze zaznajomieniu z terminologią sieci TCP/IP mogą pominąć te rozwa ania. Mechanizmy sieciowe Niniejszy podrozdział omawia zagadnienia związane z systemami wykrywania włamań, szczególnie sieciowymi; skupia się na konkretnym rozwiązaniu o nazwie Snort. Uzgod- niliśmy, e do obowiązków administratora nale y określenie zakresu kontroli zdarzeń w sieci w odniesieniu do specyfiki danej instalacji. Czytelnicy, którzy posiadają dobrą orientację w zakresie zagadnień TCP/IP oraz rodzajów ataków i skanowania sieci, mogą potraktować ten podrozdział jak podsumowanie. Pozostali znajdą w nim skromne wpro- wadzenie do grubych ksią ek traktujących o tych tematach, których poznanie jest klu- czowe w celu dalszej i skutecznej pracy z mechanizmami typu NIDS. TCP/IP jest rodziną standardowych protokołów sieciowych wykorzystywanych w Inter- necie (w rzeczywistości IP jest skrótem od Internet Protocol). Protokół sieciowy mo na traktować jak język, którym porozumiewają się urządzenia sieciowe podczas przesyłania komunikatów przy u yciu kabli, światłowodów czy fal radiowych. W sieci mogą być przesyłane równie i inne rodzaje ruchu, szczególnie jeśli wykorzystywany w niej jest system Microsoft Windows. Innych protokołów u ywa równie sieć Novell. Nie będzie- my jednak wnikać w szczegóły. Zajmiemy się rodziną protokołów TCP/IP, poniewa to one obsługują komunikację w Internecie. Pakiety Informacje przesyłane w sieci są podzielone na kawałki, nie są przesyłane ciągłym strumieniem danych. Dzięki temu ró ne transakcje mogą regularnie otrzymywać frag- menty czasu w sieci. Najpierw przechodzi jeden z pakietów nadawcy A, następnie jeden od nadawcy B, następnie od C, potem znów od A. Właściwie większość aktywności odbywa się w trakcie pisania na klawiaturze czy przeglądania stron WWW.
  16. 16. 448 Część V ♦ Zwiększanie bezpieczeństwa Dane są przesyłane w porcjach opakowanych z obydwu stron dodatkowymi informacjami umo liwiającymi nawigację i dostarczanie ich w Internecie. Typ pakietu uzale niony jest od przeznaczenia przesyłanych danych oraz wymaganego typu transmisji. System IDS, taki jak Snort, przegląda informację na temat pakietów, a tak e dane w nich zawarte. W rzeczywistości z samego pakietu mo na wyciągnąć mnóstwo informacji! Większość zapór sieciowych pracuje wyłącznie w oparciu o informacje na temat pakietu. Wiele decyzji podejmowanych przez te narzędzia polega wyłącznie na niewłaściwym wyglądzie „opakowania”, niezale nie od zawartości pakietu. Kapsułkowanie Przyglądając się bli ej opakowaniu, stwierdzimy, e dane przesyłane w sieci raczej nie są zamykane w jednym pakiecie, lecz z reguły znajdują się w pakiecie, który znajduje się w innym pakiecie, który znajduje się w kolejnym — średnio wykorzystywane są cztery warstwy takiego „opakowania”. Takie warstwowe pakiety mo na sobie wyobra- zić jako koperty wło one jedna w drugą, gdy ka da z nich zawiera pewne informacje częściowe, niezbędne w celu dostarczenia zawartych w nich danych. Taka informacja w zagnie d onych warstwach jest częścią strategii komunikacyjnej znanej pod nazwą kapsułkowania (encapsulation) lub izolacji. Taka strategia komunikacyjna jest niezbędna, poniewa trasa przesyłania danych jest skomplikowana, a my na ka dym etapie podró- y nie chcemy zawierać w danych pakietu więcej informacji, ni to niezbędne. Pamiętaj- my, e trasa pakietu prowadzi od procesu na jednej maszynie w konkretnej sieci, do drugiego procesu, najczęściej na innej maszynie, niejednokrotnie w zupełnie innej sieci. Pakiet musi przejść przez ró ne sieci na swojej drodze. Zewnętrzna „koperta” zawsze zawiera informacje niezbędne do podró y do następnej sieci. Po dotarciu do niej router zdejmuje jedną warstwę pakietu (zewnętrzną kopertę) i nakłada kolejną, zawierającą informację na temat podró y do następnej sieci. Kolejne warstwy wewnętrzne zawie- rają coraz bardziej szczegółowe informacje na temat adresu komputera w Internecie oraz procesu na komputerze będącym adresatem pakietu. Informacje te obejmują rów- nie ró ne typy wiadomości na temat priorytetu przenoszonych danych oraz inne dane pomagające w bezpiecznej przesyłce. Narzut transmisyjny: komunikacja połączeniowa i bezpołączeniowa W komunikacji sieciowej istnieje pojęcie nawiązywania połączenia, które polega na zastosowaniu procedur słu ących do zapewnienia uporządkowanej komunikacji wyso- kiej niezawodności między systemami. Protokoły o niskiej niezawodności przesyłają dane do adresata bez potwierdzenia powodzenia transmisji. Tego typu komunikacja nosi nazwę bezpołączeniowej. Komunikację wysokiej niezawodności nazywamy połą- czeniową. Protokołem bezpołączeniowym z rodziny TCP/IP jest protokół UDP (User Datagram Protocol), natomiast protokół połączeniowy nosi nazwę TCP (Transmission Control Protocol).
  17. 17. Rozdział 18. ♦ Proste systemy wykrywania włamań 449 Adresy IP Ka dy interfejs sieciowy w Internecie posiada własny adres IP. Jeśli zało ymy, e wyko- rzystywany serwer posiada tylko jedną kartę sieciową, będzie on właścicielem co naj- mniej jednego adresu IP. W przypadku zastosowań domowych i małych form adres IP jest nadawany przez dostawcę usług internetowych. W firmach adres ten nadaje z reguły administrator sieci. Kiedy stosujemy mechanizm translacji adresów (NAT), wykorzystywane są adresy prywatne. Jeśli używasz tego typu konfiguracji, najprawdopodobniej wiesz wystar- czająco dużo, by spokojnie pominąć dalszy ciąg wywodów na temat adresów, lub wpędzasz się w kłopoty, z których będziesz mógł wybrnąć tylko przy pomocy dobrze opłaconego specjalisty. Adres IP jest zapisany w postaci czterech liczb o wartościach od 0 do 255. Typowy adres IP ma następującą postać: 192.168.1.14. Nie wszystkie kombinacje liczb dają u yteczne adresy IP, lecz nie musimy się tym przejmować, poniewa to nie my je wymyślamy. Ka dy pakiet skierowany do naszego systemu będzie miał wyspecyfikowany jego adres IP w polu swojego adresu docelowego. Ka dy pakiet wychodzący z systemu będzie miał jego adres w swoim polu adresu źródłowego. Te same zasady dotyczą innych sys- temów w sieci, których ruch będziemy monitorować z naszego serwera. System NIDS mo na skonfigurować w taki sposób, e będzie monitorować określone adresy źródłowe i docelowe (w dowolnych kombinacjach). Adresy dynamiczne Adres IP skonfigurowany na stałe w systemie nazywamy adresem statycznym. Wiele organizacji wykorzystuje odmienne podejście polegające na dynamicznym nadawaniu adresów IP z predefiniowanej puli podczas uruchamiania systemu. Ten mechanizm obsługuje protokół DHCP (Dynamic Host Configuration Protocol). Wykorzystanie tego typu mechanizmu utrudnia konfigurację systemu NIDS, poniewa nie mo na okre- ślić adresów IP systemów, które miałyby być śledzone przez ten system (mogą być ró ne po ka dym uruchomieniu systemu). DNS Niewiele osób ma wprawę w zapamiętywaniu czwórek liczb od 0 do 255 (choć podczas pracy z systemami NIDS mo na w tym dojść do wprawy). Ludzi preferują nazwy, takie jak „Alicja”, „Dawid” czy „www.yahoo.com”. System DNS (Domain Name System) jest sposobem na związanie adresów IP z nazwami oraz na udostępnienie wszystkim zainteresowanym nazw systemów podłączonych do Internetu. W ten sposób ka da orga- nizacja mo e zarządzać listą nazw własnych serwerów podłączonych do Internetu. Gdy system zna nazwę systemu docelowego, najczęściej komunikuje się z serwerem DNS w celu uzyskania odpowiedniego adresu IP, na który mo e przesłać dane. Zwróć- my uwagę, e ądanie DNS jest samo w sobie równie transakcją, odbywającą się przed
  18. 18. 450 Część V ♦ Zwiększanie bezpieczeństwa nawiązaniem transakcji przesyłania danych. Jeśli wykorzystywany program wypisuje informację na temat adresu IP wraz z nazwą (wiele systemów NIDS działa właśnie w ten sposób), częste ądania DNS mogą spowolnić wyświetlanie informacji. Zalecamy wyłą- czenie zapytań DNS tam, gdzie to tylko mo liwe zarówno w aplikacjach, jak i w pole- ceniach systemowych. Routery Komunikacja (pakiety) na swojej drodze od nadawcy do adresata przechodzi przez ró ne urządzenia zwane routerami i bramami. Router po prostu przesyła pakiet z jed- nej sieci do drugiej. W organizacji średniej wielkości komunikacja wewnętrzna naj- częściej jest przekazywana za pośrednictwem jednego do czterech takich urządzeń. Zewnętrzna komunikacja przechodzi przez 10 do 20 routerów. W naszych rozwa aniach u ywamy określeń „sieć lokalna” oraz „inne sieci”. Jednak zaawansowana technologia sieciowa nieco rozmywa granice między sieciami, lecz nadal w miarę konsekwentnie mo na twierdzić, e granicę między ró nymi sieciami stanowi router. Router brzegowy jest ostatnią barierą między siecią lokalną a Internetem. Routery posiadają dwa lub większą liczbę interfejsów sieciowych, ka dy z nich przyłączony jest do innej sieci. Jeśli pakiet wysłany z sieci lokalnej mo e dotrzeć do adresata bez potrzeby przechodzenia przez router brzegowy, oznacza to, e adresat równie znaj- duje się w sieci lokalnej. Kilka lat temu z dowolnej stacji mo na było monitorować ka dy pakiet przychodzący do sieci lokalnej, nawet jeśli był przeznaczony do innego adresata. W wielu sieciach wykorzystujących przestarzały lub niedrogi sprzęt nadal jest to mo liwe. Coraz popularniejsze stają się jednak sieci przełączane. W sieciach tego typu dane, które docierają do danego interfejsu sieciowego, są tylko do niego adresowane. Ruch nieadresowany do danego interfejsu nigdy do niego nie dotrze. Jeśli chcemy monitoro- wać ruch w sieci, administrator sieci mo e skonfigurować specjalny port na przełącz- niku (tzw. monitor port), na który będzie dodatkowo przesyłany cały ruch adresowa- ny do pozostałych stacji przyłączonych do przełącznika. Jeśli na przykład wykryjemy podejrzany ruch w podsieci, który wydaje się pochodzić z zewnątrz, lecz ruch ten nie jest wykrywany na routerze brzegowym, mamy jasny dowód na to, e któryś z syste- mów w sieci został przejęty przez włamywacza, który fałszuje adres źródłowy wysy- łanych przez siebie pakietów. Żyj jak najlepiej z innymi administratorami! Jak można zauważyć, wiele rzeczy, które istnieją w sieci i są nam potrzebne, zależy od admi- nistratora tej sieci. W rzeczywistości dobre poznanie swojego administratora i jego pracy jest jedną z lepszych inwestycji. Jeśli poważnie traktujesz wykorzystanie mechanizmów NIDS, bardzo ważne jest nadążanie za zmianami w sieci, często niezauważalnymi dla zwykłych użytkowników. Informacje te posiada administrator sieci, ponieważ to on wdraża zmiany! Gdy coś pójdzie źle, nie obrażaj administratora, wytykając mu niekompetencję. Aby wykonać swoją pracę, musicie koegzystować. Pamiętaj, że administrator sieci prawdopodobnie myśli o Tobie to samo, co Ty myślisz o swoich użytkownikach.
  19. 19. Rozdział 18. ♦ Proste systemy wykrywania włamań 451 Podsieci (notacja CIDR) Przy dokładniejszym spojrzeniu pojęcie podsieci nieco się rozmywa. Podsieć to nadal sieć. Termin podsieć oznacza po prostu, e jest rozumiana jako część większej sieci. Sieć jest z reguły podzielona na podsieci za pomocą routerów lub przełączników, zatem wcześniejsze informacje na temat routerów odnoszą się równie do podsieci. W podsieci musimy znać: jej zakres adresów IP, adres IP routera, który muszą wykorzystywać systemy w sieci w celu komunikacji z innymi sieciami. Jest to szczególnie wa na informacja, gdy jednym z tych systemów jest serwer! Zakresy adresów IP w podsieci najczęściej określane są za pomocą notacji CIDR. Skrót CIDR pochodzi od Classless Inter-Domain Routing. Jeśli w notacji CIDR określimy podsieć w następujący sposób: , oznacza to, e adresy IP w tej pod- sieci muszą mieć pierwsze 23 bity takie same jak w adresie . Adres podsieci ma następującą reprezentację dwójkową: Zatem ka dy adres IP z pierwszymi 23 bitami takimi, jak w powy szej masce nale y do podsieci. Zatem zakres adresów obejmuje adresy od następującego: do następującego: Ten sam zakres w notacji IP obejmuje adresy od do . Podobnie podsieć obejmuje adresy od do . Porty Unikalne adresy IP są podstawą komunikacji między systemami w Internecie. Jednak komunikacja tak naprawdę nie odbywa się między komputerami, a między procesami działającymi w tym przypadku na ró nych komputerach. Dostarczenie pakietu do komputera to nie wszystko, pakiet musi zostać dostarczony do odpowiedniego procesu, który będzie wiedział, co z nim zrobić. Ka demu procesowi komunikującemu się w sieci nadawany jest unikalny numer portu z przedziału od 1 do 65535. Ka dy pakiet przesyłany na dany adres, w którym wartość w polu Destination Port (port docelowy) pasuje do portu danego procesu, zostanie dostar- czony właśnie do niego. Oczywiste jest, e ka dy pakiet przesłany przez ten proces będzie miał w polu Source Port (port źródłowy) określony ten sam numer portu. Wcześniej wspomnieliśmy o ró nicach między protokołami TCP i UDP. Protokoły te ró nią się od siebie na tyle, e ten sam numer portu mo e być wykorzystany przez dwa
  20. 20. 452 Część V ♦ Zwiększanie bezpieczeństwa ró ne procesy, jeśli tylko jeden z nich wykorzystuje protokół TCP, a drugi — UDP. Egzemplarze tego samego portu dla protokołu TCP i dla protokołu UDP są uwa ane za dwa ró ne porty. Pierwszy z nich określamy jako PWOGT VER, a drugi jako PWOGT WFR. Zgodnie z przyjętą konwencją porty od 1 do 1024 są na stałe przypisane określonym usługom sieciowym, na przykład proces serwera SMTP będzie wykorzystywać port VER, serwer WWW udostępnia swoje usługi na porcie VER, usługi DNS są dostępne na portach VER oraz WFR (wybór protokołu uzale niony jest od tego, jakie informa- cje są odczytywane z serwera DNS) itd. Procesy, gniazda i wiązania W poprzednim podrozdziale napisaliśmy, e serwer SMTP wykorzystuje port VER, co oznacza, e proces serwera (na przykład sendmail) musi nasłuchiwać na tym porcie w oczekiwaniu na połączenia. W tym celu podczas uruchomienia proces serwera wywo- łuje specjalną funkcję systemową DKPF , która spowoduje, e port VER będzie zwią- zany z procesem serwera nawet wtedy, kiedy nie jest na nim aktywne adne połączenie. Proces następnie przechodzi do stanu nasłuchiwania (.+56'0+0)), w którym jest gotowy do przyjmowania połączeń. Proces pozostaje w stanie nasłuchiwania a do momentu, gdy otrzyma połączenie lub zostanie zakończony, w wyniku czego zwolni port. System Linux, podobnie jak inne systemy klasy UNIX, traktuje wszystkie obiekty, tak jak pliki. W celu przypisania sobie portu proces prosi system Linux o ustanowienie tzw. gniazda. Gniazdo jest po prostu jedną ze stron komunikacji sieciowej. Linux zwraca tzw. deskryptor pliku gniazda, który mo e być u yty przez proces, podobnie jak byłby u yty zwykły plik, z tą ró nicą, e w przypadku gniazd istnieje większa liczba opcji konfiguracyjnych. Następnie proces wywołuje funkcję DKPF wią ącą z tym gniazdem określony port. Proces nasłuchiwania mo na monitorować z zewnątrz. Gdy system nasłuchuje na okre- ślonym porcie, na przykład VER, mówi się, e port ten jest otwarty. Poniewa port ten jest przez konwencje dedykowany serwerowi SMTP, zakłada się, e na tym porcie nasłuchuje właśnie serwer tego typu (na przykład sendmail). Gdy na tym porcie pojawi się połączenie, serwer wysyła informację tekstową informującą o swojej wersji i tym podobne dane (czasem dane te są zbyt szczegółowe!). Z samego komputera mo na odczytać du o więcej informacji. Polecenie PGVUVCV CRP wypisuje stan wszystkich aktywnych gniazd, w tym gniazd w stanie nasłuchiwania (.+56'0+0)). Opcja C spowoduje, e w wyniku zostaną uwzględnione porty nasłuchujące, opcja R spowoduje wypisanie identyfikatora (PID) oraz nazwy procesu, z którym jest związany dany port, natomiast opcja P zapobiega wykonywaniu zapytań DNS (DNS lookup), o czym wspominaliśmy wy ej. Oto przykładowy wynik polecenia PGVUVCV CRP: PGVUVCV CRP #EVKXG +PVGTPGV EQPPGEVKQPU UGTXGTU CPF GUVCDNKUJGF 2TQVQ 4GEX3 5GPF3 .QECN #FFTGUU (QTGKIP #FFTGUU 5VCVG 2+2TQITCO PCOG VER
  21. 21. .+56'0 TREUVCVF VER
  22. 22. .+56'0 ZKPGVF VER
  23. 23. .+56'0 ZKPGVF
  24. 24. Rozdział 18. ♦ Proste systemy wykrywania włamań 453 VER
  25. 25. .+56'0 UUJF VER
  26. 26. .+56'0 UUJF VER
  27. 27. .+56'0 UUJF VER
  28. 28. .+56'0 [RDKPF VER
  29. 29. .+56'0 RQTVOCR VER
  30. 30. .+56'0 ZKPGVF VER
  31. 31. .+56'0 UUJF VER
  32. 32. .+56'0 ZKPGVF VER
  33. 33. .+56'0 UUJF VER
  34. 34. .+56'0 UUJF VER
  35. 35. .+56'0 UUJF VER
  36. 36. .+56'0 UUJF VER
  37. 37. .+56'0 UUJF VER
  38. 38. .+56'0 UUJF VER '56#$.+5*' UUJF VER '56#$.+5*' UUJF VER '56#$.+5*' KPVGNPGVF VER '56#$.+5*' UUJF VER '56#$.+5*' UUJF VER '56#$.+5*' UUJF VER '56#$.+5*' KPVGNPGVF VER '56#$.+5*' KPVGNPGVF VER '56#$.+5*' KPVGNPGVF VER '56#$.+5*' UUJF VER '56#$.+5*' KPVGNPGVF VER '56#$.+5*' UUJF Zwróćmy uwagę, i procesy nasłuchujące mają ustawiony adres IP na . Niektó- re systemy mogą mieć kilka adresów IP. Ka dy system ma przynajmniej dwa, jednym z nich jest adres tzw. pętli zwrotnej (loopback): . Adres jest inter- pretowany jak wszystkie adresy w systemie. Oznacza to na przykład, e proces UUJF nasłuchujący na porcie VER będzie akceptował połączenia zarówno przychodzące na adres , jak i (oraz inne adresy, które mogłyby być przypisane systemowi). lsof Kolejny program, lsof, wypisuje nawet większą ilość informacji. Wywołanie programu lsof z nazwą pliku spowoduje wypisanie nazwy procesu aktualnie wykorzystującego dany plik. Opcja K ogranicza wypisywane procesy do wykorzystujących gniazda danego typu. W celu uzyskania tych informacji nale y wywołać polecenie NUQH jako root: NUQH K VER %1//#0 2+ 75'4 ( 6;2' '8+%' 5+' 01' 0#/' UUJF TQQV W +2X 6%2 OGO[QTIUUJ RRRFKCN WREQO å '56#$.+5*' ZKPGVF TQQV W +2X 6%2
  39. 39. HVR .+56'0 ZKPGVF TQQV W +2X 6%2
  40. 40. PTRG .+56'0 ZKPGVF TQQV W +2X 6%2
  41. 41. UJGNN .+56'0 ZKPGVF TQQV W +2X 6%2
  42. 42. VGNPGV .+56'0 ZKPGVF TQQV W +2X 6%2 OG O[QTIHVR RRRFKCNWREQO å '56#$.+5*' ZKPGVF TQQV W +2X 6%2 OO[QTI HVRO[QTIHVR å '56#$.+5*'
  43. 43. 454 Część V ♦ Zwiększanie bezpieczeństwa KPVGNPGV TQQV W +2X 6%2 OO[QTIVGNPGV REEDPGV å '56#$.+5*' KPVGNPGV TQQV W +2X 6%2 OO[QTIVGNPGV REEDPGV å '56#$.+5*' KPVGNPGV TQQV W +2X 6%2 OO[QTIVGNPGV REEDPGV å '56#$.+5*' UUJF TQQV W +2X 6%2 OO[QTIUUJ REPCUCIQX å '56#$.+5*' W wyniku swojego działania program lsof wypisał jako plik ka de z gniazd, nazwę procesu wykorzystującego gniazdo, identyfikator tego procesu oraz jego właściciela. Informacje te mogą być bardzo u yteczne do określenia procesu inicjującego połączenie sieciowe, którego nie powinno być w systemie i którego pochodzenie jest trudne do określenia. ICMP Protokół ICMP (Internet Control Message Protocol) wykorzystuje pakiety w charak- terze stosunkowo niewielkich komunikatów słu ących do celów informacyjnych oraz do zarządzania siecią. Wiele z tych komunikatów pozwala rozeznać sytuację problemu z funkcjonowaniem systemu lub usługi oraz jego przyczyny. Na przykład podczas wysła- nia pakietu do nieistniejącego systemu, router danej podsieci odeśle pakiet ICMP typu (Destination Unreachable) o kodzie (Host Unreachable). Najlepiej znanym zastosowaniem protokołu ICMP jest polecenie RKPI, wysyłające pakiety ICMP typu (Echo Request), po których oczekuje w odpowiedzi pakietów typu (Echo Reply). UDP Jak pamiętamy, UDP (User Datagram Protocol) jest protokołem komunikacji bezpołą- czeniowej z rodziny protokołów TCP/IP. Protokół ten jest wykorzystywany zwykle wtedy, gdy na drodze komunikacji nie oczekujemy wielu routerów (lub adnego). Innymi słowy, UDP jest wykorzystywane do realizacji usług, takich jak NFS, które z reguły są wykorzystywane w sieciach lokalnych. Z powodu braku połączenia w komunikacji UDP nagłówek pakietu jest stosunkowo niewielki. Dla uproszczenia przyjmijmy, e nagłówek ten zawiera jedynie adresy oraz porty źródłowe i docelowe pakietu. TCP TCP jest protokołem wykorzystującym połączenia. Nagłówek pakietu zawiera sporo informacji wykorzystywanych w celu kontroli przekazania pakietu oraz w celu odtwo- rzenia pełnych danych z poszczególnych pakietów składowych. Protokół TCP zapewnia odtworzenie pakietów w odpowiedniej kolejności nawet wtedy, gdy do odbiorcy docie- rały one w kolejności zaburzonej (dwa kolejne pakiety mogą teoretycznie przemiesz- czać się ró nymi trasami, więc docieranie ich do adresata w nieoryginalnej kolejności

×