You are on page 1of 61

Linux. Biblia.

Edycja 2007
Autor: Christopher Negus
Tumaczenie: Robert Grczyski
ISBN: 978-83-246-1172-0
Tytu oryginau: Linux Bible 2007 Edition:
Boot up Ubuntu, Fedora, KNOPPIX, Debian,
SUSE, and 11 Other Distributions (Bible)
Format: B5, stron: 968
oprawa twarda
Zawiera CD-ROM, DVD
Poznaj moliwoci systemu operacyjnego,
ktry zrewolucjonizowa rynek oprogramowania
Wyprbuj i zainstaluj jedn z 16 rnych dystrybucji Linuksa
Wykorzystaj aplikacje doczone do Linuksa
Uruchom w oparciu o Linux serwer sieciowy, komputer domowy i stacj robocz
Naucz si administrowa systemem
Linux stanowi fenomen na wspczesnym rynku oprogramowania. Prosty system operacyjny
wzorowany na Uniksie, napisany w ramach zaj laboratoryjnych przez studenta Linusa
Thorvaldsa i udostpniony przez autora bezpatnie w sieci, w krtkim czasie zyska uznanie
setek tysicy uytkownikw, stajc si ikon ruchu open-source i zdobywajc ugruntowan
pozycj tam, gdzie wczeniej krloway drogie komercyjne systemy operacyjne. W sieci
znajdziemy kilkanacie wersji Linuksa, zwanych dystrybucjami, a oferta oprogramowania dla
tego systemu powiksza si z kadym dniem, dziki czemu na korzystanie z niego decyduje
si coraz wicej prestiowych firm i przedsibiorstw.
Linux. Biblia. Edycja 2007 to ksika, ktr musisz przeczyta, gdy postanowisz rozpocz
przygod z Linuksem. Znajdziesz w niej omwienie dystrybucji tego systemu, dowiesz si,
jak go zainstalowa, optymalnie skonfigurowa, a przede wszystkim, jak korzysta z niego
i doczonego oprogramowania. Nauczysz si pracowa z konsol tekstow i rodowiskiem
graficznym, administrowa systemem i czy si z internetem. Ponadto zobaczysz, jak
konfigurowa serwer WWW, bazy danych, druku i poczty elektronicznej. Przeczytasz take
o narzdziach programistycznych dostpnych dla Linuksa.

Wydawnictwo Helion
ul. Kociuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl

Historia Linuksa
Praca z powok tekstow
Korzystanie z rodowiska graficznego KDE i GNOME
Administrowanie systemem i kontami uytkownikw
Poczenie z sieci lokaln i internetem
Zabezpieczanie Linuksa przed atakami hakerw
Wybr i instalacja dystrybucji systemu Linux
Praca z pakietem OpenOffice.org
Korzystanie z poczty elektronicznej i WWW
Konfigurowanie serwera Apache
Uruchamianie serwera poczty, bazy danych, druku i plikw
Programowanie w systemie Linux
Wybierz odpowiedni dla siebie dystrybucj Linuksa!

Spis treci
O autorach ....................................................................................................... 21
Wprowadzenie ................................................................................................. 23

Cz I Pierwsze kroki w systemie Linux ..................................... 27


Rozdzia 1. Rozpoczcie pracy z systemem Linux ........................................... 29
Pierwsze kroki ................................................................................................................................ 30
Rozpoczynamy! .................................................................................................................................... 32
Zrozumienie systemu Linux ................................................................................................................. 33
Wyjanienie historii Linuksa ................................................................................................................ 36
Pocztki systemu Unix w orodku Bell Labs ................................................................................ 36
Skomercjalizowany Unix ............................................................................................................... 38
GNU to (nie) Unix ......................................................................................................................... 41
BSD traci impet .............................................................................................................................. 42
Linux tworzy brakujcy element ................................................................................................... 43
Dlaczego Linux jest tak wyjtkowy? ................................................................................................... 44
Funkcje w Linuksie ........................................................................................................................ 44
Definicja open source OSI ............................................................................................................. 46
Entuzjastyczna spoeczno ........................................................................................................... 48
Waniejsze projekty oprogramowania ........................................................................................... 49
Tajemnice, legendy i niejasne informacje dotyczce systemu Linux .................................................. 50
Czy mona przesta obawia si wirusw? ................................................................................... 50
Czy mona zosta oskaronym za uywanie systemu Linux? ....................................................... 51
Czy Linux faktycznie moe dziaa na kadym sprzcie, poczwszy od komputerw
kieszonkowych a do superkomputerw? .................................................................................. 54
Czy Microsoft moe zama Linuksa? ........................................................................................... 55
Czy jeli uywasz systemu Linux, to jeste zdany tylko na siebie? .............................................. 56
Czy Linux jest tylko dla magikw? ............................................................................................... 56
W jaki sposb firmy zarabiaj na systemie Linux? ....................................................................... 57
Jakie s rnice midzy dystrybucjami systemu Linux? ............................................................... 58
Czy maskotk systemu Linux jest faktycznie pingwin? ................................................................ 59
Rozpoczcie przygody z systemem Linux ........................................................................................... 59
Podsumowanie ..................................................................................................................................... 61

Linux. Biblia. Edycja 2007


Rozdzia 2. Uruchamianie polece z poziomu powoki ................................... 63
Uruchamianie powoki ......................................................................................................................... 64
Uywanie wiersza polece powoki ............................................................................................... 64
Uywanie okna terminalu .............................................................................................................. 65
Uywanie terminali wirtualnych .................................................................................................... 66
Wybr powoki ..................................................................................................................................... 66
Uywanie powoki bash (i wczeniejszej sh) ................................................................................. 67
Uywanie powoki tcsh (i wczeniejszej csh) ................................................................................ 68
Uywanie powoki ash ................................................................................................................... 68
Uywanie powoki ksh ................................................................................................................... 68
Uywanie powoki zsh ................................................................................................................... 69
Poznawanie powoki ............................................................................................................................ 69
Sprawdzanie sesji logowania ......................................................................................................... 69
Sprawdzanie katalogw oraz praw dostpu ................................................................................... 70
Sprawdzanie aktywnoci systemu .................................................................................................. 71
Zakoczenie pracy z powok ........................................................................................................ 73
Uywanie powoki w systemie Linux .................................................................................................. 73
Pooenie polece .......................................................................................................................... 74
Ponowne uruchamianie polece .................................................................................................... 77
czenie i dzielenie polece .......................................................................................................... 82
Tworzenie wasnego rodowiska powoki ........................................................................................... 85
Konfiguracja powoki .................................................................................................................... 85
Uywanie zmiennych rodowiskowych powoki ........................................................................... 89
Zarzdzanie procesami aktywnymi oraz dziaajcymi w tle ......................................................... 92
Praca z systemem plikw Linuksa ....................................................................................................... 94
Tworzenie plikw i katalogw ....................................................................................................... 97
Przenoszenie, kopiowanie i usuwanie plikw ............................................................................. 103
Uywanie edytora tekstowego vi w Linuksie .................................................................................... 104
Rozpoczcie pracy w edytorze vi ................................................................................................ 104
Poruszanie si po pliku ................................................................................................................ 108
Wyszukiwanie tekstu ................................................................................................................... 108
Uywanie liczb w poleceniach ..................................................................................................... 109
Podsumowanie ................................................................................................................................... 110
Rozdzia 3. Poznajemy rodowisko graficzne ............................................... 111
Zrozumienie rodowiska graficznego ................................................................................................ 111
Uruchamianie rodowiska graficznego ........................................................................................ 112
Korzystanie ze rodowiska KDE ....................................................................................................... 116
Korzystanie z pulpitu KDE .......................................................................................................... 117
Zarzdzanie plikami za pomoc menedera plikw Konqueror .................................................. 119
Opcje konfiguracyjne menedera Konqueror .............................................................................. 126
Zarzdzanie oknami ..................................................................................................................... 128
Konfiguracja pulpitu .................................................................................................................... 131
Dodawanie programw oraz typw MIME ................................................................................. 134
Korzystanie ze rodowiska GNOME ................................................................................................. 135
Korzystanie z menedera okien Metacity .................................................................................... 137
Korzystanie z paneli GNOME ..................................................................................................... 139
Korzystanie z menedera plikw Nautilus .................................................................................. 144
Efekty 3D za pomoc AIGLX ..................................................................................................... 147
Zmiana ustawie rodowiska GNOME ....................................................................................... 149
Opuszczanie rodowiska GNOME .............................................................................................. 151

Spis treci

Konfiguracja rodowiska graficznego ................................................................................................ 152


Konfiguracja X ............................................................................................................................. 153
Wybr menedera okien .............................................................................................................. 156
Wybr wasnego menedera okien .............................................................................................. 158
Dodatkowe informacje ....................................................................................................................... 159
Podsumowanie ................................................................................................................................... 159

Cz II Linux w praktyce ............................................................ 161


Rozdzia 4. Podstawowa administracja systemem ....................................... 163
Graficzne narzdzia administracyjne ................................................................................................. 164
Administracja za pomoc przegldarki internetowej ................................................................... 164
Administracja graficzna w rnych dystrybucjach ...................................................................... 166
Korzystanie z konta uytkownika root ............................................................................................... 170
Uzyskanie uprawnie uytkownika root z poziomu powoki (polecenie su) .............................. 171
Nadanie ograniczonych uprawnie administracyjnych ............................................................... 172
Zrozumienie polece administracyjnych, plikw konfiguracyjnych
oraz plikw dziennikw zdarze ..................................................................................................... 173
Polecenia administracyjne ........................................................................................................... 173
Administracyjne pliki konfiguracyjne ......................................................................................... 174
Pliki administracyjnych dziennikw zdarze .............................................................................. 179
Korzystanie z polecenia sudo oraz innych loginw administracyjnych ............................................ 179
Administracja systemem Linux .......................................................................................................... 182
Tworzenie kont uytkownikw .......................................................................................................... 183
Dodawanie uytkownikw za pomoc polecenia useradd ........................................................... 183
Ustalanie ustawie domylnych uytkownika ............................................................................. 187
Konfiguracja sprztu .......................................................................................................................... 188
Zarzdzanie wymiennym sprztem komputerowym ................................................................... 190
Praca z wczytywanymi moduami ............................................................................................... 193
Zarzdzanie systemami plikw oraz przestrzeni na dysku twardym ............................................... 196
Montowanie systemw plikw .................................................................................................... 199
Korzystanie z polecenia mkfs do utworzenia systemu plikw .................................................... 206
Dodawanie dysku twardego ......................................................................................................... 207
Sprawdzanie iloci wolnego miejsca ........................................................................................... 210
Monitorowanie wydajnoci systemu .................................................................................................. 212
Podsumowanie ................................................................................................................................... 213
Rozdzia 5. Internet ........................................................................................ 215
Nawizywanie poczenia z sieci ..................................................................................................... 216
Nawizywanie poczenia komutowanego .................................................................................. 216
Dostp szerokopasmowy dla pojedynczego komputera .............................................................. 217
Dostp szerokopasmowy dla wielu komputerw ........................................................................ 218
czenie serwerw ....................................................................................................................... 220
Nawizywanie poczenia za pomoc innego wyposaenia ........................................................ 221
Nawizywanie poczenia z internetem za pomoc Ethernetu .......................................................... 222
Konfiguracja Ethernetu podczas instalacji systemu .................................................................... 223
Konfiguracja Ethernetu w rodowisku graficznym ..................................................................... 223
Uywanie interfejsu graficznego narzdzia Konfiguracja sieci w Fedorze ................................. 224
Identyfikacja innych komputerw (wzy i DNS) ....................................................................... 226
Uywanie interfejsu graficznego narzdzia Network Settings w Ubuntu ................................... 227
Zrozumienie poczenia z internetem .......................................................................................... 229

10

Linux. Biblia. Edycja 2007


Nawizywanie poczenia z internetem za pomoc poczenia komutowanego ............................... 231
Pobieranie informacji ................................................................................................................... 231
Utworzenie poczenia komutowanego PPP ............................................................................... 233
Tworzenie poczenia komutowanego za pomoc kreatora poczenia z internetem ................. 233
Uruchamianie poczenia PPP ..................................................................................................... 236
Uruchamianie poczenia PPP na danie ................................................................................... 236
Sprawdzanie poczenia PPP ....................................................................................................... 237
Nawizywanie poczenia z internetem za pomoc sieci bezprzewodowej ...................................... 238
Podsumowanie ................................................................................................................................... 240
Rozdzia 6. Bezpieczestwo systemu Linux ................................................... 241
Lista kontrolna bezpieczestwa Linuksa ............................................................................................ 242
Wyszukiwanie zasobw dotyczcych bezpieczestwa danej dystrybucji ................................... 244
Wyszukiwanie oglnych zasobw dotyczcych bezpieczestwa ................................................ 246
Bezpieczne korzystanie z Linuksa ..................................................................................................... 246
Uywanie zabezpieczenia w postaci hasa ................................................................................... 246
Wybr dobrego hasa ................................................................................................................... 247
Korzystanie z pliku hase shadow ................................................................................................ 248
Korzystanie z plikw dziennikw zdarze ......................................................................................... 250
Rola demona syslogd ................................................................................................................... 253
Przekierowanie komunikatw zdarze do serwera zdarze za pomoc syslogd ......................... 253
Zrozumienie komunikatw pliku dziennika zdarze ................................................................... 255
Uywanie narzdzi bezpiecznej powoki ........................................................................................... 255
Uruchamianie usugi ssh .............................................................................................................. 256
Uywanie polece ssh, sftp i scp ................................................................................................. 256
Uywanie polece ssh, scp i sftp bez hase .................................................................................. 258
Zabezpieczanie serwerw Linux ........................................................................................................ 259
Nadzr dostpu do usug za pomoc oson TCP ......................................................................... 260
Zrozumienie techniki atakw ....................................................................................................... 262
Ochrona przed atakami typu DOS ............................................................................................... 264
Ochrona przed rozproszonymi atakami typu DOS ...................................................................... 267
Ochrona przed atakami intruzw ................................................................................................. 271
Zabezpieczanie serwerw za pomoc SELinux ........................................................................... 274
Ochrona serwerw sieciowych za pomoc certyfikatw i szyfrowania ...................................... 275
Uywanie narzdzi bezpieczestwa systemu Linux uruchamianego z nonika ................................ 285
Zalety odnonie bezpieczestwa dystrybucji dziaajcych z nonika .......................................... 285
Korzystanie z narzdzia INSERT do wykrywania kodu typu rootkit .......................................... 286
Podsumowanie ................................................................................................................................... 287

Cz III Wybr i instalacja dystrybucji systemu Linux ............. 289


Rozdzia 7. Instalacja systemu Linux .............................................................. 291
Wybr dystrybucji Linuksa ................................................................................................................ 292
Linux w dziaaniu ........................................................................................................................ 292
Inne dystrybucje ........................................................................................................................... 293
Pobieranie dystrybucji systemu Linux ............................................................................................... 294
Szukanie innej dystrybucji Linuksa ............................................................................................. 294
Zrozumienie wasnych potrzeb .................................................................................................... 295
Pobieranie dystrybucji ................................................................................................................. 296
Wypalanie dystrybucji na pycie CD ........................................................................................... 297

Spis treci

11

Zagadnienia dotyczce instalacji ........................................................................................................ 298


Informacje dotyczce posiadanej konfiguracji sprztowej .......................................................... 298
Uaktualnienie lub instalacja od pocztku .................................................................................... 299
Sam Linux czy razem z Windowsem? ......................................................................................... 300
Opcje procesu instalacji ............................................................................................................... 302
Partycjonowanie dysku twardego ................................................................................................ 302
Uywanie programw uruchamiajcych LILO i GRUB ............................................................. 311
Konfiguracja sieci ........................................................................................................................ 321
Konfiguracja innych funkcji administracyjnych .......................................................................... 322
Instalacja Linuksa z pyt CD i DVD doczonych do ksiki ............................................................ 322
Podsumowanie ................................................................................................................................... 323
Rozdzia 8. Dystrybucje Fedora Core i Red Hat Enterprise Linux ................. 325
Zagbianie si w funkcje ................................................................................................................... 327
Instalator Red Hat (Anaconda) .................................................................................................... 327
Oprogramowanie w formacie RPM Package Management ......................................................... 328
Wykrywanie konfiguracji sprztowej za pomoc kudzu ............................................................. 329
Wygld i dziaanie rodowiska graficznego Red Hat .................................................................. 329
Narzdzia do konfiguracji systemu .............................................................................................. 330
Poznanie dystrybucji Fedora Core ..................................................................................................... 330
Wzrastajca spoeczno wspierajca Fedor .............................................................................. 330
Fedora Extras ............................................................................................................................... 331
Projekt Fedora Legacy ................................................................................................................. 332
Fora i listy dyskusyjne ................................................................................................................. 333
Dojcie Fedory do penoletnioci ....................................................................................................... 333
Cieszy si Fedor .............................................................................................................................. 335
Instalacja systemu Fedora Core ......................................................................................................... 335
Wybr sprztu komputerowego ................................................................................................... 335
Wybr metody instalacji .............................................................................................................. 337
Wybr midzy instalacj a uaktualnieniem ................................................................................. 338
Rozpoczcie instalacji .................................................................................................................. 338
Uruchomienie narzdzia Agent instalacji .................................................................................... 347
Podsumowanie ................................................................................................................................... 348
Rozdzia 9. Dystrybucja Debian GNU/Linux .................................................... 349
Opis systemu Debian GNU/Linux ..................................................................................................... 350
Pakiety Debiana ........................................................................................................................... 350
Narzdzia Debiana do zarzdzania pakietami ............................................................................. 351
Wydania Debiana ......................................................................................................................... 353
Uzyskanie pomocy w Debianie .......................................................................................................... 354
Instalacja systemu Debian GNU/Linux ............................................................................................. 354
Wymagania sprztowe oraz planowanie instalacji ...................................................................... 355
Uruchomienie instalatora ............................................................................................................. 356
Zarzdzanie systemem Debian ........................................................................................................... 362
Konfiguracja pocze sieciowych .............................................................................................. 362
Zarzdzanie pakietami za pomoc narzdzia APT ...................................................................... 365
Zarzdzanie pakietami za pomoc narzdzia dpkg ...................................................................... 368
Instalacja zestaww pakietw (zada) za pomoc narzdzia tasksel .......................................... 370
Alternatywy, zmiany i uniewanienia .......................................................................................... 371
Zarzdzanie konfiguracj pakietu za pomoc narzdzia debconf ................................................ 373
Podsumowanie ................................................................................................................................... 373

12

Linux. Biblia. Edycja 2007


Rozdzia 10. Dystrybucja SUSE Linux .............................................................. 375
Zrozumienie systemu SUSE .............................................................................................................. 377
Zawarto systemu SUSE .................................................................................................................. 378
Instalacja i konfiguracja za pomoc narzdzia YaST .................................................................. 378
Zarzdzanie pakietami RPM ........................................................................................................ 381
Automatyczne uaktualnienie oprogramowania ............................................................................ 382
Uzyskanie pomocy dla systemu SUSE .............................................................................................. 383
Instalacja systemu openSUSE ............................................................................................................ 384
Przed rozpoczciem instalacji ...................................................................................................... 384
Rozpoczcie instalacji .................................................................................................................. 385
Rozpoczcie pracy z systemem SUSE ............................................................................................... 391
Podsumowanie ................................................................................................................................... 392
Rozdzia 11. Dystrybucja KNOPPIX .................................................................. 395
Cechy charakterystyczne systemu KNOPPIX ................................................................................... 396
Zrozumienie systemu KNOPPIX ....................................................................................................... 396
KNOPPIX News .......................................................................................................................... 396
Wewntrz systemu KNOPPIX ..................................................................................................... 397
Dlaczego KNOPPIX jest tak wyjtkowy? ................................................................................... 399
Analiza zagadnie zwizanych z systemem KNOPPIX .............................................................. 400
rdo pochodzenia systemu KNOPPIX ..................................................................................... 401
Moliwoci wykorzystania systemu KNOPPIX .......................................................................... 402
Uruchomienie systemu KNOPPIX .................................................................................................... 403
Wymagany komputer ................................................................................................................... 403
Uruchamianie systemu KNOPPIX .............................................................................................. 404
Usuwanie problemw z uruchamianiem systemu KNOPPIX ..................................................... 405
Korzystanie z systemu KNOPPIX ..................................................................................................... 410
Korzystanie ze rodowiska graficznego KDE w systemie KNOPPIX ........................................ 410
Konfiguracja sieci ........................................................................................................................ 412
Instalacja oprogramowania w systemie KNOPPIX ..................................................................... 413
Zapisywanie plikw w systemie KNOPPIX ................................................................................ 414
Zachowanie wasnej konfiguracji systemu KNOPPIX ................................................................ 417
Ponowne uruchamianie systemu KNOPPIX ............................................................................... 418
Podsumowanie ................................................................................................................................... 419
Rozdzia 12. Dystrybucja Yellow Dog Linux ................................................... 421
Zrozumienie dystrybucji Yellow Dog Linux ..................................................................................... 422
Przyszo dystrybucji Yellow Dog ................................................................................................... 423
Poznanie dystrybucji Yellow Dog Linux ........................................................................................... 424
Instalacja dystrybucji Yellow Dog Linux .......................................................................................... 425
Obsugiwany sprzt komputerowy .............................................................................................. 426
Planowanie instalacji ................................................................................................................... 428
Rozpoczcie instalacji .................................................................................................................. 431
Ponowne uruchomienie komputera Mac z zainstalowanym systemem Linux ............................ 438
Aktualizacja systemu Yellow Dog Linux .......................................................................................... 438
Uruchamianie aplikacji platformy Mac za pomoc projektu Mac-on-Linux ..................................... 439
Moliwoci uzyskania pomocy .......................................................................................................... 440
Podsumowanie ................................................................................................................................... 441

Spis treci

13

Rozdzia 13. Dystrybucja Gentoo Linux .......................................................... 443


Zrozumienie dystrybucji Gentoo ........................................................................................................ 444
Charakter open source dystrybucji Gentoo .................................................................................. 444
Spoeczno Gentoo ..................................................................................................................... 445
Budowa, dostosowanie i dostrajanie Linuksa .............................................................................. 445
Gdzie wykorzystywana jest dystrybucja Gentoo? ....................................................................... 447
Czym jest Gentoo? ............................................................................................................................. 448
Zarzdzanie oprogramowaniem za pomoc narzdzia Portage ................................................... 448
Wyszukiwanie pakietw oprogramowania .................................................................................. 449
Nowe funkcje Gentoo 2007 ......................................................................................................... 450
Instalacja dystrybucji Gentoo ............................................................................................................. 450
Pobieranie dystrybucji Gentoo ..................................................................................................... 450
Rozpoczcie instalacji Gentoo z pyty live CD ........................................................................... 452
Rozpoczcie instalacji Gentoo z pyty minimal CD .................................................................... 455
Pobieranie oprogramowania za pomoc polecenia emerge ......................................................... 463
Podsumowanie ................................................................................................................................... 464
Rozdzia 14. Dystrybucja Slackware Linux ..................................................... 465
Poznanie dystrybucji Slackware ........................................................................................................ 465
Charakterystyka spoecznoci Slackware ........................................................................................... 467
Twrca Slackware ........................................................................................................................ 467
Uytkownicy Slackware .............................................................................................................. 469
Witryny internetowe powicone dystrybucji Slackware ............................................................ 470
Wyzwania zwizane z korzystaniem z systemu Slackware ............................................................... 470
Uywanie dystrybucji Slackware jako platformy programistycznej .................................................. 471
Instalacja dystrybucji Slackware ........................................................................................................ 472
Pobieranie Slackware ................................................................................................................... 472
Nowe funkcje w Slackware 11.0 ................................................................................................. 472
Wymagania sprztowe ................................................................................................................. 473
Rozpoczcie instalacji .................................................................................................................. 474
Rozpoczcie pracy z systemem Slackware ........................................................................................ 479
Podsumowanie ................................................................................................................................... 482
Rozdzia 15. Dystrybucje Linspire i Freespire ................................................ 483
Oglny opis Linspire .......................................................................................................................... 483
Ktra wersja jest dla mnie? ................................................................................................................ 485
Instalacja oprogramowania za pomoc Click-N-Run .................................................................. 486
Inne opcje instalacyjne ................................................................................................................. 489
Pomoc techniczna Linspire i Freespire .............................................................................................. 489
Fora oraz informacje .................................................................................................................... 490
Asystent audio .............................................................................................................................. 490
Instalacja dystrybucji Linspire lub Freespire ..................................................................................... 490
Wymagania sprztowe ................................................................................................................. 491
Instalacja Linspire lub Freespire .................................................................................................. 492
Zabezpieczanie systemw Linspire i Freespire .................................................................................. 496
Podsumowanie ................................................................................................................................... 498
Rozdzia 16. Dystrybucja Mandriva ................................................................ 499
Funkcje dystrybucji Mandriva ........................................................................................................... 499
Poznanie dystrybucji Mandriva .......................................................................................................... 502
Instalator dystrybucji Mandriva (DrakX) .................................................................................... 503
Zarzdzanie pakietami za pomoc narzdzia RPMDrake ........................................................... 504
Centrum Sterowania Mandriva Linux ......................................................................................... 505

14

Linux. Biblia. Edycja 2007


Spoeczno dystrybucji Mandriva .................................................................................................... 506
Repozytorium RPM i Mandrivaclub ............................................................................................ 507
Fora Mandrivy ............................................................................................................................. 507
Instalacja dystrybucji Mandriva ......................................................................................................... 508
Wymagania sprztowe dystrybucji Mandriva ............................................................................. 508
Rozpoczcie instalacji za pomoc narzdzia DrakX ................................................................... 509
Podsumowanie ................................................................................................................................... 513
Rozdzia 17. Dystrybucja Ubuntu ................................................................... 515
Oglny opis Ubuntu ........................................................................................................................... 516
Wydania Ubuntu .......................................................................................................................... 516
Instalator Ubuntu ......................................................................................................................... 517
Ubuntu jako komputer biurkowy ................................................................................................. 518
Ubuntu jako serwer ...................................................................................................................... 519
Produkty uboczne Ubuntu ............................................................................................................ 520
Wyzwania stojce przed Ubuntu ................................................................................................. 521
Instalacja dystrybucji Ubuntu ............................................................................................................ 522
Rozpoczcie pracy z dystrybucj Ubuntu .......................................................................................... 527
Wyprbowanie rodowiska graficznego ...................................................................................... 527
Instalacja dodatkowego oprogramowania .................................................................................... 529
Wicej informacji na temat Ubuntu ................................................................................................... 533
Podsumowanie ................................................................................................................................... 534
Rozdzia 18. Linux jako zapora sieciowa lub router ...................................... 535
Zrozumienie zapory sieciowej ........................................................................................................... 536
Ochrona systemu biurkowego za pomoc zapory sieciowej .............................................................. 537
Uruchomienie zapory sieciowej w systemie Fedora .................................................................... 537
Konfiguracja zapory sieciowej w systemie Mandriva ................................................................. 539
Korzystanie z zapory sieciowej za pomoc iptables .......................................................................... 540
Rozpoczcie pracy z iptables ....................................................................................................... 541
Uywanie iptables do SNAT lub maskowania adresu IP ............................................................ 546
Dodawanie moduw za pomoc iptables .................................................................................... 547
Uywanie iptables jako przezroczystego proxy ........................................................................... 548
Uywanie iptables do przekierowania portw ............................................................................. 548
Utworzenie dyskietki startowej systemu Coyote Linux pracujcego jako zapora sieciowa .............. 550
Tworzenie systemu Coyote Linux Firewall ................................................................................. 550
Tworzenie dyskietki Coyote Linux .............................................................................................. 551
Uruchamianie dystrybucji Coyote Linux ..................................................................................... 557
Zarzdzanie dystrybucj Coyote Linux ....................................................................................... 557
Uywanie innych dystrybucji zapory sieciowej ................................................................................. 559
Podsumowanie ................................................................................................................................... 560
Rozdzia 19. Dystrybucje systemu Linux dziaajce z nonika ..................... 561
Oglny opis dystrybucji Linuksa dziaajcych z nonika .................................................................. 562
Wybr dystrybucji Linuksa dziaajcej z nonika .............................................................................. 563
Dystrybucje ratunkowe oraz zwizane z bezpieczestwem ........................................................ 564
Dystrybucje demonstracyjne ........................................................................................................ 569
Dystrybucje multimedialne .......................................................................................................... 570
Prostsze rodowiska graficzne ..................................................................................................... 573

Spis treci

15

Dystrybucje startowe do specjalnych celw ...................................................................................... 576


Dostosowanie do wasnych potrzeb dystrybucji dziaajcej z nonika .............................................. 578
Podsumowanie ................................................................................................................................... 581

Cz IV Uruchamianie aplikacji .................................................. 583


Rozdzia 20. Odtwarzanie muzyki i wideo ..................................................... 585
Odtwarzanie cyfrowej treci i przestrzeganie prawa .......................................................................... 586
Kwestie zwizane z ochron praw autorskich ............................................................................. 586
Analiza kodekw ......................................................................................................................... 588
Odtwarzanie muzyki .......................................................................................................................... 590
Konfiguracja karty dwikowej ................................................................................................... 590
Wybr odtwarzacza audio CD ..................................................................................................... 592
Uywanie odtwarzaczy MIDI ...................................................................................................... 602
Kompresja oraz konwersja plikw audio ..................................................................................... 602
Nagrywanie i kopiowanie muzyki ..................................................................................................... 605
Tworzenie pyty CD Audio za pomoc polecenia cdrecord ........................................................ 606
Zgrywanie pyt CD za pomoc narzdzia Grip ............................................................................ 607
Tworzenie etykiet pyt CD za pomoc polecenia cdlabelgen ...................................................... 609
Praca z TV, wideo i obrazami cyfrowymi .......................................................................................... 609
Ogldanie TV za pomoc tvtime ................................................................................................. 610
Wideokonferencje z wykorzystaniem programu Ekiga ............................................................... 612
Ogldanie filmw oraz wideo ............................................................................................................ 615
Ogldanie wideo za pomoc xine ................................................................................................ 615
Korzystanie z Helix Player i Real Player 10 ................................................................................ 619
Uywanie aparatu cyfrowego z programami gtkam i gPhoto2 .......................................................... 620
Pobieranie zdj z aparatu za pomoc gtkam .............................................................................. 622
Uywanie aparatu cyfrowego jako urzdzenia magazynujcego dane ........................................ 623
Podsumowanie ................................................................................................................................... 624
Rozdzia 21. Praca z tekstem i obrazami ....................................................... 625
Uywanie pakietu OpenOffice.org ..................................................................................................... 626
Inne procesory tekstu ......................................................................................................................... 628
Korzystanie z pakietu StarOffice ................................................................................................. 629
Korzystanie z edytora AbiWord .................................................................................................. 630
Korzystanie z pakietu KOffice ..................................................................................................... 631
Odejcie od systemu Windows .................................................................................................... 632
Uywanie tradycyjnych narzdzi skadu Linuksa .............................................................................. 634
Tworzenie dokumentw w Groff lub LaTeX ..................................................................................... 635
Przetwarzanie tekstu za pomoc Groff ........................................................................................ 635
Przetwarzanie tekstu za pomoc TeX i LaTeX ............................................................................ 646
Konwersja dokumentw .............................................................................................................. 649
Tworzenie dokumentu strukturalnego ......................................................................................... 649
Drukowanie dokumentw w systemie Linux ..................................................................................... 655
Drukowanie na drukarce domylnej ............................................................................................ 655
Drukowanie z poziomu powoki .................................................................................................. 656
Sprawdzanie stanu kolejki wydrukw ......................................................................................... 656
Usuwanie zada drukowania ....................................................................................................... 657
Sprawdzanie stanu drukarki ......................................................................................................... 657

16

Linux. Biblia. Edycja 2007


Wywietlanie dokumentw za pomoc programw ghostscript i Acrobat ........................................ 658
Korzystanie z polece ghostscript oraz gv ................................................................................... 658
Korzystanie z programu Adobe Acrobat Reader ......................................................................... 659
Praca z grafik .................................................................................................................................... 659
Operacje na grafice za pomoc programu GIMP ........................................................................ 660
Przejcie zrzutu ekranu ................................................................................................................ 662
Modyfikowanie grafiki za pomoc programu KPaint ................................................................. 662
Korzystanie ze skanerw za pomoc oprogramowania SANE .......................................................... 663
Podsumowanie ................................................................................................................................... 664
Rozdzia 22. Poczta e-mail i przegldanie internetu ..................................... 665
Korzystanie z poczty elektronicznej .................................................................................................. 665
Wybr klienta poczty elektronicznej ........................................................................................... 666
Przeniesienie konta pocztowego z systemu Windows ................................................................. 668
Rozpoczcie pracy z poczt elektroniczn .................................................................................. 668
Dostosowanie dziaania klienta poczty ........................................................................................ 670
Poczta elektroniczna w programie Thunderbird .......................................................................... 670
Zarzdzanie poczt elektroniczn w programie Evolution .......................................................... 680
Obsuga poczty elektronicznej za pomoc programu Mozilla Mail ............................................ 683
Praca z tekstowymi klientami poczty .......................................................................................... 684
Wybr przegldarki internetowej ....................................................................................................... 686
Poznanie pakietu Mozilla ................................................................................................................... 686
Korzystanie z przegldarki Firefox .................................................................................................... 687
Konfiguracja przegldarki Firefox ............................................................................................... 688
Zabezpieczanie przegldarki Firefox ........................................................................................... 692
Wskazwki dotyczce uywania przegldarki Firefox ................................................................ 695
Uywanie kontrolek przegldarki Firefox ................................................................................... 696
Usprawnienie przegldarki Firefox .............................................................................................. 696
Dodatkowe moliwoci przegldarki Firefox .............................................................................. 698
Korzystanie z tekstowych przegldarek internetowych ..................................................................... 700
Podsumowanie ................................................................................................................................... 701
Rozdzia 23. Gry w Linuksie ............................................................................. 703
Oglny opis gier w Linuksie .............................................................................................................. 703
Podstawowe informacje dotyczce gier w Linuksie .......................................................................... 705
Skd czerpa informacje o grach w Linuksie? ............................................................................ 705
Wybr karty graficznej do gier .................................................................................................... 707
Gry typu open source w systemie Linux ............................................................................................ 708
Gry GNOME ................................................................................................................................ 709
Gry KDE ...................................................................................................................................... 710
Pobieranie dodatkowych gier ....................................................................................................... 711
Gry w szachy ............................................................................................................................... 713
Freeciv .......................................................................................................................................... 715
PlanetPenguin Racer (TuxRacer) ................................................................................................. 720
Gry komercyjne w Linuksie ............................................................................................................... 720
Oglny opis gier komercyjnych w Linuksie ................................................................................ 721
Granie w gry komercyjne dla Linuksa ......................................................................................... 722
Gry id Software ............................................................................................................................ 723
Granie w gry za pomoc technologii TransGaming i Cedega ..................................................... 724
Dema gier firmy Loki Software ................................................................................................... 726
Podsumowanie ................................................................................................................................... 729

Spis treci

17

Cz V Serwery w systemie Linux ............................................ 731


Rozdzia 24. Serwer LAMP (Linux, Apache, MySQL oraz PHP) ......................... 733
Komponenty serwera LAMP ............................................................................................................. 734
Apache ......................................................................................................................................... 734
MySQL ........................................................................................................................................ 734
PHP .............................................................................................................................................. 735
Konfiguracja serwera LAMP ............................................................................................................. 736
Instalacja Apache ......................................................................................................................... 736
Instalacja PHP .............................................................................................................................. 737
Instalacja MySQL ........................................................................................................................ 738
Dziaanie serwera LAMP ................................................................................................................... 740
Edycja plikw konfiguracyjnych serwera Apache ...................................................................... 740
Dodawanie serwera wirtualnego do serwera Apache .................................................................. 743
Dane uytkownika i ustawienie moduu UserDir ........................................................................ 744
Instalacja aplikacji sieciowej Coppermine Photo Gallery ...................................................... 744
Rozwizywanie problemw ............................................................................................................... 748
Bdy konfiguracyjne ................................................................................................................... 748
Bdy braku dostpu i wewntrzny bd serwera ........................................................................ 750
Zabezpieczanie komunikacji internetowej za pomoc protokow SSL i TLS ............................... 751
Generowanie wasnych kluczy .................................................................................................... 753
Konfiguracja serwera Apache w celu obsugi SSL i TLS ........................................................... 754
Podsumowanie ................................................................................................................................... 756
Rozdzia 25. Serwer poczty ............................................................................. 757
Wewntrzne dziaanie internetowego serwera poczty elektronicznej ................................................ 758
Informacje o wykorzystanym systemie oraz oprogramowaniu .......................................................... 759
Przygotowanie systemu ...................................................................................................................... 760
Konfiguracja DNS dla dostawy bezporedniej ............................................................................ 761
Konfiguracja dla pobierania poczty z komputera pocztowego .................................................... 762
Instalacja i konfiguracja oprogramowania serwera poczty ................................................................ 762
Instalacja pakietw Exim i Courier .............................................................................................. 762
Instalacja ClamAV i SpamAssassin ............................................................................................. 764
Testowanie i rozwizywanie problemw ........................................................................................... 766
Sprawdzanie plikw dziennikw zdarze .................................................................................... 766
Najczciej wystpujce bdy (i sposoby ich rozwizywania) .................................................. 768
Konfiguracja klientw poczty ............................................................................................................ 770
Konfiguracja Fetchmail ............................................................................................................... 771
Konfiguracja poczty web mail ..................................................................................................... 772
Zabezpieczanie komunikacji za pomoc SSL i TLS .......................................................................... 772
Podsumowanie ................................................................................................................................... 773
Rozdzia 26. Serwer wydruku ......................................................................... 775
System CUPS ..................................................................................................................................... 776
Konfiguracja drukarek ....................................................................................................................... 777
Administracja systemem CUPS za pomoc interfejsu przegldarki ............................................ 778
Uywanie narzdzia konfiguracji drukarki systemw Red Hat ................................................... 780
Praca z serwerem CUPS ..................................................................................................................... 789
Konfiguracja serwera CUPS (plik cupsd.conf) ............................................................................ 789
Uruchamianie serwera CUPS ...................................................................................................... 790
Rczna konfiguracja opcji drukarki CUPS .................................................................................. 791

18

Linux. Biblia. Edycja 2007


Korzystanie z polece druku .............................................................................................................. 792
Drukowanie za pomoc polecenia lpr .......................................................................................... 792
Wywietlanie stanu za pomoc polecenia lpc .............................................................................. 793
Usuwanie zada wydruku za pomoc polecenia lprm ................................................................. 793
Konfiguracja serwera wydruku .......................................................................................................... 794
Konfiguracja drukarki wspdzielonej CUPS .............................................................................. 794
Konfiguracja drukarki wspdzielonej Samba ............................................................................. 796
Podsumowanie ................................................................................................................................... 798
Rozdzia 27. Serwer plikw ............................................................................. 799
Konfiguracja serwera plikw NFS ..................................................................................................... 800
Pobieranie NFS ............................................................................................................................ 802
Wspdzielenie systemw plikw NFS ....................................................................................... 802
Uywanie systemw plikw NFS ................................................................................................ 807
Odmontowanie systemw plikw NFS ....................................................................................... 813
Inne operacje, ktre mona wykona za pomoc NFS ................................................................ 814
Konfiguracja serwera plikw Samba ................................................................................................. 815
Pobieranie i instalacja serwera Samba ......................................................................................... 816
Konfiguracja serwera Samba za pomoc narzdzia SWAT ........................................................ 817
Praca z plikami i poleceniami serwera Samba ............................................................................. 826
Uywanie wspdzielonych katalogw Samba ............................................................................ 830
Rozwizywanie problemw zwizanych z serwerem Samba ...................................................... 831
Podsumowanie ................................................................................................................................... 833

Cz VI Programowanie w systemie Linux ............................... 835


Rozdzia 28. Programowanie rodowisk i interfejsw ................................. 837
Zrozumienie rodowiska programistycznego .................................................................................... 838
Korzystanie ze rodowisk programistycznych Linuksa ..................................................................... 838
rodowisko programistyczne w Linuksie .................................................................................... 839
Graficzne rodowiska programistyczne ....................................................................................... 848
Tekstowe rodowisko programowania ........................................................................................ 853
Interfejsy programowe Linuksa ......................................................................................................... 854
Tworzenie interfejsw tekstowych .............................................................................................. 854
Tworzenie interfejsw graficznych .............................................................................................. 860
Interfejs programowania aplikacji (API) ..................................................................................... 862
Podsumowanie ................................................................................................................................... 866
Rozdzia 29. Narzdzia i dodatki programistyczne ....................................... 867
Dobrze zaopatrzony pakiet narzdziowy ........................................................................................... 867
Korzystanie z kompilatora GCC ........................................................................................................ 869
Kompilacja wielu plikw kodu rdowego ................................................................................ 871
Opcje kompilatora GCC .............................................................................................................. 873
Automatyzacja kompilacji za pomoc make ...................................................................................... 873
Biblioteki narzdziowe ....................................................................................................................... 877
Polecenie nm ................................................................................................................................ 878
Polecenie ar .................................................................................................................................. 879
Polecenie ldd ................................................................................................................................ 880
Polecenie ldconfig ........................................................................................................................ 880
Zmienne rodowiskowe i pliki konfiguracyjne ............................................................................ 881

Spis treci

19

Kontrola kodu rdowego ................................................................................................................. 881


Kontrola kodu rdowego za pomoc RCS ................................................................................ 882
Kontrola kodu rdowego za pomoc CVS ............................................................................... 885
Usuwanie bdw za pomoc debuggera GNU .................................................................................. 889
Uruchamianie narzdzia GDB ..................................................................................................... 890
Przegldanie kodu w debuggerze ................................................................................................. 892
Analiza danych ............................................................................................................................. 893
Ustawianie punktw kontrolnych ................................................................................................ 895
Praca z kodem rdowym ........................................................................................................... 896
Podsumowanie ................................................................................................................................... 897

Dodatki ....................................................................................... 899


Dodatek A Noniki ........................................................................................... 901
Dodatek B Przystpienie do spoecznoci Linuksa ....................................... 913
Skorowidz ...................................................................................................... 919
Powszechna Licencja Publiczna GNU ............................................................ 959

Rozdzia 6.

Bezpieczestwo
systemu Linux
W tym rozdziale:

Lista kontrolna bezpieczestwa Linuksa.

Uywanie zabezpieczenia w postaci hasa.

Monitorowanie plikw dziennikw zdarze.

Bezpieczna komunikacja za pomoc narzdzi powoki.

Zrozumienie techniki atakw.

Zabezpieczanie serwerw za pomoc certyfikatw.

Uywanie narzdzi bezpieczestwa systemu Linux.

Od pocztku istnienia sieci niektrzy uytkownicy prbowali wamywa si do systemw


innych uytkownikw. Wraz z rozwojem internetu oraz dostpu szerokopasmowego ten
problem przybra tylko na sile. Niezabezpieczony komputer domowy moe zosta wykorzystany jako potny przekanik wiadomoci pocztowych, stanowi miejsce wymiany
nielegalnych danych, naraa uytkownika na wyciek jego poufnych informacji lub sta
si rdem innych, podobnie nieprzyjemnych zdarze.
Dawno temu przeprowadzenie ataku sieciowego wymagao od atakujcego pewnego wysiku oraz umiejtnoci. W chwili obecnej zautomatyzowane narzdzia mog by wykorzystywane nawet przez zupenie pocztkujcych uytkownikw do prby zamania systemu poczonego z sieci w zastraszajco krtkim czasie. Oprcz tego robaki sieciowe
otrzymay moliwo zmiany duej liczby niezabezpieczonych systemw w armi zombie, uywanych do olbrzymich, skoordynowanych atakw typu Distributed Denial of
Service (DDOS).
Dlaczego naley przejmowa si kwestiami bezpieczestwa? Wedug organizacji Internet
Storm Center (http://isc.sans.org) przecitnie ju po upywie16 minut komputer podczony
do internetu staje si obiektem pewnego rodzaju ataku. Zabezpieczenie kadego systemu
komputerowego nie jest szalenie trudne, ale wymaga po prostu zdrowego rozsdku oraz
stosowania si do dobrych nawykw dotyczcych bezpieczestwa.

242

Cz II Linux w praktyce

W wikszoci przypadkw dobre nawyki dotyczce ustalania i ochrony hase, monitorowania plikw dziennikw zdarze oraz utworzenia dobrych regu zapory sieciowej pozwalaj
na skuteczn ochron przed atakami. Czasami konieczne staje si podjcie bardziej aktywnych dziaa w odpowiedzi na wamania.
Wiele zada powizanych z zabezpieczaniem systemu Linux jest wsplnych zarwno dla
komputerw biurkowych, jak i serwerw. Poniewa jednak serwery pozwalaj klientom
z zewntrz na pewny poziom dostpu do systemu, wymagaj specjalnych rodkw bezpieczestwa.
W rozdziale zostan przedstawione oglne zadania zabezpieczania systemw Linux oraz
techniki bezpieczestwa stosowane w komputerach biurkowych i serwerach. Nastpnie
zostan omwione niektre narzdzia moliwe do uycia z poziomu systemw Linux
uruchamianych bezporednio z nonika suce do rozwizywania problemw z komputerem oraz sieci.

Lista kontrolna bezpieczestwa Linuksa


Podczas gdy wikszo systemw opartych na Linuksie zawiera wszystkie narzdzia niezbdne do zabezpieczenia komputera, to jeli uytkownik bdzie nierozwany, kto moe
(i prawdopodobnie sprbuje) wama si do systemu, przej go i ukra dane. Nie wolno
zapomina, e adne rodki bezpieczestwa nie daj 100 procent pewnoci. Dysponujc
fizycznym dostpem do komputera lub nieograniczon iloci wolnego czasu na prby
wamania, dowiadczony i zdeterminowany cracker bdzie mg wama si do dowolnego
komputera.
Istnieje jednak wiele zabezpiecze, ktre zwikszaj poziom bezpieczestwa systemu
Linux. Przedstawiona poniej lista prezentuje szeroki zakres funkcji wpywajcych na
bezpieczestwo komputera biurowego lub serwera.

Kontrola fizycznego dostpu. Umieszczenie komputera w zamykanym na klucz


pomieszczeniu jest cakiem dobrym pomysem, zwaszcza jeli zawiera on bardzo
wane dane. Mona ograniczy krg osb, ktre posiadaj fizyczny dostp
do komputera, poprzez wczenie hase w BIOS-ie (uniemoliwiajc w ogle
uruchomienie komputera) oraz programie rozruchowym GRUB lub LILO. W BIOS-ie
mona take ograniczy liczb urzdze uruchamiajcych komputer.

Dodanie uytkownikw oraz hase. Utworzenie oddzielnych kont uytkownikw


(kade obowizkowo z silnym hasem) jest pierwsz lini obrony w ochronie
danych. Uytkownicy s nawzajem przed sob chronieni, jak rwnie przez osobami
z zewntrz, ktre chciayby przej kontrol nad jednym z kont uytkownika.
Ustalenie grup kont moe rozszerzy koncepcj wasnoci na wielu uytkownikw.
Informacje dotyczce ustawiania kont uytkownikw zostay przedstawione
w rozdziale 4., a dodatkowe zostan zaprezentowane w podrozdziale Uywanie
zabezpieczenia w postaci hasa, znajdujcym si w dalszej czci rozdziau.

Ustawianie uprawnie do odczytu, zapisu oraz uruchamiania. Kady element


systemu Linux (wczajc w to katalogi, aplikacje oraz urzdzenia) moe zosta
ograniczony prawami do odczytu, zapisu i uruchamiania w stosunku do waciciela
i grupy, jak i pozostaych uytkownikw. W ten sposb mona na przykad zezwoli

Rozdzia 6. Bezpieczestwo systemu Linux

243

uytkownikom na uruchamianie polecenia lub otwieranie pliku, ale bez prawa jego
modyfikacji. Informacje dotyczce ustawiania uprawnie do plikw i katalogw
zostay przedstawione w rozdziale drugim.

Ochrona uytkownika root. W standardowych systemach Linux uytkownik root


(a take inne konta administracyjne, takie jak apache) posiada specjalne uprawnienia
do uywania i modyfikacji systemu Linux. Naley chroni haso uytkownika
root oraz nie uywa tego konta bez potrzeby. Pozostawiona otwarta powoka lub
rodowisko graficzne uytkownika root mog sta si celem ataku. Uruchamianie
graficznych narzdzi administracyjnych jako zwyky uytkownik (i podawanie
hasa uytkownika root, gdy zajdzie taka potrzeba) oraz wykonywanie polece
administracyjnych za pomoc polecenia sudo moe zredukowa naraanie konta
superuytkownika na atak. Informacje dotyczce obsugi konta uytkownika root
zostay przedstawione w rozdziale czwartym.

Uywanie zaufanego oprogramowania. Mimo e oprogramowanie open source


jest dostarczane bez gwarancji, to uywanie dystrybucji Linuksa z tradycjami
(takich jak na przykad Fedora, Debian lub SUSE) daje wiksze szanse uniknicia
niebezpiecznego oprogramowania. Skady oprogramowania, z ktrych pobierane s
pakiety lub uaktualnienia, take powinny by dokadnie zbadane. Z kolei uywanie
kluczy publicznych GPG pomoe zagwarantowa, e instalowane oprogramowanie
pochodzi od zaufanego dostawcy. Przed otworzeniem pobieranych plikw w aplikacji
Linuksa zawsze naley upewni si, skd pochodz dane pliki. Jeeli pobierane s
pene obrazy ISO, warto sprawdzi integralno pliku za pomoc sum kontrolnych
MD5 oraz SHA1 dostarczanych przez twrcw.

Pobieranie uaktualnie oprogramowania. W kadej gwnej dystrybucji Linuksa


(wczajc w to midzy innymi Debiana, SUSE, Gentoo i Red Hat) znajduj si
narzdzia do pobierania i instalacji uaktualnie oprogramowania, poniewa
w pakietach oprogramowania odnajdywane s sabe punkty oraz bdy. Naley si
upewni, e uaktualnienia s pobierane, zwaszcza jeli Linux dziaa jako serwer.
Wymienione narzdzia to midzy innymi apt, yum i emerge.

Uywanie bezpiecznych aplikacji. Nawet jeli oprogramowanie wydaje si dziaa


bez zarzutu, pewne aplikacje oferuj wiksz ochron przed atakami ni inne. Jeeli
na przykad uytkownik chce si zdalnie zalogowa do komputera za pomoc
internetu, uycie bezpiecznej powoki (ssh) jest znacznie bezpieczniejszym
rozwizaniem ni skorzystanie z usugi rlogin lub telnet (ktre przekazuj hasa
w postaci zwykego tekstu). Ponadto niektre usugi uwaane jako niebezpieczne,
gdy zostan udostpnione w internecie (na przykad Samba lub NFS), mog by
uywane znacznie bezpieczniej w internecie za pomoc tuneli VPN (na przykad
IPSec lub CIPE).

Uywanie restrykcyjnie ustawionych zapr sieciowych. Podstawowym zadaniem


zapory sieciowej jest akceptacja przychodzcych z sieci da usug, ktrych
uywanie jest dozwolone, oraz odrzucanie pozostaych da (bazujc gwnie
na danych numerach portw). System biurkowy powinien odrzuca dania
przychodzce do wikszoci portw. Z kolei serwer powinien dopuszcza dania
dla ustalonego i nadzorowanego zestawu portw. Wicej informacji dotyczcych
ustawiania zapory sieciowej za pomoc iptables zostanie przedstawionych
w rozdziale 18.

244

Cz II Linux w praktyce

Wczenie tylko potrzebnych usug. Aby oferowa usugi w systemie Linux


(takie jak strony WWW, serwery plikw lub poczty), procesy demonw nadsuchuj
okrelone numery portw. Nie naley wcza usug, ktre nie s potrzebne.
Program, ktry dziaa w tle i obsuguje dania dostpu do usug (takich jak sendmail),
nosi nazw demona. Zazwyczaj demony s uruchamiane automatycznie podczas startu
systemu i dziaaj a do jego zamknicia. Demony mog by rwnie uruchamiane
rcznie, gdy zaistnieje taka potrzeba. Do tego celu suy xinetd, czyli specjalny demon,
ktry nasuchuje na wielu portach, a nastpnie uruchamia dane procesy.

Ograniczenie dostpu do usug. Poprzez zezwolenie na dostp tylko do okrelonego


komputera, domeny lub interfejsu sieciowego mona ograniczy dostp do usug.
Na przykad komputer z interfejsami zarwno do internetu, jak i sieci lokalnej
moe umoliwi dostp do usug takich jak NFS tylko komputerom sieci
LAN i nie oferowa tych usug komputerom w internecie. Usugi mog posiada
ograniczenia dostpu we wasnych plikach konfiguracyjnych lub za pomoc osony
TCP/IP (opisanej w dalszej czci rozdziau).

Sprawdzanie systemu. Linux posiada dziesitki narzdzi przeznaczonych


do sprawdzania bezpieczestwa systemu. Po zainstalowaniu systemu Linux
uytkownik moe sprawdzi dostp do portw systemu za pomoc narzdzia
nmap lub obserwowa ruch sieciowy za pomoc narzdzia Ethereal. Peny obraz
bezpieczestwa systemu dopeniaj narzdzia takie jak Nessus. Narzdzia
bezpieczestwa umieszczone na pytach CD i DVD doczonych do ksiki zostan
omwione w dalszej czci rozdziau.

Monitorowanie systemu. W systemie Linux mona zarejestrowa prawie kady


rodzaj aktywnoci. Systemowe pliki dziennikw zdarze za pomoc demonw
syslogd oraz klogd mog zosta skonfigurowane tak, aby w maksymalny lub
minimalny sposb ledzi aktywno systemu. Z kolei narzdzia takie jak logwatch
przekazuj komunikaty o potencjalnych problemach bezporednio na konto e-mail
administratora. Funkcje rejestrowania zdarze zostan szczegowo opisane
w dalszej czci rozdziau.

Uywanie SELinux. SELinux jest wyjtkowo bogatym w moliwoci


(i skomplikowanym) narzdziem do zarzdzania dostpem do niemal kadego
komponentu systemu Linux. Narzdzie stanowi rozwizanie kwestii okrelanej
mianem po uzyskaniu uprawnie superuytkownika staj si odpowiedzialny take
za jego mankamenty systemw Linux i Unix funkcjonujcych w rodowiskach
o znaczeniu krytycznym. Systemy Red Hat oferuj uyteczny, ale ograniczony
zbir regu SELinux, domylnie wczony w dystrybucji Fedora. Inne dystrybucje
Linuksa rwnie pracuj nad implementacj SELinux.

Wyszukiwanie zasobw dotyczcych bezpieczestwa


danej dystrybucji
Wikszo dystrybucji Linuksa posiada zasoby powicone zagadnieniom pomocy w zabezpieczaniu systemu oraz zawierajce informacje zwizane z bezpieczestwem danej
wersji Linuksa. Poniej przedstawiono kilka zasobw internetowych, ktre skupiaj si
na bezpieczestwie rnych dystrybucji systemu Linux.

Rozdzia 6. Bezpieczestwo systemu Linux

245

Bezpieczestwo Red Hat Enterprise Linux i Fedora Core witryna dotyczca


bezpieczestwa Red Hat (http://www.redhat.com/security) zawiera omwienie
kwestii bezpieczestwa RHEL (ktre zwykle maj zastosowanie rwnie dla
dystrybucji Fedora Core). W witrynie mona przejrze dostpne uaktualnienia
i dowiedzie si wicej na ich temat. Uytkownik moe take uzyska informacje
na temat szkole z zakresu bezpieczestwa oraz skonsultowa si z Red Hat Inc.
Kwestie bezpieczestwa dotyczce Fedory s dostpne na stronie Wiki
(http://fedoraproject.org/wiki/Security/Features).
Z kolei podrcznik bezpieczestwa Red Hat Enterprise Linux 4 zawiera szczegowe
omwienie bezpieczestwa Linuksa dla dystrybucji Red Hat. Wymieniony
podrcznik jest dostpny w internecie na stronie
http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/security-guide/.

Bezpieczestwo Debiana strona zawierajca informacje dotyczce


bezpieczestwa Debiana (http://www.debian.org/security) stanowi punkt centralny
wyszukiwania porad na temat bezpieczestwa, odpowiedzi na najczciej zadawane
pytania oraz odnonikw do dokumentw powiconych zagadnieniom
bezpieczestwa. Podrcznik omawiajcy kwestie bezpieczestwa w dystrybucji
Debian znajduje si na stronie
http://www.debian.org/doc/manuals/securing-debian-howto.

Bezpieczestwo Ubuntu dokumenty oraz narzdzia zwizane z bezpieczestwem


Ubuntu znajduj si na stronie
https://help.ubuntu.com/community/Security.

Bezpieczestwo Gentoo na stronie http://www.gentoo.org/security znajduj


si narzdzia, ogoszenia oraz odnoniki do stron powiconych bezpieczestwu
i dokumentacji projektu zwizanej z zabezpieczaniem systemw Gentoo. Podrcznik
bezpieczestwa Gentoo znajduje si na stronie
http://www.gentoo.org/doc/en/security.

Bezpieczestwo Slackware w celu zapewnienia bezpieczestwa dystrybucji


Slackware warto zapozna si z poradami odnonie bezpieczestwa Slackware
(http://www.slackware.com/security). Uytkownik moe rwnie zapisa si
na list dyskusyjn dotyczc bezpieczestwa w Slackware
(http://www.slackware.com/lists).

Bezpieczestwo SUSE pomoc techniczna w zakresie bezpieczestwa dystrybucji


SUSE jest dostarczana przez firm Novell. Rne zagadnienia dotyczce
bezpieczestwa SUSE zostay przedstawione na stronie
http://www.novel.com/linux/security/securitysupport.html.

246

Cz II Linux w praktyce

Wyszukiwanie oglnych zasobw


dotyczcych bezpieczestwa
Istnieje wiele zasobw sieciowych dotyczcych bezpieczestwa komputerowego, ktre
zawieraj take informacje uyteczne dla administratorw systemu Linux. Poniej przedstawiono list witryn, ktre warto sprawdzi:

CERT (http://www.cert.org) centrum koordynacyjne CERT zajmuje si


bezpieczestwem komputerw. Na stronie gwnej centrum znajduj si informacje
dotyczce najnowszych sabych punktw. Witryna posiada rwnie zbir artykuw
o praktykach bezpieczestwa (http://www/cert.org/nav/articles_reports.html).
Na witrynie znajduj si take zalecenia odnonie krokw, ktre naley podj,
jeli komputer sta si celem udanego ataku (http://www.cert.org/tech_tips/
win-UNIX-system_compromise.html).

SecurityFocus (http://www.securityfocus.com) oprcz nowoci oraz oglnych


informacji dotyczcych bezpieczestwa komputerowego, SecurityFocus oferuje
rwnie kilka zasobw przeznaczonych dla Linuksa. Uytkownik moe
zaprenumerowa tygodniowy newsletter Linux Security News.

LinuxSecurity (http://www.linuxsecurity.com) witryna zawiera wiele artykuw


oraz funkcji zwizanych z bezpieczestwem systemu Linux. Wskazuje rwnie
doradcw bezpieczestwa dla ponad dziesiciu dystrybucji Linuksa.

Bezpieczne korzystanie z Linuksa


Zabezpieczenie i zapewnianie bezpieczestwa systemom Linux oznacza nie tylko podjcie dobrych decyzji w trakcie pocztkowej konfiguracji systemu, ale wie si rwnie ze sposobem jego dalszego uywania. Niezalenie od tego, czy system Linux jest
uywany jako komputer biurkowy, czy jako serwer, zawsze bardzo wane s dobre praktyki zwizane z hasami, uywaniem bezpiecznych aplikacji oraz monitorowaniem plikw dziennikw zdarze.
Ustawienie bezpiecznej zapory sieciowej (jak to zostanie opisane w rozdziale 18.) jest
krytycznym krokiem podczas zabezpieczania systemu Linux. Istnieje jeszcze kilka innych
rodkw, ktre naley zastosowa w Linuksie. W podrozdziale zostan przedstawione
niektre dobre praktyki dotyczce uywania hase, ledzenia aktywnoci systemu poprzez
obserwacj plikw dziennikw zdarze oraz komunikacji z innymi systemami za pomoc
bezpiecznej powoki (ssh).

Uywanie zabezpieczenia w postaci hasa


Zabezpieczanie hasem jest podstawowym sposobem zapewnienia bezpieczestwa kadego
nowoczesnego systemu operacyjnego i jednoczenie najczciej atakowan funkcj bezpieczestwa. Naturalne jest, e uytkownik stara si wybra haso najatwiejsze do zapamitania, ale czsto oznacza to, e tak wybrane haso jest atwe do odgadnicia. Crackerzy
doskonale wiedz, e w dowolnym systemie posiadajcym wicej ni tylko kilku uytkownikw przynajmniej jeden z nich zastosuje atwe do odgadnicia haso.

Rozdzia 6. Bezpieczestwo systemu Linux

247

Poprzez uycie metody brutalnej siy do prby zalogowania si na kadym koncie


systemu i wyprbowanie na kadym z nich najczciej stosowanych hase wytrway cracker
ma du szans osignicia celu. Naley pamita, e cracker zautomatyzuje taki atak,
wic niewykluczone s tysice prb zalogowania. Oczywiste staje si, e wybr dobrego
hasa jest pierwszym i najwaniejszym krokiem podczas zabezpieczania systemu.
Poniej przedstawiono list elementw, ktrych naley unika podczas ustalania hasa:

Nie naley uywa adnych odmian loginu lub penego imienia i nazwiska. Nawet
jeli zostanie zrnicowana wielko liter, doczony znak interpunkcyjny lub liczba
bd zapis wspak, to takie haso wci pozostaje atwe do odgadnicia.

Nie naley uywa sowa sownikowego, nawet jeli zostanie uzupenione o cyfry
lub znaki interpunkcyjne.

Nie naley uywa jakichkolwiek poprawnych nazw.

Nie naley uywa kolejnych liter lub cyfr na klawiaturze (na przykad qwerty
lub asdfg).

Wybr dobrego hasa


Dobrym sposobem wyboru silnego hasa jest uycie pierwszej litery kadego sowa z atwego do zapamitania zdania. Takie haso staje si jeszcze lepsze po dodaniu cyfr, znakw
interpunkcyjnych i zrnicowaniu wielkoci liter. Wybrane zdanie powinno posiada znaczenie tylko dla uytkownika i nie powinno by publicznie dostpne (dlatego te wybr
zdania ze swojej strony internetowej jest wyjtkowo zym pomysem). W tabeli 6.1 zostay
przedstawione przykady silnych hase oraz podpowiedzi uatwiajcych zapamitanie
tych hase.
Tabela 6.1. Propozycje dobrych hase
Haso

Jak je atwo zapamita?

Mzsmj7l!

Mj zardzewiay samochd ma ju 7 lat!

2stZp1jl

2 sonie to ZY pomys, 1 jest lepszy

CtMp?Omgzp

Czy to MJ paszcz? Oddaj mi go z powrotem

Powysze hasa przypominaj bekot, ale w rzeczywistoci s stosunkowo atwe do zapamitania. Jak wida, nacisk zosta pooony na sowa, ktre w hale s przedstawiane za
pomoc wielkich liter. Ustawienie hasa odbywa si za pomoc polecenia passwd. Po
wydaniu polecenia passwd z poziomu powoki uytkownik bdzie mg zmieni haso.
W pierwszej kolejnoci nastpi wywietlenie pytania o dotychczasowe haso. Aby zmobilizowa uytkownika do zapamitania hasa oraz uniemoliwi jego poznanie innym
uytkownikom, ktrzy mogliby ewentualnie spoglda mu przez rami, wpisywane haso
nie bdzie wywietlane na ekranie.
Zakadajc, e dotychczasowe haso zostanie podane prawidowo, nastpnym krokiem polecenia passwd bdzie pytanie o nowe haso. W trakcie wpisywania nowego hasa polecenie
passwd uywa biblioteki cracklib w celu okrelenia, czy podawane haso jest dobre, czy ze.

248

Cz II Linux w praktyce

Uytkownik, ktry nie jest uytkownikiem root, zostanie poproszony o podanie innego
hasa, jeli wprowadzone nie zostanie uznane za dobre.
Uytkownik root jest jedynym uytkownikiem, ktry moe uy zego hasa. Po zaakceptowaniu hasa przez bibliotek cracklib polecenie passwd prosi o ponowne podanie hasa,
aby upewni si, e nie popeniono pomyki (ktr trudno wychwyci, gdy podawane haso
nie jest widoczne na ekranie). Kiedy uytkownik dziaa jako root, moe zmieni haso
dowolnego uytkownika, podajc nazw uytkownika jako parametr polecenia passwd,
na przykad:
# passwd janek
Changing password for user janek.
New UNIX password: ********
Retype new UNIX password: ********
passwd: all authentication tokens updated successfully.

W powyszym przykadzie wykonania polecenia passwd dla uytkownika janek trzeba


dwukrotnie poda nowe haso. W tym przypadku nie jest wywietlane pytanie o podanie
dotychczasowego hasa. W ten sposb root moe wyzerowa haso uytkownika, gdy
uytkownik je zapomni (a zdarza si to zbyt czsto).

Korzystanie z pliku hase shadow


We wczesnych wersjach systemu Unix wszystkie informacje dotyczce kont uytkownikw
oraz ich hase byy przechowywane w pliku moliwym do odczytania przez wszystkich
uytkownikw (chocia tylko root mia uprawnienia modyfikacji tego pliku). Takie rozwizanie nie byo problemem, poniewa hasa byy zaszyfrowane. Uytym algorytmem
szyfrowania by algorytm trapdoor, oznaczajcy, e niezakodowane haso byo kodowane
do postaci cigu znakw, ale ten cig znakw nie mg by przeksztacony z powrotem
na niezakodowane haso. Innymi sowy, algorytm szyfrowania trapdoor by algorytmem
jednokierunkowym.
W jaki wic sposb system sprawdza poprawno tak zaszyfrowanych hase? W trakcie
logowania system szyfrowa haso podawane przez uytkownika, a nastpnie porwnywa otrzymany zaszyfrowany cig tekstowy z cigiem tekstowym przechowywanym
w pliku. Uytkownik uzyskiwa dostp tylko wtedy, gdy oba cigi byy identyczne. Jeeli
uytkownik zapytaby administratora systemu, jak brzmi haso do jego konta, w odpowiedzi mgby usysze Nie wiem. Wyjanienie jest proste administrator rzeczywicie nie zna hasa i ma dostp tylko do jego zaszyfrowanej postaci. Niezaszyfrowane
haso istnieje tylko w chwili jego wpisywania przez uytkownika.

amanie zaszyfrowanych hase


Moliwo zobaczenia zaszyfrowanych hase przez uytkownikw bya jednak problemem. Chocia odszyfrowanie hasa zaszyfrowanego algorytmem trapdoor moe by trudne
(o ile nawet niemoliwe), to bardzo atwo jest zaszyfrowa olbrzymi liczb zgadywanych
hase i porwna je z zaszyfrowanymi hasami umieszczonymi w pliku. Ze wzgldu na
ogrom danych jest to znacznie efektywniejsze ni rzeczywiste prby logowania z uyciem
loginu i hasa. Jeeli cracker bdzie w stanie uzyska kopi pliku z hasami, ma znacznie
wiksze szanse na wamanie do systemu.

Rozdzia 6. Bezpieczestwo systemu Linux

249

Na szczcie Linux oraz wszystkie nowoczesne systemy Unix domylnie obsuguj plik
hase shadow. Jest on specjaln wersj pliku passwd, ktr moe odczyta tylko root.
Plik zawiera zaszyfrowane informacje o hasach, wic mog one zosta wyrzucone ze
zwykego pliku passwd, do ktrego dostp maj wszyscy uytkownicy systemu. Linux
obsuguje zarwno starszy pojedynczy plik z hasami, jak i nowszy plik hase shadow.
Zawsze naley stosowa plik hase shadow (uywany domylnie).

Sprawdzanie pliku hase shadow


Plik hase nosi nazw passwd i jest umieszczony w katalogu /etc. Z kolei plik hase shadow
rwnie znajduje si w katalogu /etc. Jeeli w systemie nie ma pliku /etc/shadow, system
Linux prawdopodobnie przechowuje hasa w pliku /etc/passwd. Mona to zweryfikowa
za pomoc polecenia less:
# less /etc/passwd

Po wydaniu powyszego polecenia na ekranie powinny zosta wywietlone dane podobne


do przedstawionych poniej:
root:DkkS6Uke799fQ:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:
daemon:x:2:2:daemon:/sbin:/bin/sh
.
.
.
maria:KpRUp2ozmY5TA:500:100:Maria Nowak:/home/maria:/bin/bash
janek:0sXrzvKnQaksI:501:100:Janek Kowalski:/home/janek:/bin/bash
jadwiga:ptNoiueYEjwX.:502:100:Jadwiga Malinowska:/home/jadwiga:/bin/bash
bartek:Ju2vY7A0X6Kzw:503:100:Bartek Matusiak:/home/bartek:/bin/bash

Kady wiersz odpowiada pojedynczemu kontu uytkownika systemu Linux i jest utworzony z siedmiu pl rozdzielonych rednikiem (:). Patrzc od lewej do prawej strony,
wymienione pola oznaczaj nazw logowania, zaszyfrowane haso, identyfikator uytkownika, identyfikator grupy, opis, katalog domowy oraz domyln powok. W wierszu pierwszym wida, e wpis dotyczy konta root, ktre posiada zaszyfrowane haso
DkkS6Uke799fQ. Wiersz informuje rwnie, e identyfikator uytkownika i grupy to zero,
katalog domowy superuytkownika to /root, natomiast powok domyln tego konta jest
/bin/bash.
Wszystkie wymienione wartoci s standardowe dla konta root, ale zobaczenie zaszyfrowanego hasa powinno spowodowa wywoanie sygnau alarmowego u uytkownika
systemu, poniewa stanowi potwierdzenie, e system nie uywa pliku hase o nazwie
shadow. W takiej sytuacji naley natychmiast skonwertowa plik passwd, tak aby do przechowywania hase by uywany plik /etc/shadow. Konwersj wykonuje si za pomoc
polecenia pwconv. W tym celu naley po prostu zalogowa si jako uytkownik root (lub
uy polecenia su, aby uzyska jego uprawnienia), a nastpnie wyda polecenie ppwconv.
Nie powoduje ono wywietlenia na ekranie adnych danych wyjciowych, ale po jego wykonaniu system bdzie posiada plik /etc/shadow, natomiast plik /etc/passwd powinien
przedstawia si nastpujco:
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:
daemon:x:2:2:daemon:/sbin:/bin/sh

250

Cz II Linux w praktyce
.
.
.
maria:x:500:100:Maria Nowak:/home/maria:/bin/bash
janek:x:501:100:Janek Kowalski:/home/janek:/bin/bash
jadwiga:x.:502:100:Jadwiga Malinowska:/home/jadwiga:/bin/bash
bartek:x:503:100:Bartek Matusiak:/home/bartek:/bin/bash

Zaszyfrowane dane zostay zastpione znakiem x, a hasa przeniesione do pliku /etc/shadow.


Istnieje rwnie narzdzie Konfiguracja uwierzytelniania (dostpne w dystrybucjach Fedora
oraz RHEL), ktrego mona uy do zarzdzania hasami oraz innymi uwierzytelniajcymi danymi systemu. Wymienione narzdzie posiada take funkcje, ktre pozwalaj na
prac z hasami MD5, uwierzytelnianiem LDAP lub Kerberos 5. Narzdzie jest dostpne
w menu System/Administracja/Uwierzytelnianie.
Podczas pracy z hasami grup mona uy narzdzia grpconv, ktre skonwertuje hasa
z pliku /etc/groups na hasa w pliku hase /etc/gshadow. Jeeli plik passwd lub groups
zostanie zmieniony lub uszkodzony (uniemoliwiajc zalogowanie si na konto), mona
uy narzdzi odpowiednio pwunconv oraz grpunconv do odwrcenia procesu konwersji
hase.
W chwili obecnej w systemie uywany jest plik hase shadow, a uytkownicy ustawiaj
silne hasa. Mona wic stwierdzi, e wykonano pierwsze kroki we waciwym kierunku
podczas zabezpieczania systemu. Czytelnik prawdopodobnie zauway, e bezpieczestwo
nie jest tylko jednorazowym zadaniem. Bezpieczestwo to cigy proces dotyczcy zarwno
podejmowanych dziaa, jak i uywanych programw. Warto czyta dalej i dowiedzie si
wicej na ten temat.

Korzystanie z plikw dziennikw zdarze


Jeeli zostan zastosowane dobre praktyki dotyczce zapory sieciowej (bd opisane
w rozdziale 18.), system bdzie dobrze przygotowany na osabianie wikszoci atakw
crackerw bd zapobieganie im. Aby zapora sieciowa moga zatrzyma intruza, musi by
wstanie rozpozna atak, gdy taki ma miejsce. Zrozumienie rnych (i licznych) plikw
dziennikw zdarze, w ktrych system Linux zapisuje wane zdarzenia, jest krytycznym
elementem takiego zadania. Pliki dziennikw zdarze systemu Linux s umieszczone
w katalogu /var/log.
Wikszo systemw Linux uywa narzdzi przegldania plikw dziennikw zdarze
dostarczonych wraz ze rodowiskiem graficznym (na przykad GNOME), albo w postaci
polece wykonywanych z poziomu okna terminalu. Systemy uywajce GNOME bardzo
czsto posiadaj narzdzie Przegldarka dziennikw systemowych (polecenie gnome-system-log), ktre mona wykorzysta do przegldania i przeszukiwania krytycznych plikw
dziennikw zdarze systemu z poziomu GUI. W celu otworzenia okna narzdzia Przegldarka dziennikw systemowych z grnego panelu Fedory naley wybra System/
Administracja/Dziennik systemowy. Na rysunku 6.1 pokazano przykadowe okno narzdzia
Przegldarka dziennikw systemowych.

Rozdzia 6. Bezpieczestwo systemu Linux

251

Rysunek 6.1.
Wywietlanie plikw
dziennikw zdarze
za pomoc narzdzia
Przegldarka
dziennikw
systemowych

Aby wywietli okrelony plik dziennika zdarze, naley klikn w lewej kolumnie jego
nazw. Wywietlenie komunikatw z okrelonego dnia i godziny jest moliwe dziki
kalendarzowi umieszczonemu w lewym dolnym rogu okna.
W tabeli 6.2 wymieniono pliki dziennikw zdarze wywietlane w oknie narzdzia Przegldarka dziennikw systemowych oraz inne interesujce pliki znajdujce si w katalogu
/var/log (w celu otworzenia pliku dziennika zdarze nieznajdujcego si w lewej kolumnie
trzeba wybra opcj Otwrz z menu Plik). Wiele wymienionych w tabeli plikw jest dostarczanych z wikszoci systemw Linux i s one dostpne tylko dla uytkownika root.
Ponadto niektre systemy Linux mog uywa innej nazwy pliku bd katalogu (na przykad zamiast /etc/httpd w niektrych systemach jest katalog /etc/apache).
Tabela 6.2. Pliki dziennikw zdarze umieszczone w katalogu /var/log
Nazwa systemowego
Nazwa pliku
dziennika zdarze

Opis

Boot Log

boot.log

Zawiera komunikaty wskazujce uruchomione i zamknite


usugi systemowe oraz (ewentualnie) te, ktrych uruchomienie
lub zatrzymanie zakoczyo si niepowodzeniem. Najnowsze
komunikaty s umieszczone na kocu pliku.

Cron log

cron

Zawiera komunikaty demona crond, ktry okresowo uruchamia


wykonywanie zada, takich jak tworzenie kopii zapasowych
bd rotacja plikw dziennikw zdarze.

Kernel Startup Log

dmesg

Zapis komunikatw wywietlanych przez jdro w trakcie


uruchamiania systemu.

FTP Log

xferlog

Zawiera informacje o plikach transferowanych za pomoc


usugi FTP.

Apache Access Log

httpd/access_log

Plik zawiera dania wzgldem serwera Apache.

Apache Error Log

httpd/error_log

Plik zawiera bdy, ktre wystpiy w klientach prbujcych


uzyska dane z serwera Apache.

252

Cz II Linux w praktyce

Tabela 6.2. Pliki dziennikw zdarze umieszczone w katalogu /var/log cig dalszy
Nazwa systemowego
Nazwa pliku
dziennika zdarze

Opis

Mail Log

maillog

Zawiera informacje o adresach, z ktrych i do ktrych zostay


wysane wiadomoci e-mail. Plik jest uyteczny w trakcie
wykrywania spamu.

MySQL Server Log

mysqld.log

Plik zawiera informacje powizane z aktywnoci serwera bazy


danych MySQL (mysqld).

News Log

spooler

Katalog zawierajcy dzienniki komunikatw z serwera list


dyskusyjnych, o ile taki jest uywany.

RPM Packages

rpmpkgs

Plik zawiera list pakietw RPM zainstalowanych w systemie.


(Dla systemw, ktre nie bazuj na pakietach RPM, naley
szuka katalogu debian-installer lub packages zawierajcego
list zainstalowanych pakietw).

Security Log

secure

Zapis daty, godziny oraz czasu trwania prb zalogowania i sesji.

System Log

messages

Plik dziennika zdarze oglnego przeznaczenia, w ktrym s


zapisywane komunikaty wielu programw.

Update Agent Log

up2date

Plik zawiera komunikaty wynikajce z dziaa Red Hat Update


Agent.

X.Org X11 Log

Xorg.0.log

Komunikaty wygenerowane przez serwer X systemu X.Org.

gdm/:0.log

Zawiera komunikaty powizane z ekranem logowania


(GNOME Display Manager).

samba/log.smbd

Komunikaty demona serwera Samba (smbd).

squid/access.log

Plik zawiera komunikaty zwizane z serwerem proxy


i buforowania.

vsftpd.log

Plik zawiera komunikaty zwizane z trybem transferu uywanym


przez demona vsFTPd (serwer FTP).

sendmail

Komunikaty bdw zapisane przez demona sendmail.

uucp

Komunikaty stanu pochodzce z demona protokou Unix to


Unix Copy Protocol.

Litera a oznacza plik dziennika zdarze, ktry nie jest pokazywany w oknie narzdzia
Przegldarka dziennikw systemowych. Dostp do tego pliku jest moliwy bezporednio
z katalogu /var/log.
Poniewa wymienione pliki dziennikw zdarze maj posta zwykych plikw tekstowych,
mona je wywietli rwnie za pomoc dowolnego edytora tekstowego (takiego jak vi
czy gedit) lub polecenia stronicujcego (na przykad less).

Rozdzia 6. Bezpieczestwo systemu Linux

253

Rola demona syslogd


Wikszo plikw w katalogu /var/log jest obsugiwana przez usug syslogd. Demon
syslogd oznacza System Logging Daemon. Jego zadaniem jest przyjmowanie komunikatw z rnych programw i zapisywanie ich w odpowiednich plikach dziennikw zdarze.
Jest to znacznie lepsze rozwizanie ni zapis plikw dziennikw zdarze bezporednio
przez kady program, gdy demon umoliwia centralne zarzdzanie obsug plikw dziennikw zdarze. Demon syslogd moe zosta skonfigurowany tak, aby zapisywa pliki
dziennikw zdarze o rnym stopniu szczegowoci. Demon moe rwnie ignorowa
wszystkie komunikaty poza krytycznymi bd te zapisywa bardzo skrupulatnie wszystkie informacje.
Demon syslogd mona nawet przyjmowa komunikaty z innych komputerw w sieci.
Jest to szczeglnie uyteczna funkcja, gdy umoliwia centralizacj zarzdzania i pobierania plikw dziennikw zdarze z wielu komputerw w sieci. Takie rozwizanie
niesie ze sob pewne korzyci zwizane z bezpieczestwem.
Jeeli dowolny komputer z sieci zostanie zamany, wwczas cracker nie bdzie mg
usun bd zmodyfikowa plikw dziennikw zdarze, poniewa bd one przechowywane na innym komputerze. Naley jednak pamita, e domylnie pliki dziennikw
zdarze nie s szyfrowane. Podsuchujc ruch w sieci lokalnej, mona wykry przekazywanie tych komunikatw w trakcie ich transferu midzy komputerami. Ponadto, mimo e cracker nie bdzie mg zmodyfikowa starych wpisw, moe wpyn w taki
sposb na system, aby nowym komunikatom nie mona byo ufa.
Stosunkowo czsto stosowan praktyk jest ustalanie komputera przeznaczonego specjalnie do zapisu plikw dziennikw zdarze z innych komputerw w sieci. Poniewa
taki system dziaa bez innych uruchomionych usug, wamanie do niego jest bardzo mao
prawdopodobne. Dziki temu cracker praktycznie nie ma moliwoci wymazania ladw
swojej obecnoci i dziaalnoci, ale to nie oznacza, e wszystkie wpisy w dziennikach
zdarze powstae po wamaniu bd prawidowe.

Przekierowanie komunikatw zdarze


do serwera zdarze za pomoc syslogd
W celu przekierowania plikw dziennikw zdarze do demona syslogd innego komputera naley przeprowadzi kilka modyfikacji w pliku konfiguracyjnym lokalnego demona
syslogd (plik /etc/syslog.conf). Po uzyskaniu uprawnie uytkownika root (za pomoc
polecenia su) trzeba otworzy w dowolnym edytorze tekstowym, takim jak vi, plik /etc/
syslog.conf. Plik bdzie podobny do przedstawionego poniej:
# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.*
/dev/console
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;news.none;authpriv.none;cron.none /var/log/messages

254

Cz II Linux w praktyce
# The authpriv file has restricted access.
authpriv.*
/var/log/secure
# Log all the mail messages in one place.
mail.*
/var/log/maillog
# Log cron stuff
cron.*

/var/log/cron

# Everybody gets emergency messages


*.emerg

# Save news errors of level crit and higher in a special file.


uucp,news.crit
/var/log/spooler
# Save boot messages also to boot.log
local7.*

/var/log/boot.log

#
# INN
#
news.=crit
news.=err
news.notice

/var/log/news/news.crit
/var/log/news/news.err
/var/log/news/news.notice

Wiersze rozpoczynajce si od znaku # s komentarzami. Pozostae wiersze zawieraj


dwie kolumny informacji. Lewa kolumna stanowi rozdzielon przecinkami (spacje tutaj nie
dziaaj) list rodzajw i priorytetw komunikatw. Z kolei prawa kolumna zawiera plik
dziennika zdarze, w ktrym te komunikaty powinny by zapisywane.
W celu wysania komunikatw do innego komputera (o nazwie loghost) zamiast do pliku
naley nazw pliku zastpi znakiem @ i nazw komputera. Na przykad przekierowanie
danych wyjciowych wysyanych zwykle do plikw dziennikw zdarze messages, secure
i maillog wymaga w powyszym pliku wprowadzenia nastpujcych zmian:
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;news.none;authpriv.none;cron.none @loghost
# The authpriv file has restricted access.
authpriv.*
@loghost
# Log all the mail messages in one place.
mail.*
@loghost

Po wprowadzeniu powyszych zmian komunikaty bd wysyane do demona syslogd dziaajcego na komputerze o nazwie loghost. Nazwa loghost nie jest dowoln nazw.
Zwykle tworzy si nazw komputera i udostpnia jako alias rzeczywistego systemu dziaajcego jako loghost. W ten sposb, jeeli kiedykolwiek zajdzie potrzeba przeniesienia
serwera plikw dziennikw zdarze na inny komputer, wystarczy zmieni tylko alias. Nie
bdzie konieczna ponowna edycja pliku syslog.conf na kadym komputerze.
Po stronie serwera loghost komputer musi posiada uruchomionego demona syslogd wraz
z opcj -r, ktra powoduje oczekiwanie na komunikaty zdarze przekazywane z innych
komputerw w sieci. W systemie Fedora Core oznacza to dodanie opcji -r do zmiennej

Rozdzia 6. Bezpieczestwo systemu Linux

255

SYSLOGD_OPTIONS w pliku /etc/sysconfig/syslog i ponowne uruchomienie usugi syslog


(service syslog restart). Ponadto serwer loghost musi posiada port UDP 514 dostpny
dla demona syslogd (trzeba sprawdzi plik /etc/services), a wic naley utworzy odpo-

wiedni regu w zaporze sieciowej.

Zrozumienie komunikatw pliku dziennika zdarze


Poniewa w pliku dziennika zdarze messages informacje zapisuje wiele programw i usug,
bardzo wane jest zrozumienie formatu tego pliku. Dziki analizie tego pliku mona wczenie uzyska ostrzeenie o problemach w systemie. Kady wiersz pliku stanowi pojedynczy komunikat zapisany przez program lub usug. Poniej przedstawiono fragment
rzeczywistego pliku dziennika zdarze messages:
Feb 25 11:04:32 toys network: Bringing up loopback interface: succeeded
Feb 25 11:04:35 toys network: Bringing up interface eth0: succeeded
Feb 25 13:01:14 toys vsftpd(pam_unix)[10565]: authentication failure;
logname= uid=0 euid=0 tty= ruser= rhost=10.0.0.5 user= krzysztof
Feb 25 14:44:24 toys su(pam_unix)[11439]: session opened for
user root by krzysztof(uid=500)

Odczyt pliku jest bardzo prosty, o ile wiadomo, na co zwrci uwag. Kady komunikat
jest podzielony na pi gwnych czci. Patrzc od lewej do prawej strony, s to:

data i godzina zarejestrowania komunikatu,

nazwa komputera, z ktrego pochodzi dany komunikat,

nazwa programu lub usugi, ktrej dotyczy dany komunikat,

numer procesu (umieszczony w nawiasach kwadratowych) programu wysyajcego


komunikat,

rzeczywista tre komunikatu.

Spjrzmy ponownie na powyszy fragment pliku. Pierwsze dwa wiersze informuj o ponownym uruchomieniu sieci. Kolejny wiersz wskazuje, e uytkownik krzysztof prbowa
uzyska dostp do serwera FTP (prba zakoczona niepowodzeniem) z komputera o adresie 10.0.0.5 (uytkownik poda nieprawidowe haso i uwierzytelnienie nie powiodo si).
Ostatni wiersz wskazuje, e uytkownik krzysztof uy polecenia su, aby uzyska uprawnienia superuytkownika.
Okazjonalne przegldanie plikw messages i secure umoliwia wychwycenie prby
wamania, nim zakoczy si ona powodzeniem. Jeeli plik wskazuje na nadmiern liczb
prb poczenia z okrelon usug, zwaszcza jeli dania nadchodz z internetu, moe
oznacza to prb ataku.

Uywanie narzdzi bezpiecznej powoki


Narzdzia bezpiecznej powoki (ssh) to zbir aplikacji typu klient serwer, ktre pozwalaj na podstawow komunikacj (zdalne logowanie, zdalne kopiowanie, zdalne wykonywanie itd.) midzy zdalnymi komputerami a danym systemem Linux. Poniewa

256

Cz II Linux w praktyce

komunikacja midzy serwerem (zazwyczaj procesem demona sshd) i klientami (takimi


jak ssh, scp i sftp) jest szyfrowana, to te narzdzia s niewtpliwie bezpieczniejsze ni
podobne, ale starsze narzdzia Uniksa, takie jak rsh, rcp i rlogin.
Wikszo systemw Linux zawiera klienty bezpiecznej powoki, a niektre posiadaj
rwnie serwer sshd. Jeli na przykad uywana jest dystrybucja Fedora lub Red Hat
Enterprise Linux, oprogramowanie ssh skada si z nastpujcych pakietw: openssh,
openssh-clients i openssh-serwer.

Uruchamianie usugi ssh


Systemy Linux, ktre s dostarczane z zainstalowan usug ssh, bardzo czsto s skonfigurowane tak, aby uruchamia j automatycznie. W dystrybucjach Fedora i RHEL demon
sshd jest uruchamiany za pomoc skryptu startowego /etc/init.d/sshd. Aby upewni si,
e usuga zostaa skonfigurowana do automatycznego uruchamiania w Fedorze, RHEL
lub innym systemie Linux bazujcym na pakietach RPM, naley wyda nastpujce polecenie (jako uytkownika root):
# chkconfig --list sshd
sshd
0:off 1:off

2:on

3:on

4:on

5:on

6:off

Powysze polecenie wskazuje, e usuga ssh zostaa skonfigurowana do uruchomienia na


2., 3., 4. lub 5. poziomie systemu (zwyky stan uruchamiania systemu to poziom 5.) i jest
wyczona na pozostaych. Jeeli usuga ssh jest wyczona, jej uruchomienie na dowolnym poziomie dziaania nastpuje po wydaniu polecenia (jako uytkownik root):
# chkconfig sshd on

Powysze polecenie wcza usug ssh, kiedy system dziaa na 2., 3., 4. lub 5. poziomie.
W celu natychmiastowego uruchomienia usugi naley wyda polecenie:
# service sshd start

Inne dystrybucje Linuksa mog po prostu uruchamia demona sshd z pliku o nazwie
podobnej do rc.sshd, znajdujcego si w katalogu /etc/rc.d. W kadym przypadku okrelenie, czy demon sshd jest uruchomiony, nastpuje po wydaniu polecenia:
$ ps ax | grep sshd
1996 ?
Ss

0:00

/usr/sbin/sshd

Po wydaniu powyszego polecenia wyranie wida, e demon sshd jest uruchomiony. Jeeli
demon sshd dziaa, a zapora sieciowa pozwala na korzystanie z usugi bezpiecznej powoki
(na otwartym porcie TCP o numerze 22), uytkownik powinien mc uywa polece
klienta ssh do uzyskiwania dostpu do systemu. (Wszelka dalsza konfiguracja ograniczajca moliwoci demona sshd jest przeprowadzana w pliku /etc/ssh/sshd_config).

Uywanie polece ssh, sftp i scp


Polecenia, ktrych mona uywa z usug ssh, to ssh, sftp oraz scp. Zdalni uytkownicy
mog wykorzysta polecenie ssh w celu bezpiecznego zalogowania si do systemu lub zdalnego wykonania polecenia systemu. Z kolei polecenie scp pozwala zdalnym uytkownikom

Rozdzia 6. Bezpieczestwo systemu Linux

257

na kopiowanie plikw z oraz do systemu. Natomiast polecenie sftp zapewnia bezpieczny


dostp do witryn FTP za pomoc usugi ssh (w przypadku witryn, ktre oferuj dostp
ssh do zawartoci FTP).
Podobnie jak w przypadku zwykej usugi zdalnej powoki, take bezpieczna powoka
sprawdza plik /etc/hosts.equiv oraz w katalogu domowym uytkownika plik .rhost
w celu okrelenia, czy zezwoli na poczenie. Sprawdzane s rwnie pliki przeznaczone
specjalnie dla usugi ssh, czyli /etc/shosts.equiv i .shosts. Uywanie plikw shosts.equiv
oraz .shosts jest zalecanym rozwizaniem, poniewa unika si w ten sposb nadania dostpu
od usug nieszyfrowanej zdalnej powoki. Pliki /etc/shost.equiv i .shosts posiadaj takie
same funkcje jak pliki hosts.equiv i .rhosts, tak wic stosuj si do nich takie same reguy.
Teraz mona ju przetestowa usug ssh. Z poziomu innego komputera z zainstalowanym
ssh (lub nawet z tego samego komputera, jeli inny nie jest dostpny) naley wyda polecenie ssh, po ktrym znajdzie si spacja oraz nazwa systemu docelowego. Na przykad
w celu nawizania poczenia z systemem ratbert.glaci.com naley wyda polecenie:
# ssh ratbert.glaci.com

Jeeli bdzie to pierwsze zalogowanie do danego systemu za pomoc polecenia ssh, system
wywietli komunikat potwierdzajcy ch nawizania poczenia. Po wywietleniu poniszego komunikatu naley wpisa yes i nacisn klawisz Enter:
The authenticity of host 'ratbert.glaci.com (199.170.177.18)' can't be
established.
RSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
Are you sure you want to continue connecting (yes/no)?

Nastpnie system powinien zapyta o nazw uytkownika oraz haso. Nawizane poczenie bdzie funkcjonowao tak jak zwyke zdalne poczenie (innymi sowy, uytkownik
moe rozpocz wydawanie polece powoki). Jedyn rnic jest fakt, e podczas przesyania informacji przez sie s one szyfrowane. Uytkownik powinien mie rwnie
moliwo uywania polecenia ssh do uruchamiania zdalnych polece powoki na zdalnym
systemie.
Polecenie scp jest podobne do polecenia rcp sucego do kopiowania plikw midzy
systemami Linux. Poniej przedstawiono przykad uycia polecenia scp do skopiowania
pliku o nazwie notatka z katalogu domowego uytkownika janek do katalogu /tmp komputera klon:
$ scp /home/janek/notatka klon:/tmp
janek@klon's password: ********
notatka
100%|****************| 153

0:00

Jeeli bdzie wymagane podanie hasa, naley poda haso danego uytkownika. Po zaakceptowaniu podanego hasa zdalny system poinformuje o pomylnym skopiowaniu pliku.
Polecenie sftp rozpoczyna interaktywn sesj FTP z serwerem FTP obsugujcym poczenia ssh. Wiele osb przykadajcych du wag do bezpieczestwa wybiera klientw
sftp zamiast ftp, poniewa zapewniaj one znacznie wiksze bezpieczestwo poczenia
midzy uytkownikiem i zdalnym komputerem. Oto przykad takiego poczenia:

258

Cz II Linux w praktyce
$ sftp ftp.handsonhistory.com
Connecting to ftp.handsonhistory.com
janek@ftp.handsonhistory.com's password: ********
sftp>

Od tej chwili mona rozpocz interaktywn sesj FTP. Uytkownik moe korzysta z polece get i put na plikach, podobnie jak w przypadku dowolnego klienta FTP, ale z komfortem wypywajcym z wiedzy, e praca odbywa si poprzez bezpieczne poczenie.
Polecenie sftp, podobnie jak polecenia ssh i scp, wymaga, aby usuga ssh bya
uruchomiona na serwerze. Jeeli nie mona nawiza poczenia z serwerem FTP
za pomoc polecenia sftp, usuga ssh moe nie by dostpna.

Uywanie polece ssh, scp i sftp bez hase


W przypadku komputerw wykorzystywanych przez uytkownika (zwaszcza tych, ktre
znajduj si za zapor sieciow w sieci lokalnej) duym uatwieniem jest moliwo
skonfigurowania tych maszyn w taki sposb, aby do logowania nie byo potrzebne haso.
Przedstawiona poniej procedura pokae, w jaki sposb to zrobi.
Kolejne kroki procedury prowadz uytkownika do ustawienia moliwoci uwierzytelniania z poziomu jednego komputera na drugim bez uycia hasa. W omwionym przykadzie uytkownik lokalny to chester znajdujcy si na komputerze o nazwie host1.
Zdalny uytkownik to rwnie chester, ale na komputerze o nazwie host2.
1. Zaloguj si w komputerze lokalnym (w omawianym przykadzie uytkownik
to chester na komputerze host1).
Polecenie przedstawione w drugim kroku naley wyda na komputerze lokalnym tylko
raz. Polecenia generujcego klucz nie wolno wydawa ponownie, chyba e klucz
zostanie utracony. W trakcie konfiguracji kolejnych zdalnych serwerw trzeba od razu
przej do kroku trzeciego.

2. W celu wygenerowania klucza ssh wydaj nastpujce polecenia:


$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key
(/home/chester/.ssh/id_dsa): <Enter>
Enter passphrase (empty for no passphrase): <Enter>
Enter same passphrase again: <Enter>
Your identification has been saved in
/home/chester/.ssh/id_dsa.
Your public key has been saved in
/home/chester/.ssh/id_dsa.pub.
The key fingerprint is:
3b:c0:2f:63:a5:65:70:b7:4b:f0:2a:c4:18:24:47:69 chester@host1

Jak przedstawiono powyej, trzeba nacisn klawisz Enter, aby zaakceptowa


nazw pliku, w ktrym bdzie przechowywany klucz. Nastpnie dwukrotne
nacinicie klawisza Enter spowoduje akceptacj pustego hasa. (Jeeli haso
zostanie podane, uytkownik bdzie o nie pytany, a wic nastpi wykluczenie
moliwoci logowania bez uycia hasa).

Rozdzia 6. Bezpieczestwo systemu Linux

259

3. Uytkownik musi zabezpieczy prawa dostpu do kluczy uwierzytelniajcych


poprzez ograniczenie uprawnie do katalogu domowego, katalogu .ssh oraz
plikw uwierzytelniajcych, jak przedstawiono poniej:
$ chmod go-w $HOME
$ chmod 700 $HOME/.ssh
$ chmod go-rwx $HOME/.ssh/*

4. Wydaj ponisze polecenie, aby skopiowa klucz do zdalnego serwera (nazw


chester naley zastpi nazw zdalnego uytkownika, a host2 nazw zdalnego
komputera):
$ cd ~/.ssh
$ scp id_dsa.pub chester@host2:/tmp
chester@host2's password: *******

5. Wydaj ponisze polecenie, aby doda klucz ssh do kluczy uwierzytelniajcych


zdalnego uytkownika (kod powinien znajdowa si jednym wierszu):
$ ssh chester@host2 'cat /tmp/id_dsa.pub >>
/home/chester/.ssh/authorized_keys2'

W poprzednich dwch krokach pojawio si pytanie o haso. To zupenie normalne.

Aby demon sshd zaakceptowa utworzony przez uytkownika plik authorized_keys2,


katalog domowy oraz ten plik musz posiada bezpieczne uprawnienia. W celu
zabezpieczenia tego pliku oraz katalogu naley wyda polecenia:
$ ssh chester@host2 chmod go-w $HOME $HOME/.ssh
$ ssh chester@host2 chmod 600 $HOME/.ssh/authorized_keys2

6. Wydaj nastpujce polecenie, ktre usuwa klucz z katalogu tymczasowego:


$ ssh chester@host2 rm /tmp/id_dsa.pub

W 6. kroku nie powinno pa pytanie o haso.

Bardzo wane jest, aby pamita, e po przeprowadzeniu omwionej powyej procedury


wszystko bdzie funkcjonowao niezalenie od zmian adresu IP komputera lokalnego.
Adres IP nie ma nic wsplnego z tym rodzajem uwierzytelniania.

Zabezpieczanie serwerw Linux


Udostpnienie w publicznej sieci systemu Linux w charakterze serwera stanowi nowe
wyzwanie zwizane z bezpieczestwem. Zamiast odrzucania wszystkich da z zewntrz
od komputera oczekuje si odpowiedzi na dania dla udostpnianych usug (na przykad WWW, FTP lub poczty elektronicznej) poprzez dostarczenie informacji lub uruchomienie skryptw na danych.
Na temat zabezpieczania serwerw napisano cae ksiki. Wiele firm, ktrych funkcjonowanie zaley od usug internetowych, zatrudnia w penym wymiarze godzin administratorw, ktrzy czuwaj nad bezpieczestwem serwerw. Z tego powodu niniejszy

260

Cz II Linux w praktyce

podrozdzia naley traktowa jako oglny opis niektrych rodzajw atakw oraz niektrych narzdzi sucych do zabezpieczania serwerw Linuksa.

Nadzr dostpu do usug za pomoc oson TCP


Cakowite wyczenie nieuywanej usugi jest dobrym rozwizaniem, ale ktre usugi bd
faktycznie potrzebne? W jaki sposb mona selektywnie nadawa i odbiera prawa dostpu
do tych usug? W przypadku systemw Linux, ktre zawieraj obsug osony TCP, to
pliki /etc/hosts.allow oraz /etc/hosts.deny okrelaj, kiedy dane poczenie zostaje dopuszczone do danej usugi lub odrzucone, na przykad rlogin, rsh, telnet, finger i talk.
Wikszo systemw Linux implementujcych osony TCP wprowadza je dla zestawu
usug, ktre s monitorowane przez pojedynczy proces, nazywany Internet Super Server.
W dystrybucjach Fedora i RHEL wymieniony serwer to demon xinetd, podczas gdy
w innych systemach (takich jak Debian) uywany jest demon inetd. Kiedy nastpuje danie usugi korzystajcej z oson TCP, sprawdzane s pliki hosts.allow oraz hosts.deny
w celu wyszukania wpisu odpowiadajcemu adresowi IP komputera nawizujcego poczenie. Sprawdzenie nastpuje podczas prby poczenia:

Jeli dany adres znajduje si w pliku hosts.allow, poczenie zostaje zaakceptowane,


a plik hosts.deny nie jest sprawdzany.

Jeeli adres znajduje si w pliku hosts.deny, poczenie jest odrzucane.

Jeeli adres nie znajduje si w adnym pliku, poczenie zostaje zaakceptowane.

Naley pamita, e kolejno sprawdzania jest wana. Nie mona na przykad zabroni
dostpu komputerowi w pliku hosts.deny, jeeli dany komputer uzyskuje dostp za pomoc
pliku hosts.allow.
Umieszczanie kadego adresu, ktry moe prbowa nawiza poczenie z serwerem,
nie jest niezbdne (a nawet jest niemoliwe). Pliki hosts.allow i hosts.deny umoliwiaj
nadzr nad pewnym zestawem adresw. Do okrelenia wszystkich moliwych adresw
stosuje si sowo kluczowe ALL. Uytkownik moe take ograniczy wpisy w tych plikach,
aby miay zastosowanie tylko do okrelonych usug sieciowych. Przykad typowych plikw
hosts.allow oraz hosts.deny znajduje si poniej. Oto przykadowy plik /etc/hosts.allow:
#
# hosts.allow This file describes the names of the hosts are
#
allowed to use the local INET services, as decided
#
by the '/usr/sbin/tcpd' server.
#
cups-lpd: 199.170.177.
in.telnetd: 199.170.177., .linuxtoys.net
vsftpd: ALL

Oto przykadowy plik /etc/hosts.deny:


#
# hosts.deny This file describes names of the hosts which are
#
*not* allowed to use the local INET services, as

Rozdzia 6. Bezpieczestwo systemu Linux


#
#

261

decided by the '/usr/sbin/tcpd' server.

ALL: ALL

Powyszy przykad przedstawia raczej restrykcyjn konfiguracj. Dopuszczone s poczenia z okrelonych wzw do usug cups-lpd oraz telnet, natomiast wszystkie pozostae zostaj odrzucone. Konfiguracja pozwala rwnie wszystkim wzom na dostp do
FTP (vsftp). Przeanalizujemy wic szczegowo przedstawione pliki.
Jak zwykle wiersze rozpoczynajce si znakiem # s komentarzem, a wic w trakcie przetwarzania pliku zostaj zignorowane przez xinetd lub inetd. Kady wiersz niebdcy
komentarzem skada si z rozdzielonej przecinkami listy demonw, znaku dwukropka (:),
a nastpnie rozdzielonej przecinkami listy adresw klientw do sprawdzenia. W tym
kontekcie klientem jest kady komputer, ktry prbuje uzyska dostp do usugi sieciowej serwera.
Wpis klienta moe by liczbowym adresem IP (na przykad 199.170.177.25) lub nazw
komputera (na przykad jukebox.linuxtoys.net), ale najczciej jest kombinacj wraz ze
znakiem wieloznacznym, okrelajc pewien zakres adresw. Wpis klienta moe przyj
cztery rne formy, ktre podrcznik pliku hosts.allow opisuje w nastpujcy sposb:

Cig znakowy rozpoczynajcy si od znaku kropki (.). Nazwa wza zostanie


dopasowana, jeeli ostatnie komponenty jej nazwy odpowiadaj okrelonemu
wzorcowi. Na przykad wzorzec .tue.nl zostanie dopasowany do nazwy wza
wzv.win.tue.nl.

Cig znakowy koczcy si znakiem kropki (.). Adres wza zostanie dopasowany,
jeeli jego pierwsze pola liczbowe bd odpowiaday danemu cigu znakw.
Na przykad wzorzec 131.155. bdzie dopasowany do adresu (prawie) kadego
wza sieci uniwersytetu w Eindhoven (131.155.x.x).

Cig znakowy rozpoczynajcy si symbolem at (@) jest traktowany jako nazwa


grupy sieciowej (ang. netgroup) NIS. Nazwa wza zostanie dopasowana, jeeli
jest elementem wskazanej grupy sieciowej. Dopasowania grup sieciowych nie s
obsugiwane dla nazw procesw demonw lub nazw uytkownikw klientw.

Wyraenie w formie n.n.n.n/m.m.m.m jest interpretowane jako para net/maska.


Adres wza zostanie dopasowany, jeeli net jest rwne bitowemu and adresu
oraz masce. Na przykad wzorzec 131.155.72.0/255.255.254.0 spowoduje
dopasowanie kadego adresu w zakresie 131.155.72.0 do 131.155.73.255.

Przykadowy plik hosts.allow zawiera dwa rodzaje specyfikacji klienta. Wpis 199.170.177.
bdzie prbowa dopasowa dowolny adres IP, ktry rozpoczyna si podanym cigiem
znakowym, na przykad 199.170.177.25. Z kolei wpis .linuxtoys.net sprbuje dopasowa nazwy wzw, takie jak jukebox.linuxtoys.net lub picframe.linuxtoys.net.
Przeanalizujmy zdarzenia, ktre bd miay miejsce, gdy wze o nazwie jukebox.linuxtoys.net (o adresie IP 199.170.179.18) sprbuje nawiza poczenie z serwerem za
pomoc protokou telnet. W omawianym przypadku dystrybucja Linuksa to Fedora, ktra
uywa demona xinetd do nasuchu da usug powizanych z osonami TCP.

262

Cz II Linux w praktyce

1. Demon xinetd otrzymuje danie nawizania poczenia.


2. Demon xinetd rozpoczyna porwnywanie adresu oraz nazwy
jukebox.linuxtoys.net z reguami w pliku /etc/hosts.allow. Przetwarzanie pliku
rozpoczyna si od pocztku i posuwa si ku kocowi a do znalezienia dopasowania
wzorca. Zarwno demon (program obsugujcy usugi sieciowe w systemie Fedora),
jak i adres IP oraz nazwa klienta nawizujcego poczenie musz zosta dopasowane
do informacji znajdujcych si w pliku hosts.allow. W omawianym przykadzie
druga regua powoduje dopasowanie dania:
in.telnetd: 199.170.177., .linuxtoys.net

3. Wze jukebox nie znajduje si w podzbiorze 199.170.177, ale w domenie


linuxtoys.net. Po odnalezieniu dopasowania demon xinetd przerywa
przeszukiwanie pliku.
Co si jednak stanie, jeeli jukebox sprbuje nawiza poczenie za pomoc protokou
CUPS-lpd? W takim przypadku nie zostanie dopasowana adna regua z pliku hosts.allow.
Jedyny wiersz odnoszcy si do demona lpd nie dotyczy ani podsieci 199.170.179, ani
domeny linuxtoys.net. Demon xinetd rozpocznie wic sprawdzanie pliku hosts.deny.
Wpis ALL: ALL powoduje dopasowanie wszystkiego, dlatego te demon tcpd odrzuci
prb nawizania poczenia.
W pliku hosts.allow zostaa rwnie uyta flaga ALL. W tym przypadku demon xinetd
zosta poinformowany, aby zezwala na absolutnie wszystkie poczenia z usug FTP.
Takie rozwizanie jest odpowiednie dla uruchomionego anonimowego serwera FTP, do
ktrego kady uytkownik internetu moe uzyska dostp. Jeeli uytkownik nie ma
zamiaru uruchamiania anonimowego serwera FTP, prawdopodobnie nie naley uywa
flagi ALL.
Dobr i praktyczn regu jest utrzymywanie jak najbardziej restrykcyjnych regu w plikach hosts.allow oraz hosts.deny, a nastpnie udostpnianie jedynie tych usug, ktre s
absolutnie niezbdne. Ponadto dostp powinny otrzyma tylko te systemy, ktrego go
potrzebuj. Uywanie flagi ALL w celu nadania dostpu do okrelonej usugi moe by
znacznie atwiejsze ni podawanie dugiej listy podsieci lub domen, ale warto powici
kilka minut na odpowiednie ustawienie regu bezpieczestwa, zamiast potem spdza wiele
godzin na naprawianiu systemu po wamaniu.
W systemach Linux, ktre uywaj usugi xinetd, mona jeszcze bardziej ograniczy
dostp do usug za pomoc rnych opcji w pliku /etc/xinetd.conf. Moliwe jest nawet
ograniczenie dostpu do usug w okrelonych godzinach. Wicej informacji na temat
tych opcji znajduje si podrczniku demona xinetd (wywietlany po wydaniu z poziomu
powoki polecenia man xinetd).

Zrozumienie techniki atakw


Atak na system komputerowy przybiera rne formy, w zalenoci od celu i zasobw
atakujcego. Niektrzy atakujcy chc by jak najbardziej destrukcyjni, podczas gdy inni
chc przenikn do komputera, a nastpnie wykorzysta jego zasoby do wasnych, czsto
nikczemnych celw. Z kolei celem jeszcze innych mog by dane finansowe lub szanta. Poniej przedstawiono trzy gwne kategorie atakw:

Rozdzia 6. Bezpieczestwo systemu Linux

263

Odmowa usugi (DOS, ang. Denial of Service) najatwiejszym atakiem


do przeprowadzenia jest DOS, czyli odmowa usugi. Podstawowym celem tego
rodzaju ataku jest zakcenie dziaalnoci zdalnej witryny poprzez przecienie
jej nieistotnymi danymi. Ataki typu DOS mog po prostu polega na wysyaniu
w cigu sekundy tysicy da dostpu do strony. Taki rodzaj ataku jest bardzo
atwy do przeprowadzenia, ale rwnie atwo mona si przed nim chroni.
Po ustaleniu rda ataku spraw powinien rozwiza zwyky telefon do ISP
atakujcego.

Rozproszony atak DOS (ang. Distributed Denial of Service) bardziej


zaawansowane ataki DOS s nazywane rozproszonymi atakami typu DOS.
Ataki typu DDOS s trudniejsze do przeprowadzenia i niemal niemoliwe
do zatrzymania. W tej formie ataku atakujcy przejmuje kontrol nad setkami
lub nawet tysicami sabo zabezpieczonych komputerw. Nastpnie atakujcy
wykorzystuje je do wysyania nieistotnych danych do pojedynczego wza
internetowego. Wynikiem takiego dziaania jest to, e sia pojedynczego atakujcego
zostaje zwielokrotniona tysice razy. Zamiast ataku tylko z jednego kierunku,
jak ma to miejsce w przypadku atakw DOS, atak nachodzi z tysicy miejsc.
Najlepsz ochron przed atakiem DDOS jest kontakt z wasnym ISP i prba
dowiedzenia si, czy ISP moe filtrowa ruch na swoich routerach brzegowych.
Wiele osb, ktre nie przywizuj wikszej wagi do kwestii bezpieczestwa,
uywa wymwki nie mam niczego na komputerze, co mogoby zainteresowa
atakujcego. Problem jednak w tym, e atakujcy ma duo powodw,
aby wykorzysta komputer takiego uytkownika. Atakujcy moe zmieni
taki komputer w agenta, ktry pniej bdzie uyty podczas ataku DDOS.
Niejednokrotnie zdarzao si ju, e organy cigania pojawiay si u uytkownika
tak przejtego komputera i zadaway pytania dotyczce zagroe przez niego
powodowanych. Poprzez ignorowanie kwestii bezpieczestwa uytkownicy
naraaj si na du odpowiedzialno.

Atak intruza zdalne wykorzystanie zasobw atakowanego komputera. Atakujcy


musi wczeniej znale luk, ktr moe wykorzysta. Bez informacji, takich jak
hasa bd zaszyfrowane klucze, atakujcy musi skanowa atakowany komputer
i przekona si, jakie usugi oferuje. Istnieje pewne prawdopodobiestwo, e jedna
z dostpnych usug jest sabo zabezpieczona i atakujcy moe wykorzysta jej znane
saboci do wasnych celw.
Za najlepsze narzdzie do skanowania wza pod ktem dostpnych usug uwaa si
nmap (warto zwrci uwag, e narzdzia nmap mona uy zarwno w dobrych,
jak i zych celach). Kiedy atakujcy zdobdzie list usug dziaajcych na komputerze
ofiary, musi znale sposb wykorzystania jednej z nich do uzyskania uprawnie
dostpu do systemu. Zwykle ten etap jest przeprowadzany za pomoc programu
nazywanego exploit.

Podczas gdy ataki typu DOS s destrukcyjne, ataki intruzw przynosz jeszcze wicej
szkd. Powody tego s rne, ale wyniki zawsze takie same. Nieproszony go wprowadza si do komputera i uywa go w sposb, nad ktrym waciciel nie ma adnej
kontroli.

264

Cz II Linux w praktyce

Ochrona przed atakami typu DOS


Jak wyjaniono wczeniej, ataki typu DOS prbuj zama komputer lub przynajmniej
obniy jego wydajno do zupenie niewystarczajcego poziomu. Istnieje kilka rnych sposobw uycia tego typu atakw. Czsto spotykanym dziaaniem jest prba
przecienia zasobw systemu, takich jak ilo wolnej przestrzeni, lub poczenia z internetem. W podrozdziale zostan zaprezentowane niektre czsto spotykane rodzaje atakw
oraz sposoby obrony przed nimi.

Mailbombing
Termin mailbombing oznacza masowe wysyanie wiadomoci e-mail do okrelonego uytkownika lub systemu a do zapenienia wolnej przestrzeni. Istnieje kilka sposobw obrony
przed takim atakiem. Jednym z nich jest uycie narzdzia filtrujcego poczt elektroniczn o nazwie Procmail. Jeli uywanym agentem transportu poczty jest sendmail,
mona skonfigurowa demona sendmail.
Blokowanie poczty za pomoc Procmail
Narzdzie filtrowania poczty elektronicznej Procmail jest instalowane domylnie w systemach Fedora, RHEL oraz kilku innych dystrybucjach. Procmail jest cile zintegrowany
z demonem sendmail, dlatego te moe by uywany do selektywnego blokowania lub
filtrowania okrelonego rodzaju poczty elektronicznej. Wicej informacji na temat narzdzia Procmail znajduje si na witrynie http://www.procmail.org.
W celu wczenia narzdzia Procmail dla danego konta uytkownika naley w jego katalogu domowym utworzy plik .procmailrc. Ten plik powinien mie uprawnienia 0600
(czyli do odczytu tylko przez uytkownika i nikogo wicej). Nastpnie naley wpisa
podane poniej wiersze, zastpujc sowo evilmailer rzeczywistym adresem e-mail, za
ktrym kryje si atakujcy:
# Usunicie poczty elektronicznej od evilmailer.
:0
* ^From.*evilmailer
/dev/null

Regua narzdzia Procmail powoduje wyszukanie wiersza From na pocztku kadej wiadomoci e-mail i sprawdzenie, czy zawiera cig tekstowy evilmailer. Jeeli ten cig tekstowy zostanie znaleziony, wiadomo jest wysyana do urzdzenia /dev/null (czyli narzdzie efektywnie pozbywa si jej).
Blokowanie poczty za pomoc sendmail
Narzdzie Procmail sprawuje si cakiem dobrze, gdy tylko jeden uytkownik jest atakowany poprzez mailbombing. Jeli jednak ofiar tego typu ataku pada wiksza liczba uytkownikw, prawdopodobnie naley skonfigurowa demona sendmail tak, aby blokowa
ca poczt pochodzc od atakujcego. Wspomniana konfiguracja polega na umieszczeniu adresu atakujcego lub nazwy systemu w pliku access znajdujcym si w katalogu
/etc/mail.

Rozdzia 6. Bezpieczestwo systemu Linux

265

Kady wiersz pliku access skada si z adresu e-mail, nazwy wza, domeny lub adresu
IP, a nastpnie znaku tabulatora, po ktrym znajduje si sowo kluczowe okrelajce
podejmowane dziaanie, gdy osoba wskazana w wierszu bdzie przysyaa wiadomo.
Moliwymi do zastosowania sowami kluczowymi s OK, RELAY, REJECT, DISCARD oraz
ERROR. Uycie sowa kluczowego REJECT spowoduje odrzucenie wiadomoci od nadawcy
i wygenerowanie komunikatu bdu. Sowo kluczowe DISCARD spowoduje ciche pozbycie
si wiadomoci bez generowania dla nadawcy komunikatu bdu. Uytkownik moe nawet
zwrci wasny komunikat bdu, wykorzystujc sowo kluczowe ERROR.
Plik /etc/mail/access moe przedstawia si nastpujco:
# Check the /usr/share/doc/sendmail/README.cf file for a description
# of the format of this file. (search for access_db in that file)
# The /usr/share/doc/sendmail/README.cf is part of the sendmail-doc
# package.
#
# by default we allow relaying from localhost...
localhost.localdomain
RELAY
localhost
RELAY
127.0.0.1
RELAY
#
# Senders we want to Block
#
evilmailer@yahoo.com
REJECT
stimpy.glaci.com
REJECT
cyberpromo.com
DISCARD
199.170.176.99
ERROR:"550 Die Spammer Scum!"
199.170.177
ERROR:"550 Email Refused"

Jak w przypadku wikszoci plikw konfiguracyjnych systemu Linux, wiersze rozpoczynajce si od znaku # s komentarzem. W zaprezentowanym pliku lista zablokowanych
spamerw znajduje si na kocu. Warto zwrci uwag, e blokowane moe odbywa si
poprzez podanie penego adresu e-mail, penej nazwy wza, samej domeny, adresu IP
lub podsieci.
W celu zablokowania okrelonego adresu e-mail lub wza, z ktrego pochodzi atak, naley
zalogowa si do systemu jako uytkownik root, przeprowadzi edycj pliku /etc/mail/
access i doda wiersz wraz ze sowem kluczowym DISCARD i adresem atakujcego.
Po zapisaniu pliku i opuszczeniu edytora plik musi zosta skonwertowany do postaci zindeksowanej znakami hash bazy danych o nazwie access.db. Tak utworzona baza danych
zostanie uaktualniona w trakcie kolejnego uruchomienia sendmail. W dystrybucji Fedora
oraz innych systemach Red Hat natychmiastowa konwersja bazy danych nastpuje po
wydaniu polece:
# cd /etc/mail
# make

Sendmail powinien odrzuca wiadomoci e-mail pochodzce z dodanych adresw.

266

Cz II Linux w praktyce

Przekazywanie spamu
Usuga poczty elektronicznej moe zosta naduyta, gdy system bdzie wykorzystany
do przekazywania spamu. Pojcie spam oznacza niechcian wiadomo e-mail, a samo
zjawisko przesyania spamu staje si coraz bardzie dokuczliwe. Termin przekazywanie
odnosi si do funkcji serwera poczty elektronicznej, ktra wysya poczt otrzyman z innego
serwera. (W normalnych warunkach tylko uytkownicy z prawidowymi kontami e-mail
na serwerze mog uywa serwera poczty do przekazywania wiadomoci. Serwer poczty
skonfigurowany jako otwarty przekanik pozwoli kademu za jego pomoc na przekazywanie wiadomoci e-mail, dlatego jest to bardzo za praktyka).
Bardzo czsto spamerzy wysyaj swoje irytujce wiadomoci ze zwykego konta typu
dial-up. Potrzebuj tylko pewnego rodzaju serwera poczty o duej pojemnoci do zaakceptowania i buforowania takiej liczby wiadomoci. Spamerzy dostarczaj spam do serwera w postaci jednej olbrzymiej serii, a nastpnie wylogowuj si, pozwalajc serwerowi
na wykonanie caej pracy dostarczenia tych wiadomoci wielu ofiarom.
Oczywicie, aden z odpowiedzialnych ISP nie uczestniczy w takim procederze, tak wic
spamerzy musz przejmowa serwery innych ISP, aby wykona t brudn robot. Dopuszczenie do sytuacji, w ktrej serwer poczty zostanie przejty przez spamera i wykorzystany
do wysania spamu, moe mie druzgoccy efekt na system oraz reputacj. Na szczcie
otwarte przekazywanie poczty jest domylnie wyczone w systemach Fedora oraz Red
Hat Enterprise Linux. Otwarte przekazywanie poczty jest wic jedn z kwestii bezpieczestwa, o ktr nie naley si martwi.
Uytkownik moe pozwoli okrelonym wzom lub domenom na przekazywanie poczty
poprzez system po umieszczeniu tych nadawcw w pliku /etc/mail/access wraz ze sowem
kluczowym RELAY. Domylnie przekazywanie poczty jest moliwe tylko z poziomu komputera lokalnego.
Jednym z pakietw, ktrego uywanie do filtrowania spamu na serwerze pocztowym
warto rozway, jest SpamAssassin. Analizuje on tekst przychodzcej wiadomoci
i prbuje filtrowa te wiadomoci, ktre zostay okrelone jako spam. Dokadniejszy
opis pakietu SpamAssassin znajdzie si w rozdziale 25.

Atak typu smurf


Termin smurfing odnosi si do okrelonego rodzaju ataku DOS, ktrego celem jest zalanie
poczenia internetowego pakietami. Obrona przed takim atakiem moe by bardzo trudna,
poniewa nieatwo jest wyledzi atakujcego. Poniej objaniono, w jaki sposb przebiega smurfing.
Atakujcy korzysta z protokou ICMP, czyli usugi, ktrej celem jest sprawdzenie prdkoci i dostpnoci pocze sieciowych. Za pomoc polecenia ping uytkownik moe
wysa pakiet sieciowy ze swojego komputera do innego komputera w internecie. Zdalny
komputer rozpozna pakiet jako danie ICMP i odpowie rwnie za pomoc pakietu.
Nastpnie komputer nadawcy wywietli komunikat wskazujcy, e zdalny system funkcjonuje, oraz poinformuje, ile czasu zabraa mu odpowied.

Rozdzia 6. Bezpieczestwo systemu Linux

267

Atak typu smurfing wykorzystuje znieksztacone danie ICMP, tak aby ukry w sieci
komputer nadawcy. Jest to moliwe poprzez wysyanie da ping od niewiadomych
tego uytkownikw sieci, powodujc tym samym, e odpowied jest duplikowana dziesitki
lub nawet setki razy. Adres docelowy polecenia ping jest ustalony jako caa podsie w obrbie pojedynczego wza. Adres zwrotny jest faszowany tak, aby wskazywa adres niewiadomego uytkownika, a nie faktycznego nadawcy. Kiedy pakiet ICMP przybywa od niewiadomego porednika sieciowego, wtedy kady wze podsieci odpowiada na danie
ping! Co wicej, odpowied jest kierowana do niewiadomego uytkownika, a nie do atakujcego. Jeeli sie niewiadomych porednikw skada si z setek komputerw, wwczas poczenie internetowe ofiary moe by szybko zapchane.
Najlepsz reakcj w przypadku tego rodzaju ataku jest kontakt z organizacj uyt jako
niewiadomy porednik i poinformowanie jej o naduyciu. Zazwyczaj w celu zatrzymania atakw porednik musi tylko przekonfigurowa router. Jeeli organizacja wykorzystana w charakterze przekanika nie wykazuje woli wsppracy, minimalizacja efektu ataku
jest moliwa poprzez zablokowanie protokou ICMP w routerze. W ten sposb duy ruch
sieciowy bdzie trzymany z dala od sieci wewntrznej. Jeeli uda si przekona ISP do
zablokowania pakietw ICMP skierowanych do zaatakowanej sieci, moe to jeszcze bardziej pomc. (Warto w tym miejscu zwrci uwag na toczc si debat, czy blokowanie
pakietw ICMP jest dobrym, czy zym pomysem, poniewa usugi ICMP mog by
uyteczne w wielu zadaniach administracyjnych).

Ochrona przed rozproszonymi atakami typu DOS


Ataki typu DDOS s znacznie trudniejsze do zainicjowania i wyjtkowo trudne do zatrzymania. Atak DDOS rozpoczyna si od penetracji setek lub nawet tysicy sabo zabezpieczonych komputerw. Nastpnie takie komputery s uywane w ataku na pojedynczy wze
wybrany na podstawie zachcianki atakujcego.
Wraz z nadejciem ery modemw DSL oraz kablowych miliony uytkownikw cieszy si
dostpem do internetu, niemal bez ogranicze w prdkoci. W popiechu, aby jak najszybciej rozpocz korzystanie z zasobw internetu, wielu takich uytkownikw zaniedbuje nawet podstawowe zasady bezpieczestwa. Poniewa wikszo tych osb uywa
systemw operacyjnych Microsoft Windows, czsto bardzo szybko dochodzi do zaraenia
ich robakiem bd wirusem komputerowym. Kiedy komputer uytkownika zostanie zaatakowany, bardzo czsto robak lub wirus instaluje program powodujcy ciche poczenie
z autorem i poinformowanie go, e jest gotowy na spenianie rozkazw.
Na yczenie pana zainfekowane komputery mog by uyte w celu wysania strumienia
nieistotnych danych do wybranego wza. Wsplnie z tysicami innych zainfekowanych
komputerw script kiddie osiga moc pozwalajc rzuci na kolana niemal kad witryn
w internecie.
Wykrycie ataku DDOS jest podobne do odkrycia ataku DOS i wie si z wystpieniem
jednego lub wikszej liczby nastpujcych sygnaw:

nieprzerwana, nasycona transmisja danych;

brak zmniejszenia si iloci danych nawet w okresie poza szczytem;

268

Cz II Linux w praktyce

setki lub nawet tysice jednoczesnych pocze sieciowych;

wyjtkowo saba wydajno systemu.

W celu okrelenia, czy transmisja danych zostaa nasycona, naley wyda polecenie ping
do zewntrznego wza. Znacznie wiksze ni zwykle opnienie wskazuje na martw
bramk dostpu. Zwyke opnienie polecenia ping (a wic czas wymagany przez polecenie ping na otrzymanie odpowiedzi) przedstawia si podobnie do zaprezentowanego
poniej:
# ping www.example.com
PING www.example.com (192.0.34.166) from 10.0.0.11: 56(84) bytes of data
64 bytes from 192.0.34.166: icmp_seq=1 ttl=49 time=40.1 ms
64 bytes from 192.0.34.166: icmp_seq=2 ttl=49 time=42.5 ms
64 bytes from 192.0.34.166: icmp_seq=3 ttl=49 time=39.5 ms
64 bytes from 192.0.34.166: icmp_seq=4 ttl=49 time=38.4 ms
64 bytes from 192.0.34.166: icmp_seq=5 ttl=49 time=39.0 ms
--- www.example.com ping statistics --5 packets transmitted, 5 received, 0% loss, time 4035ms
rtt min/avg/max/mdev = 38.472/39.971/42.584/1.432 ms

W powyszym przykadzie przecitny czas potrzebny poleceniu ping na wysanie pakietu


i uzyskanie odpowiedzi zwrotnej wynosi okoo 39 tysicznych sekundy.
Wyniki polecenia ping do przecionego serwera bd przedstawiay si podobnie do
poniszych:
# ping www.example.com
PING www.example.com (192.0.34.166): from 10.0.0.11: 56(84)bytes of data
64 bytes from 192.0.34.166: icmp_seq=1 ttl=62 time=1252 ms
64 bytes from 192.0.34.166: icmp_seq=2 ttl=62 time=1218 ms
64 bytes from 192.0.34.166: icmp_seq=3 ttl=62 time=1290 ms
64 bytes from 192.0.34.166: icmp_seq=4 ttl=62 time=1288 ms
64 bytes from 192.0.34.166: icmp_seq=5 ttl=62 time=1241 ms
--- www.example.com ping statistics --5 packets transmitted, 5 received, 0% loss, time 5032ms
rtt min/avg/max/mdev = 1218.059/1258.384/1290.861/28.000 ms

W powyszym przykadzie czas wymagany przez pakiet ping wynosi okoo 1,3 sekundy.
W porwnaniu z wczeniejszym przykadem opnienie wzroso o 31 razy! To wyrany
sygna, e naley sprawdzi wykorzystanie transmisji danych.
W celu dokadniejszego sprawdzenia przepustowoci danych mona uy narzdzia takiego
jak ttcp. Sprawdzenie poczenia za pomoc narzdzia ttcp wymaga zainstalowania pakietu
ttcp na komputerach zarwno wewntrz, jak i na zewntrz sieci. (Pakiet ttcp jest dostpny
w dystrybucji Fedora Core oraz innych systemach Linux). Jeeli uytkownik nie jest pewny,
czy pakiet ttcp zosta zainstalowany, wystarczy z poziomu powoki wyda polecenie ttcp.
Polecenie ttcp powinno wywietli dane wyjciowe podobne do przedstawionych poniej:
# ttcp
Usage: ttcp -t [-options] host [ < in ]
ttcp -r [-options > out]
Common options:

Rozdzia 6. Bezpieczestwo systemu Linux

269

-l ##
length of bufs read from or written to network (default 8192)
-u
use UDP instead of TCP
-p ##
port number to send to or listen at (default 5001)
-s
-t: source a pattern to network
-r: sink (discard) all data from network
-A
align the start of buffers to this modulus (default 16384)
-O
start buffers at this offset from the modulus (default 0)
-v
verbose: print more statistics
-d
set SO_DEBUG socket option
-b ##
set socket buffer size (if supported)
-f X
format for rate: k,K = kilo{bit,byte}; m,M = mega; g,G = giga
Options specific to -t:
-n##
number of source bufs written to network (default 2048)
-D
don't buffer TCP writes (sets TCP_NODELAY socket option)
-w ## number of microseconds to wait between each write
Options specific to -r:
-B
for -s, only output full blocks as specified by -l (for TAR)
-T
"touch": access each byte as it's read
-I if Specify the network interface (e.g. eth0) to use

Pierwszym krokiem jest uruchomienie procesu odbioru danych na serwerze:


# ttcp -rs
ttcp-r: buflen=8192, nbuf=2048, align=16384/0, port=5001 tcp
ttcp-r: socket

Flaga -r wskazuje, e komputer serwera bdzie odbiorc danych. Z kolei flaga -s w poczeniu z flag -r informuje ttcp, e wszystkie otrzymane dane maj zosta zignorowane.
Kolejnym krokiem jest posiadanie kogo na zewntrz wraz z czem o podobnej prdkoci
i ustawienie procesu wysyajcego ttcp:
# ttcp -ts server.example.com
ttcp-t: buflen=8192, nbuf=2048, align=16384/0, port=5001 tcp
-> server.example.com
ttcp-t: socket
ttcp-t: connect

Nastpnie naley na kilka minut uruchomi proces, a potem nacisn klawisze Ctrl+C po
stronie wysyajcego, co spowoduje przerwanie testu. Strona odbiorcy w cigu kilku chwil
dokona oblicze oraz wywietli wyniki:
# ttcp -rs
ttcp-r: buflen=8192, nbuf=2048, align=16384/0, port=5001 tcp
ttcp-r: socket
ttcp-r: accept from 64.223.17.21
ttcp-r: 2102496 bytes in 70.02 real seconds = 29.32 KB/sec +++
ttcp-r: 1226 I/O calls, msec/call = 58.49, calls/sec = 17.51
ttcp-r: 0.0user 0.0sys 1:10real 0% 0i+0d 0maxrss 0+2pf 0+0csw

W powyszym przykadzie przecitna przepustowo cza wynosi 29,32 kilobajta na


sekund. W przypadku cza dotknitego atakiem DDOS obliczona liczba moe by jedynie maym uamkiem rzeczywistej przepustowoci cza.
Jeeli cze danych wskazuje na przecienie, kolejnym krokiem jest prba okrelenia rda pocze. Bardzo efektywnym sposobem realizacji tego zadania jest uycie polecenia

270

Cz II Linux w praktyce
netstat, ktre jest czci podstawowej instalacji dystrybucji Fedora. Informacje dotyczce
poczenia zostan wywietlone po wydaniu polecenia:
# netstat -tupn

W tabeli 6.3 zostay opisane wszystkie parametry uyte w poleceniu netstat.


Tabela 6.3. Parametry polecenia netstat
Parametr

Opis

-t, --tcp

Pokazuje gniazdo pocze TCP.

-u, --udp

Pokazuje gniazdo pocze UDP.

-p, --program

Pokazuje PID oraz nazw programu, do ktrego naley kade gniazdo.

-n, --numeric

Pokazuje adres w postaci liczbowej zamiast prby okrelenia symbolicznego wza, portu
bd nazw uytkownikw.

Poniej przedstawiono przykadowe dane wyjciowe polecenia netstat:


Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address
tcp
0
0 65.213.7.96:22
13.29.132.19:12545
tcp
0 224 65.213.7.96:22
13.29.210.13:29250
tcp
0
0 65.213.7.96:6667 13.29.194.190:33452
tcp
0
0 65.213.7.96:6667 216.39.144.152:42709
tcp
0
0 65.213.7.96:42352 67.113.1.99:53
tcp
0
0 65.213.7.96:42354 83.152.6.9:113
tcp
0
0 65.213.7.96:42351 83.152.6.9:113
tcp
0
0 127.0.0.1:42355 127.0.0.1:783
tcp
0
0 127.0.0.1:783
127.0.0.1:42353
tcp
0
0 65.213.7.96:42348 19.15.11.1:25

State
PID/Program name
ESTABLISHED 32376/sshd
ESTABLISHED 13858/sshd
ESTABLISHED 1870/ircd
ESTABLISHED 1870/ircd
TIME_WAIT TIME_WAIT TIME_WAIT TIME_WAIT TIME_WAIT TIME_WAIT -

Dane wyjciowe zostay zorganizowane w kolumny zdefiniowane nastpujco:


Proto

protok uywany przez gniazdo.

liczba bajtw, ktre nie zostay jeszcze skopiowane przez program


uytkownika doczony do danego gniazda.

Recv-Q
Send-Q

liczba bajtw niezatwierdzonych przez wze.

Local Address

adres oraz numer portu lokalnego zakoczenia danego gniazda.

Foreign Address

adres i numer portu zdalnej kocwki danego gniazda.

biecy stan gniazda. Lista stanw gniazda zostaa przedstawiona


w tabeli 6.4.

State

identyfikator procesu oraz nazwa programu procesu, ktry


jest wacicielem danego gniazda.

PID/Program name

Podczas ataku typu DOS zdalny adres jest z reguy taki sam dla kadego poczenia. W takim przypadku naley po prostu wyszuka waciciela adresu IP na stronie http://www.
arin.net/whois/ i powiadomi swojego ISP.

Rozdzia 6. Bezpieczestwo systemu Linux

271

Tabela 6.4. Stany gniazda


Stan

Opis

ESTABLISHED

Gniazdo ustanowio poczenie.

SYN_SENT

Gniazdo aktywnie prbuje nawiza poczenie.

SYN_RECV

Z sieci otrzymano danie poczenia.

FIN_WAIT1

Gniazdo zamknite i wyczone.

FIN_WAIT2

Gniazdo oczekuje na zdalne zamknicie.

TIME_WAIT

Po zamkniciu gniazdo nadal oczekuje na obsug pakietw wci znajdujcych si w sieci.

CLOSED

Gniazdo nie jest uywane.

CLOSE_WAIT

Zdalna kocwka gniazda zostaa zamknita, oczekiwanie na zamknicie gniazda.

LAST_ACK

Zdalna kocwka gniazda zostaa zamknita, gniazdo zostao zamknite, oczekiwanie


na zatwierdzenie.

LISTEN

Obie kocwki poczenia s zamknite, ale jeszcze nie wszystkie dane zostay wysane.

CLOSING

Obie strony poczenia zostaj zamknite, ale nie wszystkie dane zdyy zosta wysane.

UNKNOWN

Stan gniazda jest nieznany.

Podczas ataku typu DDOS zdalny adres bdzie prawdopodobnie inny dla kadego poczenia. W takim przypadku wyledzenie wszystkich atakujcych staje si niemoliwe,
poniewa s ich tysice. Najlepszym sposobem obrony pozostaje wwczas skontaktowanie
si z ISP i sprawdzenie, czy moe on ograniczy ruch na swoich routerach brzegowych.

Ochrona przed atakami intruzw


Crackerzy posiadaj szerok gam narzdzi i technik, ktre s wykorzystywane podczas
wamywania si do systemu. Ataki intruzw skupiaj si na wykorzystaniu luk bezpieczestwa, co umoliwia crackerom uzyskanie kontroli nad systemem (i potencjalnie dokonanie wikszych zniszcze, ni z zewntrz).
Na szczcie istnieje wiele narzdzi i technik pomagajcych w obronie przed atakami
intruzw. W podrozdziale zostan przedstawione najczciej stosowane metody wama
oraz narzdzia suce do ochrony systemu. Mimo e przykady przedstawiaj funkcje
stosowane w Fedorze oraz innych systemach Red Hat, to omwione narzdzia i techniki
maj zastosowanie dla dowolnego systemu Linux bd bazujcego na Uniksie.

Szacowanie dostpu do usug sieciowych


Systemy Linux oraz Unix dostarczaj wiele usug sieciowych, a wraz z nimi crackerzy
uzyskuj due moliwoci ataku. Uytkownik powinien zna te usugi oraz wiedzie, w jaki
sposb ograniczy do nich dostp.
Co oznacza pojcie usuga sieciowa? Zasadniczo usuga sieciowa to kade zadanie wykonywane przez komputer, ktre wymaga wysyania i odbierania informacji przez sie za

272

Cz II Linux w praktyce

pomoc zdefiniowanego zbioru regu. Przekierowywanie poczty elektronicznej jest usug


sieciow, podobnie jak serwowanie stron internetowych. System Linux moe potencjalnie oferowa tysice usug. Wiele z nich zostao wymienionych w pliku /etc/services.
Spjrzmy na przykadowy fragment tego pliku:
# /etc/services:
# service-name port/protocol
chargen
19/tcp
chargen
19/udp
ftp-data
20/tcp
ftp-data
20/udp
# 21 is registered to ftp, but
ftp
21/tcp
ftp
21/udp
ssh
22/tcp
ssh
22/udp
telnet
23/tcp
telnet
23/udp
# 24 - private mail system
smtp
25/tcp

[aliases ...]
ttytst source
ttytst source

[# comment]

also used by fsp


fsp fspd
# SSH Remote Login Protocol
# SSH Remote Login Protocol

mail

Po wierszach zawierajcych komentarze znajduj si trzy kolumny informacji. Lewa kolumna zawiera nazw kadej usugi. W rodkowej kolumnie zosta zdefiniowany numer
portu oraz rodzaj protokou uywany przez dan usug. Z kolei prawa kolumna zawiera
opcjonalny alias bd list aliasw tej usugi.
Jako przykad przeanalizujemy ostatni wiersz w zaprezentowanym powyej fragmencie
pliku. Wiersz opisuje usug SMTP (ang. Simple Mail Transfer Protocol), ktra jest usug
uywan w celu dostarczania poczty elektronicznej przez internet. rodkowa kolumna
zawiera wpis 25/tcp, ktry wskazuje, e protok SMTP uywa portu numer 25 oraz
protokou Transmission Control Protocol (TCP).
Czym dokadnie jest numer portu? To unikalna liczba, ktra zostaa ustalona dla okrelonej usugi sieciowej. Pozwala na prawidowe przekazywanie usug sieciowych do oprogramowania obsugujcego t usug. Na przykad podczas dostarczania wiadomoci e-mail
z komputera nadawcy do komputera odbiorcy zdalny system musi w pierwszej kolejnoci
nawiza poczenie z komputerem odbiorcy. Komputer odbiorcy otrzymuje danie poczenia, analizuje je, stwierdza, e jest przeznaczone dla portu numer 25, a wic wie, e to
poczenie powinno zosta obsuone przez program do obsugi poczty elektronicznej
(ktrym najprawdopodobniej jest sendmail).
Wspomniano wczeniej, e SMTP wymaga protokou TCP. Niektre usugi uywaj natomiast protokou User Datagram Protocol (UDP). Na uytek dyskusji dotyczcej zagadnie
bezpieczestwa uytkownik powinien wiedzie, e protokoy TCP i UDP oferuj rne
sposoby pakowania informacji i wysyania ich przez poczenie sieciowe. Poczenie
TCP zawiera mechanizm wykrywania bdw i ponownego przesyania utraconych danych.
Natomiast UDP nie sprawdza, czy dane zostay dostarczone w komplecie i nietknite,
co oznacza szybszy sposb wysyania mniej wanych informacji.

Rozdzia 6. Bezpieczestwo systemu Linux

273

Wyczanie usug sieciowych


Mimo e istniej setki usug (wymienione w pliku /etc/services wraz z oficjalnymi numerami portw), ktre potencjalnie mog sta si celem ataku systemu Linux, to w rzeczywistoci niewiele z nich jest zainstalowanych. W systemach Fedora oraz RHEL wikszo
usug sieciowych jest uruchamiana za pomoc procesu xinetd albo skryptw startowych
w katalogu /etc/init.d. Inne systemy Linux uywaj procesu inetd zamiast xinetd.
Demony xinetd oraz inetd s demonami, ktre nasuchuj du liczb portw sieciowych.
Kiedy na okrelonym porcie nastpuje prba nawizania poczenia, demon xinetd lub
inetd automatycznie uruchamia odpowiedni program do obsugi danej usugi i pozwala na
poczenie.
W przypadku demona xinetd plik konfiguracyjny (/etc/xinetd.conf) jest uywany w celu
dostarczenia ustawie domylnych serwera xinetd. Katalog /etc/xinetd.d zawiera pliki
informujce xinetd, ktre porty powinien nadsuchiwa oraz jakie programy uruchamia
(w przypadku demona inetd uywany jest tylko plik /etc/inetd.conf). Kady plik w katalogu /etc/xinetd.d zawiera informacje konfiguracyjne dla pojedynczego urzdzenia i z reguy
nosi nazw odnoszc si do konfigurowanej usugi. Na przykad w celu wczenia usugi
rsync naley przeprowadzi edycj pliku rsync w katalogu /etc/xinetd.d oraz odszuka nastpujcy fragment pliku:
service rsync
{
disable = yes
socket_type
wait
user
server
server_args
log_on_failure
}

= stream
= no
= root
= /usr/bin/rsync
= --daemon
+= USERID

Warto zwrci uwag na pierwszy wiersz powyszego fragmentu pliku, w ktrym nastpuje identyfikacja usugi jako rsync. Jest to nazwa dokadnie odpowiadajca nazwie usugi
wymienionej w pliku /etc/services i nasuchujcej protokow TCP i UDP na porcie 873.
Przykad pokazuje wyranie, e usuga jest domylnie wyczona (disable=yes). Wczenie
usugi wymaga zmiany wymienionego wiersza na disable=no. Dlatego te po wczeniu
usugi wiersz disable bdzie przedstawia si nastpujco:
disable = no

Jeeli komputer ma dziaa jako serwer FTP, usuga rsync jest jedn z przeznaczonych
do wczenia. Pozwala ona uytkownikom na uywanie klienta rsync (zawierajcego
algorytm wyszukiwania sumy kontrolnej) do pobierania plikw z serwera. Za pomoc
tej funkcji uytkownicy mog ponownie uruchomi przerwane pobieranie pliku bez
potrzeby rozpoczynania tego procesu od pocztku.

Poniewa wikszo usug jest domylnie wyczona, komputer moe sta si mniej bezpieczny tylko w wyniku dziaa uytkownika. Naley dwukrotnie sprawdzi, czy niebezpieczne usugi, takie jak rlogin i rsh (ktre w systemach Fedora i RHEL znajduj si
w pakiecie rsh-server), s wyczone rwnie w plikach /etc/xinetd.d/rlogin i rsh (wiersz
disabled=yes).

274

Cz II Linux w praktyce
Usuga zdalnego logowania moe by aktywna, ale warto zablokowa uywanie plikw
/etc/host.equiv i .rhosts oraz wymc podawania hasa podczas kadego uycia rlogin.
Zamiast wycza usug, znacznie lepszym rozwizaniem jest odszukanie wiersza
server w pliku rsh (server = /usr/sbin/in.rshd), a nastpnie na jego kocu dodanie
spacji i opcji -L.

Po wprowadzeniu modyfikacji naley wysa sygna procesowi xinetd, aby plik konfiguracyjny zosta ponownie odczytany. Najszybszym sposobem realizacji takiego zadania
w systemach Fedora i RHEL jest przeadowanie usugi xinetd. Przeadowanie usugi wymaga wydania z poziomu powoki nastpujcego polecenia jako uytkownik root:
# service xinetd reload
Reloading configuration: [ OK ]

Inn moliwoci jest bezporednie nakazanie procesowi xinetd ponownego odczytania


pliku konfiguracyjnego poprzez wysanie mu sygnau SIGHUP. To rozwizanie dziaa, jeli
uywany jest demon inetd (w systemach takich jak Debian lub Slackware), i wymusza
ponowne odczytanie pliku /etc/inetd.conf. Na przykad w celu ponownego odczytania pliku
konfiguracyjnego naley jako uytkownik root wyda nastpujce polecenie:
# killall -s SIGHUP inetd

To ju wszystko, usuga rsync zostaa wczona. Po dostarczeniu prawidowo skonfigurowanego serwera FTP klienci powinni mie moliwo pobierania plikw za pomoc
protokou rsync.

Zabezpieczanie serwerw za pomoc SELinux


Firma Red Hat Inc., wprowadzajc na rynek pierwsz implementacj SELinux w systemach Red Hat, wykonaa sprytne posunicie. Zamiast tworzy polityk kontroli kadego
aspektu systemu Linux, po prostu utworzya rodzaj polityki, ktra skupia si na zabezpieczeniu usug najbardziej podatnych na ataki. Nastpnie firma tak skonfigurowaa te usugi,
e nawet jeli nastpi wamanie, cracker i tak nie bdzie mg naruszy pozostaej czci
systemu.
Po otworzeniu portu w zaporze sieciowej, umoliwiajcego uytkownikom danie usugi,
i po uruchomieniu danej usugi do obsugi da SELinux moe by uyty do ustawienia zapr wok tej usugi. W wyniku takiego rozwizania jej proces demona, pliki konfiguracyjne oraz dane nie maj dostpu do zasobw, do ktrych nie uzyskuj specjalnego
pozwolenia. W ten sposb pozostaa cz komputera (systemu) jest bezpieczniejsza.
Podczas gdy firma Red Hat kontynuowaa wysiki na rzecz wyeliminowania nieprawidowoci w SELinux, uytkownicy, ktrzy nie mieli zaufania do tej usugi, zazwyczaj j
po prostu wyczali. Jeli jednak SELinux faktycznie moe uchroni uytkownika przed
niebezpieczestwem, znacznie lepszym rozwizaniem jest dokadniejsze poznanie danej
funkcji. Jeeli uytkownik wykryje bd w SELinux, warto go zgosi i przyczyni si
do usprawnienia tej usugi.
W przypadku udostpniania w systemie Fedora bd RHEL usug FTP, WWW (HTTPD),
DNS, NFS, NIS lub Samby warto rozway pozostawienie wczonej usugi SELinux oraz
prac z ustawieniami narzdzia Konfiguracja poziomu bezpieczestwa do konfiguracji tych

Rozdzia 6. Bezpieczestwo systemu Linux

275

usug. Wicej informacji o usudze SELinux w kontekcie dystrybucji Fedora znajduje si


na stronie http://fedora.redhat.com/docs/selinux-faq-fc5.

Ochrona serwerw sieciowych


za pomoc certyfikatw i szyfrowania
W poprzednim podrozdziale Czytelnik dowiedzia si, w jaki sposb zabezpieczy drzwi
wejciowe do systemu Linux w celu ochrony przed crackerami. Jednak nawet najlepsze
zabezpieczenia oka si zupenie nieprzydatne, jeli uytkownik utraci klucze. Podobnie
w wiecie komputerw, nawet najlepsze zabezpieczenia s nic niewarte, gdy uytkownik
wysya niezabezpieczone hasa lub inne krytyczne dane przez internet.
Pomysowy cracker moe uy narzdzia nazywanego analizatorem protokou lub snifferem sieciowym i analizowa przepyw danych w sieci, aby wydoby hasa, dane kart kredytowych oraz inne cenne informacje. cracker robi to poprzez wamanie do sabo zabezpieczonego systemu w danej sieci, a nastpnie uruchamia wymienione oprogramowanie
lub po uzyskaniu fizycznego dostpu do danej sieci podcza wasne wyposaenie.
Ochrona przed takimi zagroeniami jest moliwa dziki wykorzystaniu szyfrowania. Dwa
gwne rodzaje szyfrowania uywane w chwili obecnej to kryptografia symetryczna oraz
kryptografia z uyciem klucza publicznego.

Kryptografia symetryczna
Kryptografia symetryczna jest rwnie nazywana kryptografi klucza prywatnego i uywa
pojedynczego klucza zarwno do szyfrowania, jak i rozszyfrowania wiadomoci. Zasadniczo metoda ta jest nieodpowiednia do zabezpieczania danych, ktre bd uywane przez
innych, a to ze wzgldu na skomplikowan wymian bezpiecznych kluczy. Kryptografia
symetryczna jest za to uyteczna do szyfrowania danych tylko na wasny uytek.
Eksport technologii szyfrowania
Zanim zostan przedstawione rne narzdzia szyfrujce, Czytelnik musi przeczyta kilka sw o nietypowej polityce rzdu Stanw Zjednoczonych. Przez wiele lat rzd Stanw Zjednoczonych traktowa
technologi szyfrowania podobnie jak uzbrojenie. W wyniku takiego podejcia kady, kto chcia eksportowa t technologi, musia uzyska zezwolenie w Departamencie Handlu. Ten wymg dotyczy
nie tylko oprogramowania opracowanego w USA, ale rwnie uzyskanego z innych krajw, a nastpnie ponownie eksportowanego do innego kraju (nawet do tego samego, z ktrego pozyskano dane
oprogramowanie).
Dlatego te, jeeli uytkownik zainstalowa w systemie Linux oprogramowanie zawierajce technologi szyfrowania, a nastpnie zabra komputer za granic, ama prawo federalne. Co wicej,
rwnie wysanie koledze poczt elektroniczn oprogramowania szyfrujcego lub pozwolenie na jego
pobranie z serwera naruszao prawo.
W styczniu 2000 roku prawo dotyczce eksportu oprogramowania szyfrujcego zostao znacznie
zagodzone. Jednak bardzo czsto Biuro Administracji Eksportu Departamentu Handlu USA wymaga
umoliwienia mu zapoznania si z nowymi produktami szyfrujcymi przed wydaniem zezwolenia
ich eksportu. Firmy dziaajce w USA wci nie mog eksportowa technologii szyfrujcych do krajw
oficjalnie oskaranych przez USA o terroryzm.

276

Cz II Linux w praktyce

Klasycznym przykadem uycia tego rodzaju kryptografii jest wasny skarbiec hase.
Kady, kto uywa internetu przez pewien czas, zdy ju zgromadzi spor liczb nazw
uytkownika oraz hase do rnych witryn i zasobw. Osobisty skarbiec hase pozwala
na przechowywanie tych informacji w zaszyfrowanej postaci. Zalet takiego rozwizania
jest konieczno pamitania tylko jednego hasa, ktre odbezpiecza dostp do wszystkich
przechowywanych informacji.
Do niedawna rzd Stanw Zjednoczonych wykorzystywa algorytm szyfrowania symetrycznego o nazwie DES (ang. Data Encryption Standard) do zabezpieczania wanych
informacji. Poniewa nie istnieje bezporedni sposb zamania danych zaszyfrowanych
algorytmem DES, rozszyfrowanie takich danych bez znajomoci hasa bdzie wymagao
niewyobraalnej iloci czasu oraz olbrzymiej mocy obliczeniowej w celu odgadnicia uytego hasa. Takie rozwizanie jest nazywane rozszyfrowaniem metod brutalnej siy.
Poniewa moc komputerw domowych wzrosa wykadniczo, algorytm DES zosta odesany na zasuon emerytur. Po wielu bardzo interesujcych poszukiwaniach w jego
miejsce rzd Stanw Zjednoczonych zaakceptowa algorytm Rijndael, nazywany AES
(ang. Advanced Encryption Standard). Mimo e algorytm AES rwnie jest celem atakw
metod brutalnej siy, potrzeba zdecydowanie wicej mocy obliczeniowej do jego zamania ni w przypadku algorytmu DES.
Wicej informacji na temat algorytmu AES wraz implementacj algorytmu w postaci
polecenia powoki znajduje si na witrynie http://aescrypt.sourceforge.net/.

Kryptografia asymetryczna
Kryptografia z uyciem klucza publicznego nie ma problemw zwizanych z dystrybucj
kluczy i dlatego te staa si zalecan metod szyfrowania podczas zabezpieczania komunikacji w internecie. Ta metoda polega na uyciu dwch kluczy, z ktrych pierwszy suy
do szyfrowania wiadomoci, natomiast drugi do jej rozszyfrowania. Klucz uywany do
szyfrowania wiadomoci nosi nazw klucza publicznego, poniewa jest dostpny dla
wszystkich. Z kolei klucz uywany do rozszyfrowania wiadomoci jest kluczem prywatnym i powinien by utrzymywany w cakowicie bezpiecznym miejscu.
Wyobramy sobie, e uytkownik chce wysa drugiemu bezpieczn wiadomo, uywajc
szyfrowania kluczem publicznym. Poniej przedstawiono kolejne etapy takiego procesu:
1. Adresat wiadomoci musi posiada par kluczy jeden publiczny i jeden prywatny.
W zalenoci od okolicznoci takie klucze moe wygenerowa samodzielnie
(za pomoc specjalnego oprogramowania) lub otrzyma z centrum wydajcego
takie klucze.
2. Nadawca wiadomoci musi odnale klucz publiczny adresata (a wic skorzysta
z odpowiedniego oprogramowania).
3. Nadawca wiadomoci szyfruje j za pomoc klucza publicznego. Na tym etapie
wiadomo moe zosta rozszyfrowana tylko za pomoc klucza prywatnego
(klucz publiczny nie moe by uyty do rozszyfrowania wiadomoci).
4. Adresat wiadomoci rozszyfrowuje j za pomoc klucza prywatnego.

Rozdzia 6. Bezpieczestwo systemu Linux

277

Secure Socket Layer (SSL)


Klasyczn implementacj kryptografii z uyciem klucza publicznego jest komunikacja
Secure Socket Layer (SSL). To technologia umoliwiajca uytkownikowi bezpieczne
przesyanie sprzedawcy danych zawierajcych informacje na przykad o karcie kredytowej. Elementami zaszyfrowanej sesji SSL s:

przegldarka internetowa, ktra obsuguje szyfrowanie SSL (Mozilla, Internet


Explorer, Opera, Konqueror i inne),

serwer WWW, ktry obsuguje szyfrowanie SSL (Apache),

certyfikat SSL.

W celu zainicjowania sesji SSL przegldarka internetowa nawizuje poczenie z serwerem


WWW na porcie 443., znanym rwnie jako HTTPS (ang. HyperText Transport Protocol
Secure). Po ustanowieniu poczenia midzy dwoma komputerami zachodz nastpujce
procesy:
1. Serwer wysya przegldarce internetowej certyfikat SSL.
2. Przegldarka internetowa weryfikuje tosamo serwera poprzez certyfikat SSL.
3. Przegldarka internetowa generuje symetryczny klucz szyfrowania.
4. Przegldarka internetowa uywa certyfikatu SSL do zaszyfrowania symetrycznego
klucza SSL.
5. Przegldarka internetowa wysya serwerowi zaszyfrowany klucz.
6. Serwer rozszyfrowuje symetryczny klucz za pomoc odpowiednika klucza
prywatnego dla publicznego certyfikatu SSL.
Po wykonaniu powyszych czynnoci przegldarka internetowa i serwer mog zaszyfrowa
i rozszyfrowa komunikacj midzy sob na podstawie klucza symetrycznego. Midzy
przegldark i serwerem zachodzi bezpieczna wymiana danych.
Tworzenie certyfikatw SSL
W celu utworzenia wasnego certyfikatu dla bezpiecznej wymiany danych za pomoc protokou HTTP naley posiada serwer WWW, ktry obsuguje SSL. Dostarczany wraz
z dystrybucj Fedora oraz innymi systemami Linux serwer WWW Apache (pakiet httpd)
posiada wbudowan obsug SSL. Przedstawiona poniej procedura tworzenia certyfikatw SSL zostaa przeprowadzona w systemie Fedora zawierajcym serwer Apache z pakietu httpd-2.2.3-5. Zaprezentowana procedura moe rni si nieco w przypadku serwera Apache dostpnego w innych systemach Linux.
Gdy uytkownik dysponuje gotowym serwerem, warto zapozna si z wanymi komponentami znajdujcymi si po stronie serwera, a dotyczcymi certyfikatu SSL:
# ls -l /etc/httpd/conf
-rw-r--r-- 1 root
root
lrwxrwxrwx 1 root
root

36010 Jul 14 15:45 httpd.conf


37 Aug 12 23:45 Makefile ->
../../../usr/share/ssl/certs/Makefile

278

Cz II Linux w praktyce
drwx-----drwx-----drwx-----drwx-----drwx------

2
2
2
2
2

root
root
root
root
root

root
root
root
root
root

4096
4096
4096
4096
4096

Aug
Aug
Jul
Aug
Jul

12
12
14
12
14

23:45
23:45
15:45
23:45
15:45

ssl.crl
ssl.crt
ssl.csr
ssl.key
ssl.prm

# ls -l /etc/httpd/conf.d/ssl.conf
-rw-r--r-- 1 root
root
11140 Jul 14 15:45 ssl.conf

Katalogi /etc/httpd/conf oraz /etc/httpd/conf.d zawieraj wszystkie komponenty, ktre bd


potrzebne do utworzenia wasnego certyfikatu SSL. Kady komponent zosta opisany
poniej:

httpd.conf plik konfiguracyjny serwera WWW;

MakeFile skrypt tworzcy certyfikat;

ssl.crl katalog listy odwoa certyfikatu;

ssl.crt katalog certyfikatu SSL;

ssl.csr katalog plikw da certyfikatu (CSR);

ssl.key katalog klucza prywatnego certyfikatu SSL;

ssl.prm parametry certyfikatu SSL;

ssl.conf podstawowy plik konfiguracyjny serwera WWW SSL.

Po zapoznaniu si z podstawowymi komponentami pora zabra si za narzdzia uywane


podczas tworzenia certyfikatw SSL:
# cd /etc/httpd/conf
# make
This makefile allows you to create:
o public/private key pairs
o SSL certificate signing requests (CSRs)
o self-signed SSL test certificates
To
To
To
To

create
create
create
create

a
a
a
a

key pair, run "make SOMETHING.key".


CSR, run "make SOMETHING.csr".
test certificate, run "make SOMETHING.crt".
key and a test certificate in one file, run "make SOMETHING.pem".

To create a key for use with Apache, run "make genkey".


To create a CSR for use with Apache, run "make certreq".
To create a test certificate for use with Apache, run "make testcert".
Examples:
make server.key
make server.csr
make server.crt
make stunnel.pem
make genkey
make certreq
make testcert

Rozdzia 6. Bezpieczestwo systemu Linux

279

Polecenie make wywouje makefile do utworzenia certyfikatu SSL. Wydanie polecenia make
bez adnych argumentw po prostu wywietla informacje przedstawione w powyszym
przykadzie. Poniej przedstawiono definicj kadego argumentu, ktry moe zosta uyty
wraz z poleceniem make:
make server.key

tworzy podstawow par klucz publiczny prywatny;

make server.csr

generuje podstawowy plik CSR certyfikatu SSL;

make server.crt

generuje podstawowy, testowy certyfikat SSL;

generuje podstawowy, testowy certyfikat SSL, ale klucz


prywatny zostaje umieszczony w tym samym pliku, w ktrym znajduje si
certyfikat SSL;

make stunnel.pem

tak samo jak make server.key, poza tym, e klucz zostaje


umieszczony w katalogu ssl.key;

make genkey

podobnie jak make server.csr, poza tym, e usuga dania


certyfikatu zostaje umieszczona w katalogu ssl.csr;

make certreq

tak samo jak make server.crt, poza tym, e certyfikat testowy


zostaje umieszczony w katalogu ssl.crt.

make testcert

Uywanie certyfikatw pochodzcych od firm trzecich


W wiecie rzeczywistym jedna osoba rozpoznaje drug po jej twarzy, gosie i manierach.
W internecie nie ma takiej moliwoci i trzeba polega na zaufanych organizacjach, ktre
potwierdzaj tosamo. Aby zagwarantowa niezmienno certyfikatu, musi on zosta
podpisany przez zaufan firm podczas wydawania certyfikatu oraz jego weryfikacji, gdy
uytkownik kocowy chce wykorzysta zalety bezpiecznego poczenia z witryn. Poniej
przedstawiono list zaufanych centrw, ktre zajmuj si wydawaniem certyfikatw i ich
potwierdzaniem:

GlobalSign https://www.globalsign.net/,

GeoTrust https://www.geotrust.com/,

VeriSign https://www.verisign.com/,

RapidSSL http://www.freessl.com/,

Thawte http://www.thawte.com/,

EnTrust http://www.entrust.com/,

ipsCA http://www.ipsca.com/,

COMODO Group http://www.comodogroup.com/.


Z powodu niestabilnej natury rynku certyfikatw cz z wymienionych firm moe ju
nie wiadczy swoich usug, ale rwnie mogy powsta nowe. Bieca lista centrw
autoryzacji jest dostpna z poziomu przegldarki Mozilla Firefox po wybraniu opcji
Preferencje z menu Edycja. W oknie dialogowym Preferencje naley przej na zakadk
Zaawansowane/Bezpieczestwo/Zarzdzanie certyfikatami. Na ekranie zostanie
wywietlone nowe okno dialogowe Meneder certyfikatw, ktre na zakadce Orodki
certyfikacji zawiera list centrw autoryzacji, z ktrych uytkownik posiada certyfikaty.

280

Cz II Linux w praktyce

Kade z wymienionych centrw autoryzacji zaszyo w niemal wszystkich przegldarkach


internetowych dostpnych na wiecie elementy kodu kryptograficznego. Pozwalaj one
przegldarce internetowej na okrelenie, czy dany certyfikat SSL jest autentyczny. Bez
tego rodzaju weryfikacji crackerzy mogliby stosunkowo atwo wygenerowa wasne certyfikaty i oszukiwa uytkownikw, ktrzy byliby przekonani, e podaj informacje wraliwe wiarygodnemu podmiotowi.
Certyfikaty, ktre nie przechodz weryfikacji, s nazywane certyfikatami samodzielnie
podpisanymi. Jeeli uytkownik porusza si po witrynie, ktrej certyfikat nie zosta potwierdzony przez zaufan organizacj, przegldarka internetowa wywietli komunikat podobny
do pokazanego na rysunku 6.2.
Rysunek 6.2.
Okno dialogowe,
ktre ostrzega
uytkownika
o nieuwierzytelnionym
certyfikacie

Przedstawiony powyej komunikat nie oznacza, e dana witryna zajmuje si nielegaln,


niemoraln lub wisk dziaalnoci. Wiele witryn uywa samodzielnie podpisanych
certyfikatw nie dlatego, e chc nacign uytkownika, ale z braku powodw do weryfikacji waciciela certyfikatu oraz chci uniknicia kosztw zwizanych z uzyskaniem
uwierzytelnionego certyfikatu. Niektre z powodw uywania samodzielnie podpisanych
certyfikatw to:

Witryna internetowa nie pobiera danych wejciowych. W takich przypadkach


uytkownik nie musi si o nic martwi. Nikt nie prbuje ukra jego informacji,
poniewa na witrynie nie s podawane adne dane. W wikszoci przypadkw takie
rozwizanie ma na celu zapewnienie bezpiecznej komunikacji midzy witryn
i uytkownikiem. Chocia dane nie musz by wraliwe, to witryna i tak zapewnia
bezpieczn komunikacj, aby uniemoliwi innym przechwytywanie danych.

Witryna przeznaczona jest dla maego krgu odbiorcw. Jeeli dana witryna
internetowa posiada bardzo ograniczony krg uytkownikw, mona po prostu
poinformowa ich o braku uwierzytelnionego certyfikatu. W takim przypadku
uytkownicy mog przeglda informacje dotyczce certyfikatu i sprawdza je
na przykad poprzez telefon lub bezporednio.

Rozdzia 6. Bezpieczestwo systemu Linux

281

Testowanie. Nie ma sensu ponoszenia kosztw certyfikatu SSL podczas testowania


nowej witryny lub aplikacji sieciowej. Uycie samodzielnie podpisanego certyfikatu
jest wwczas wystarczajce.

Tworzenie pliku CSR


W celu utworzenia w systemie Fedora Linux certyfikatu SSL uwierzytelnionego przez
firm trzeci naley rozpocz od pliku CSR (ang. Certificate Service Request). Aby utworzy plik CSR, w serwerze WWW trzeba wykona nastpujce czynnoci:
# cd /etc/httpd/conf
# make certreq
umask 77 ; \
/usr/bin/openssl genrsa -des3 1024 > /etc/httpd/conf/ssl.key/server.key
.
.
.

Na ekranie zostanie wywietlone pytanie o haso zabezpieczajce klucz prywatny. Wymienione haso powinno posiada co najmniej osiem znakw, nie powinno by sowem znajdujcym si w sowniku i nie moe zawiera znakw przestankowych. Wpisywane znaki
nie bd wywietlane na ekranie, co uniemoliwia podejrzenie go przez innego uytkownika.
Enter pass phrase:

Haso naley poda dwukrotnie w celu jego weryfikacji:


Verifying - Enter pass phrase:

Po zweryfikowaniu hasa rozpocznie si proces generowania certyfikatu.


Na tym etapie mona zacz podawa do certyfikatu pewne informacje identyfikacyjne,
ktre pniej bd sprawdzane przez firm trzeci. Przed tym naley jednak odblokowa
wygenerowany wczeniej klucz prywatny. Odblokowanie polega na podaniu hasa. Nastpnie trzeba podawa odpowiedzi na pytania wywietlane na ekranie. Przykadowa sesja
dodawania informacji do certyfikatu zostaa przedstawiona poniej:
Enter pass phrase for /etc/httpd/conf/ssl.key/server.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called
a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
----Country Name (2 letter code) [GB]: US
State or Province Name (full name) [Berkshire]: Connecticut
Locality Name (eg, city) [Newbury]: Mystic
Organization Name (eg, company) [My Company Ltd]: Acme Marina, Inc.
Organizational Unit Name (eg, section) []: InfoTech
Common Name (eg, your name or your server's hostname) []: www.acmemarina.com
Email Address []: webmaster@acmemarina.com

282

Cz II Linux w praktyce

W celu zakoczenia procesu uytkownik zostanie zapytany, czy do certyfikatu chce doda
dodatkowe atrybuty. O ile nie istnieje specjalny powd dostarczenia wikszej iloci informacji, naley po prostu nacisn klawisz Enter, pozostawiajc w ten sposb ponisze pola
niewypenione.
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

Podpisywanie pliku CSR


Po utworzeniu pliku CSR naley go wysa do centrum autoryzacji w celu weryfikacji.
Pierwszym krokiem tego procesu jest wybr centrum autoryzacji. Kade z nich posiada
wasn ofert, ceny oraz produkty. Warto sprawdzi centra wymienione we wczeniejszej
czci rozdziau i wybra najlepsze dla wasnych potrzeb. Poniej przedstawiono obszary,
na ktrych wystpuj rnice pomidzy centrami autoryzacji:

wiarygodno i stabilno,

ceny,

rozpoznanie przez przegldarki internetowe,

gwarancje,

pomoc techniczna,

jako certyfikatu.

Po wybraniu centrum autoryzacji uytkownik bdzie musia przej przez pewne etapy
weryfikacji. Kade z centrw posiada opracowane wasne metody weryfikacji tosamoci
oraz certyfikowania informacji. Niektre bd wymagay wysania faksem umowy spki,
podczas gdy inne bd wymagay rozmowy z przedstawicielem firmy. Na pewnym etapie
tego procesu uytkownik zostanie poproszony o skopiowanie i wklejenie zawartoci utworzonego pliku CSR do formularza sieciowego centrum.
# cd /etc/httpd/conf/ssl.csr
# cat server.csr
-----BEGIN CERTIFICATE REQUEST----MIIB6jCCAVMCAQAwgakxCzAJBgNVBAYTAlVTMRQwEgYDVQQIEwtDb25uZWN0aWN1
dDEPMA0GA1UEBxMGTXlzdGljMRowGAYDVQQKExFBY21lIE1hcmluYSwgSW5jLjER
MA8GA1UECxMISW5mb1RlY2gxGzAZBgNVBAMTEnd3dy5hY21lbWFyaW5hLmNvbTEn
MCUGCSqGSIb3DQEJARYYd2VibWFzdGVyQGFjbWVtYXJpbmEuY29tMIGfMA0GCSqG
SIb3DQEBAQUAA4GNADCBiQKBgQDcYH4pjMxKMldyXRmcoz8uBVOvwlNZHyRWw8ZG
u2eCbvgi6w4wXuHwaDuxbuDBmw//Y9DMI2MXg4wDq4xmPi35EsO1Ofw4ytZJn1yW
aU6cJVQro46OnXyaqXZOPiRCxUSnGRU+0nsqKGjf7LPpXv29S3QvMIBTYWzCkNnc
gWBwwwIDAQABoAAwDQYJKoZIhvcNAQEEBQADgYEANv6eJOaJZGzopNR5h2YkR9Wg
l8oBl3mgoPH60Sccw3pWsoW4qbOWq7on8dS/++QOCZWZI1gefgaSQMInKZ1II7Fs
YIwYBgpoPTMC4bp0ZZtURCyQWrKIDXQBXw7BlU/3A25nvkRY7vgNL9Nq+7681EJ8
W9AJ3PX4vb2+ynttcBI=
-----END CERTIFICATE REQUEST-----

W celu skopiowania i wklejenia pliku CSR do formularza sieciowego centrum mona wykorzysta mysz.

Rozdzia 6. Bezpieczestwo systemu Linux

283

Po zakoczeniu procesu weryfikacji informacji, opaceniu centrum i udzieleniu odpowiedzi


na wszystkie pytania proces zostanie ukoczony. W przecigu 48 do 72 godzin uytkownik powinien otrzyma wiadomo e-mail wraz z nowym certyfikatem SSL. Wspomniany
certyfikat bdzie wyglda podobnie do przedstawionego poniej:
-----BEGIN CERTIFICATE----MIIEFjCCA3+gAwIBAgIQMI262Zd6njZgN97tJAVFODANBgkqhkiG9w0BAQQFADCB
ujEfMB0GA1UEChMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazEXMBUGA1UECxMOVmVy
aVNpZ24sIEluXy4xMzAxBgNVBAsTKlZlcmlTaWduIEludGVybmF0aW9uYWwgU2Vy
dmVyIENBIC0gZ2xhc3MgMzFJMEcG10rY2g0Dd3d3LnZlcmlzaWduLmNvbS9DUFMg
SW5jb3JwLmJ51FJlZi4gTElBQklMSVRZIExURC4oYyk5NyBWZXJpU2lnbjAeFw0w
MzAxMTUwMDAwMDBaFw0wNDAxMTUyMzU5NTlaMIGuMQswCQYDVQQGEwJVUzETMBEG
A1UECBMKV2FzaG1uZ3RvHiThErE371UEBxQLRmVkZXJhbCBXYXkxGzAZBgNVBAoU
EklETSBTZXJ2aWMlcywgSW5jLjEMMAoGA1UECxQDd3d3MTMwMQYDVQQLFCpUZXJt
cyBvZiB1c2UgYXQgd3d3LnZlcmlzawduLmNvbS9ycGEgKGMpMDAxFDASBgNVBAMU
C2lkbXNlcnYuY29tMIGfMA0GCSqGS1b3DQEBAQUAA4GNADCBiQKBgQDaHSk+uzOf
7jjDFEnqT8UBa1L3yFILXFjhj3XpMXLGWzLmkDmdJjXsa4x7AhEpr1ubuVNhJVI0
FnLDopsx4pyr4n+P8FyS4M5grbcQzy2YnkM2jyqVF/7yOW2pDl30t4eacYYaz4Qg
q9pTxhUzjEG4twvKCAFWfuhEoGu1CMV2qQ1DAQABo4IBJTCCASEwCQYDVR0TBAIw
ADBEBgNVHSAEPTA7MDkGC2CGSAGG+EUBBxcDMCOwKAYIKwYBBQUHAgEWHGh0dHBz
Oi8vd3d3LnZlcmlzaWduLmNvbS9ycGEwCwYDVRRPBAQDAgWgMCgGA1UdJQQhMB8G
CWCGSAGG+EIEM00c0wIYBQUHAwEGCCsGAQUFBwmCMDQGCCsGAQUFBwEBBCgwJjAk
BggrBgEFBQcwAYYYaHR0cDovL29jc2AudmVyaXNpZ24uY29tMEYGA1UdHwQ/MD0w
O6A5oDeGNWh0dHA6Ly9jcmwudmVyaxNpZ24uY29tL0NsYXNzM0ludGVybmF0aW9u
YWxTZXJ2ZXIuY3JsMBkGCmCGSAgG+E+f4Nfc3zYJODA5NzMwMTEyMA0GCSqGSIb3
DQEBBAUAA4GBAJ/PsVttmlDkQai5nLeudLceb1F4isXP17B68wXLkIeRu4Novu13
8lLZXnaR+acHeStR01b3rQPjgv2y1mwjkPmC1WjoeYfdxH7+Mbg/6fomnK9auWAT
WF0iFW/+a8OWRYQJLMA2VQOVhX4znjpGcVNY9AQSHm1UiESJy7vtd1iX
-----END CERTIFICATE-----

Otrzymany certyfikat naley skopiowa i wklei do pustego pliku o nazwie server.crt,


ktry musi znajdowa si w katalogu /etc/httpd//conf/ssl.crt, a nastpnie ponownie uruchomi serwer WWW:
# service httpd restart

Zakadajc, e wczeniej witryna internetowa funkcjonowaa bez zarzutu, dodanie certyfikatu umoliwi jej przegldanie za pomoc bezpiecznego poczenia (litera s w cigu
tekstowym http adresu witryny). Dlatego te, jeeli wczeniej witryna bya wywietlana po
podaniu adresu http://www.acmemarine.com, to po dodaniu certyfikatu mona j wywietli w bezpieczny sposb po podaniu adresu https://www.acmemarina.com.
Tworzenie samodzielnie podpisanych certyfikatw
Generowanie i wdroenie samodzielnie podpisanego certyfikatu jest znacznie atwiejsze ni
w przypadku uwierzytelnionych certyfikatw. W celu wygenerowania samodzielnie podpisanego certyfikatu SSL w systemie Fedora naley wykona nastpujce czynnoci:
1. Usun aktualnie istniejcy certyfikat oraz klucz:
# cd /etc/httpd/conf
# rm ssl.key/server.key ssl.crt/server.crt

2. Utworzy wasny klucz:


# make genkey

284

Cz II Linux w praktyce

3. Utworzy samodzielnie podpisany certyfikat za pomoc polecenia:


# make testcert
umask 77 ; \
/usr/bin/openssl req -new -key
/etc/httpd/conf/ssl.key/server.key
-x509 -days 365 -out
/etc/httpd/conf/ssl.key/server.crt
.
.
.

Na tym etapie mona zacz podawa do certyfikatu pewne informacje identyfikacyjne,


ktre pniej bd sprawdzane przez firm trzeci. Przed tym naley jednak odblokowa
wygenerowany wczeniej klucz prywatny. Odblokowanie polega na podaniu hasa. Nastpnie trzeba podawa odpowiedzi na pytania wywietlane na ekranie, jak przedstawiono na
poniszym przykadzie:
You are about to be asked to enter information that will be
incorporated into your certificate request.
What you are about to enter is what is called
a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
----Country Name (2 letter code) [GB]:US
State or Province Name (full name) [Berkshire]: Ohio
Locality Name (eg, city) [Newbury]: Cincinnati
Organization Name (eg, company) [My Company Ltd]: Industrial Press, Inc.
Organizational Unit Name (eg, section) []: IT
Common Name (eg, your name or your server's hostname)
[]: www.industrialpressinc.com
Email Address []: webmaster@industrialpressinc.com

Proces generujcy umieci wszystkie pliki w odpowiednich miejscach. Uytkownik musi


tylko ponownie uruchomi serwer WWW oraz poda w adresie URL cig tekstowy https
zamiast zwykego http. Nie naley zapomina, e serwer WWW wywietli w przegldarce internetowej komunikat dotyczcy weryfikacji certyfikatu, ktry mona jednak bezpiecznie zignorowa.
Ponowne uruchamianie serwera WWW
Czytelnik prawdopodobnie zwrci uwag, e serwer WWW w trakcie kadego uruchomienia wymaga podania hasa certyfikatu. Ten krok ma na celu ochron przed sytuacj,
gdy kto wamie si do serwera i ukradnie klucz prywatny. Ten etap powinien by zachowany, gdy daje pewno, e klucz prywatny jest bezpieczny, a cracker nie bdzie mg
zrobi z niego uytku. Bez takiego zabezpieczenia cracker mgby atwo ukra klucz
prywatny i podawa si za uytkownika.
Jeeli uytkownik nie chce podawa hasa w trakcie kadego uruchamiania serwera WWW
i akceptuje opisane powyej ryzyko, istnieje moliwo usunicia szyfrowania klucza prywatnego. W tym celu naley wyda nastpujce polecenia:

Rozdzia 6. Bezpieczestwo systemu Linux

285

# cd /etc/httpd/conf/ssl.key
# /usr/bin/openssl rsa -in server.key -out server.key

Rozwizywanie problemw zwizanych z certyfikatami


Przedstawione poniej wskazwki powinny by pomocne, gdy uytkownik napotka problemy zwizane z certyfikatem SSL:

Dozwolony jest tylko jeden certyfikat na jeden adres IP. Jeeli uytkownik chce
doda do serwera wicej ni tylko jedn witryn zawierajc certyfikat SSL,
do interfejsu sieciowego musi zosta doczony kolejny adres IP.

Naley si upewni, e maska uprawnie dla katalogw /etc/httpd/conf/ssl.* oraz


ich zawartoci zostaa ustawiona na warto 700 (rwx------).

Naley si upewni, e port 443. na serwerze WWW nie jest blokowany. Wszystkie
dania https s kierowane do portu 443. Jeeli ten port zostanie zablokowany,
obsuga bezpiecznych stron bdzie niemoliwa.

Certyfikat jest wany przez okres jednego roku. Po upyniciu roku certyfikat naley
odnowi we waciwym centrum autoryzacji. Kade centrum posiada wasn
procedur odnawiania certyfikatu, warto sprawdzi odpowiednie informacje
na witrynie danego centrum.

Naley si upewni, e zosta zainstalowany pakiet mod_ssl. Jeeli tak nie jest,
serwer WWW nie bdzie mg obsuy adnego ruchu zwizanego z SSL.

Uywanie narzdzi bezpieczestwa


systemu Linux uruchamianego z nonika
Jeeli istnieje podejrzenie, e komputer lub sie zostay zaatakowane, uytkownik dysponuje ca gam narzdzi bezpieczestwa, ktrych moe uy do przeprowadzenia skanowania antywirusem, analizy lub monitorowania aktywnoci intruza. Najlepszym sposobem
nauczenia si obsugi wielu z tych narzdzi jest wykorzystanie dystrybucji systemu Linux
dedykowanych i zbudowanych specjalnie pod ktem bezpieczestwa i uruchamianych
z nonika.

Zalety odnonie bezpieczestwa dystrybucji


dziaajcych z nonika
Gwn zalet uywania dystrybucji dziaajcej bezporednio z nonika CD lub DVD do
sprawdzania bezpieczestwa systemu jest fakt, e oddziela ona uywane narzdzia od
sprawdzanego systemu. Innymi sowy, poniewa narzdzia do odnajdywania problemw
na zainstalowanym systemie same mogy zosta naruszone, dystrybucja typu live CD,
zawierajca zaufane oprogramowanie, jest gwarancj, e potencjalnie zainfekowany system jest sprawdzany za pomoc czystych narzdzi.
Jeeli pomimo najwikszych wysikw (dobre hasa, zapory sieciowe, sprawdzanie plikw
dziennikw zdarze) uytkownik jest przekonany, e intruz mg uzyska kontrol nad

286

Cz II Linux w praktyce

systemem, uycie dystrybucji dziaajcej z nonika jest dobrym rozwizaniem. Systemy


bezpieczestwa w postaci live DC, takie jak System Rescue CD, INSERT lub BackTrack
(wszystkie zostay umieszczone na pytach CD i DVD doczonych do ksiki), s doskonaymi narzdziami sprawdzania i naprawy systemu.

Korzystanie z narzdzia INSERT


do wykrywania kodu typu rootkit
Jeeli intruz uzyska dostp do systemu Linux i sprbuje przej kontrol nad tym systemem (i uy do czego wicej ni tylko wamania i ucieczki), moe zainstalowa kod
nazwany rootkit. Wspomniany rootkit jest zestawem oprogramowania, ktre intruz chce
wykorzysta do:

realizacji swoich planw (na przykad do hostingu faszywej zawartoci WWW


za pomoc przejtego serwera),

ukrycia wasnej aktywnoci.

Kod typu rootkit moe stosowa rne sposoby ukrywania wasnego przeznaczenia. Bardzo
czsto zdarza si, e rootkit zastpuje wasnymi wersjami polecenia systemowe. Dlatego
te na przykad polecenia ls oraz ps mog zosta zmodyfikowane w taki sposb, aby nie
wywietlay odpowiednio pewnej zawartoci dodanej do systemu lub ustalonych procesw
dziaajcych w systemie.
Polecenie chkrootkit jest dobrym narzdziem wyszukiwania kodu rootkit. Suy rwnie
do sprawdzenia, czy pliki systemowe nie zostay zainfekowane. Narzdzie sprawdzi rwnie potencjalne infekcje w poleceniach sprawdzania dysku (takich jak du, find i ls),
poleceniach operacji na procesach (ps i pstree), poleceniach zwizanych z logowaniem
(login, rlogin, slogin) oraz wielu innych. Poniej przedstawiono sposb uruchomienia
narzdzia chkrootkit z dystrybucji INSERT:
1. Do napdu CD w pyt CD doczon do ksiki.
2. Gdy na ekranie pojawi si znak zachty, wpisz insert i nacinij klawisz Enter.
Podane polecenie spowoduje uruchomienie dystrybucji INSERT.
3. Aby mc sprawdzi system Linux zainstalowany na dysku twardym, naley
zamontowa partycje reprezentujce zainstalowany system Linux. Uywajc
apletu mount.app (wywietlany w prawym dolnym rogu ekranu), kliknij kursorem
na aplecie, przechodzc przez kolejne dostpne urzdzenia. Jeeli Linux by
zainstalowany na pierwszej partycji pierwszego dysku twardego, naley wybra
hda1. Po wybraniu urzdzenia kliknij przycisk Mount, ktry powoduje
zamontowanie partycji.
4. Otwrz terminal, klikajc pulpit prawym przyciskiem myszy i wybierajc Terminal
Session/Aterm super user. Na ekranie zostanie wywietlone okno terminalu.
5. Wydaj polecenie chkrootkit, a jego dane wyjciowe zapisz w pliku. Na przykad
wydanie poniszego polecenia spowoduje sprawdzenie systemu plikw
zamontowanego w punkcie /mnt/hda1 i zapisanie danych wyjciowych w pliku
chkroot-output.txt:

Rozdzia 6. Bezpieczestwo systemu Linux

287

# chkrootkit -r /mnt/hda1 > /tmp/chkroot-output.txt

6. Kiedy polecenie zakoczy swoje dziaanie, przejrzyj dane wyjciowe.


Przykadowo:
# less /tmp/chkroot-output.txt
ROOTDIR is '/mnt/hda1/'
Checking 'amd' ... not found
Checking 'basename' ... not infected
.
.
.

7. Naciskaj spacj i przejd przez wywietlone dane wyjciowe, ktre powinny


dostarczy nastpujcych informacji

Jeeli w systemie zosta umieszczony kod rootkit, niektre polecenia zostan


wskazane jako zainfekowane.

Jeeli w dowolnym pliku lub katalogu zostanie odkryte dobrze znane


oprogramowanie rootkit, bdzie to odnotowane. Polecenie rozpoznaje ponad
60 rodzajw znanego oprogramowania rootkit.

Jeeli zostanie odkryty podejrzanie wygldajcy plik, bdzie to odnotowane,


co umoliwi uytkownikowi sprawdzenie takiego pliku (mimo e nie musi on
oznacza obecnoci oprogramowania typu rootkit).

Jeeli w systemie zostanie odkryte oprogramowanie typu rootkit, oznacza to, e kto mg
przej kontrol nad komputerem. Bardzo czsto najlepszym rozwizaniem w takim przypadku jest po prostu ponowna instalacja systemu. Uytkownik moe zastpi zainfekowane
polecenia czystymi, ale w pierwszej kolejnoci naley upewni si, e w systemie nie
zostay umieszczone tylne drzwi umoliwiajce dostanie si do systemu.

Podsumowanie
Zapewnienie bezpieczestwa systemowi Linux jest zadaniem, ktre naley przeprowadza
od samego pocztku i kontynuowa w trakcie uywania Linuksa. Stosowanie dobrych
praktyk w zakresie bezpieczestwa (takich jak wymienione na licie przedstawionej na
pocztku rozdziau) zwiksza szanse utrzymywana intruzw na odlego.
Idc jeszcze dalej, uytkownik moe pomc w zabezpieczaniu systemu Linux poprzez
uywanie szyfrowanych aplikacji sieciowych (na przykad ssh), monitorowanie plikw
dziennikw zdarze i stosowanie dobrych technik wyboru hase. Jeeli system Linux jest
uywany w charakterze serwera, naley zachowa szczegln ostrono, zawzi dostp
do serwera i chroni dane. Do tego celu su narzdzia takie jak osony TCP (ograniczajce uytkownikw, ktrzy mog uywa serwera) oraz certyfikaty (gwarantujce, e
obie strony komunikacji z serwerem WWW s uwierzytelnione).

You might also like