Professional Documents
Culture Documents
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
Spis treci
10
Spis treci
11
12
Spis treci
13
14
Spis treci
15
16
Spis treci
17
18
Spis treci
19
Rozdzia 6.
Bezpieczestwo
systemu Linux
W tym rozdziale:
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.
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.
244
Cz II Linux w praktyce
245
246
Cz II Linux w praktyce
247
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 kolejnych liter lub cyfr na klawiaturze (na przykad qwerty
lub asdfg).
Mzsmj7l!
2stZp1jl
CtMp?Omgzp
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.
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).
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
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
Cron log
cron
dmesg
FTP Log
xferlog
httpd/access_log
httpd/error_log
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
mysqld.log
News Log
spooler
RPM Packages
rpmpkgs
Security Log
secure
System Log
messages
up2date
Xorg.0.log
gdm/:0.log
samba/log.smbd
squid/access.log
vsftpd.log
sendmail
uucp
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).
253
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
/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
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
255
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:
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.
256
Cz II Linux w praktyce
2:on
3:on
4:on
5:on
6:off
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).
257
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.
259
260
Cz II Linux w praktyce
podrozdzia naley traktowa jako oglny opis niektrych rodzajw atakw oraz niektrych narzdzi sucych do zabezpieczania serwerw Linuksa.
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
261
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 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).
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
263
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
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.
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
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.
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).
268
Cz II Linux w praktyce
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 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:
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
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
270
Cz II Linux w praktyce
netstat, ktre jest czci podstawowej instalacji dystrybucji Fedora. Informacje dotyczce
poczenia zostan wywietlone po wydaniu polecenia:
# netstat -tupn
Opis
-t, --tcp
-u, --udp
-p, --program
-n, --numeric
Pokazuje adres w postaci liczbowej zamiast prby okrelenia symbolicznego wza, portu
bd nazw uytkownikw.
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 -
Recv-Q
Send-Q
Local Address
Foreign Address
State
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.
271
Opis
ESTABLISHED
SYN_SENT
SYN_RECV
FIN_WAIT1
FIN_WAIT2
TIME_WAIT
CLOSED
CLOSE_WAIT
LAST_ACK
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
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.
272
Cz II Linux w praktyce
[aliases ...]
ttytst source
ttytst source
[# comment]
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.
273
= 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 ]
To ju wszystko, usuga rsync zostaa wczona. Po dostarczeniu prawidowo skonfigurowanego serwera FTP klienci powinni mie moliwo pobierania plikw za pomoc
protokou rsync.
275
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.
277
certyfikat SSL.
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
create
create
create
create
a
a
a
a
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
make server.csr
make server.crt
make stunnel.pem
make genkey
make certreq
make testcert
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/,
280
Cz II Linux w praktyce
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.
281
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:
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 []:
wiarygodno i stabilno,
ceny,
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.
283
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
284
Cz II Linux w praktyce
285
# cd /etc/httpd/conf/ssl.key
# /usr/bin/openssl rsa -in server.key -out server.key
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 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.
286
Cz II Linux w praktyce
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:
287
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).