Historia wymaga pasterzy, nie rzeźników.


# 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 powyższych zmian komunikaty będą wysyłane do demona syslogd dzia-
łającego na komputerze o nazwie loghost. Nazwa loghost nie jest dowolną nazwą.
Zwykle tworzy się nazwę komputera i udostępnia jako alias rzeczywistego systemu dzia-
łającego jako loghost. W ten sposób, jeżeli kiedykolwiek zajdzie potrzeba przeniesienia serwera plików dzienników zdarzeń na inny komputer, wystarczy zmienić tylko alias. Nie będzie konieczna ponowna edycja pliku syslog.conf na każdym komputerze.
Po stronie serwera loghost komputer musi posiadać uruchomionego demona syslogd wraz z opcją -r, która powoduje oczekiwanie na komunikaty zdarzeń przekazywane z innych komputerów w sieci. W systemie Fedora Core oznacza to dodanie opcji -r do zmiennej
Rozdział 6.  Bezpieczeństwo systemu Linux
255
SYSLOGD_OPTIONS w pliku /etc/sysconfig/syslog i ponowne uruchomienie usługi syslog (service syslog restart). Ponadto serwer loghost musi posiadać port UDP 514 dostępny dla demona syslogd (trzeba sprawdzić plik /etc/services), a więc należy utworzyć odpowiednią regułę w zaporze sieciowej.
Zrozumienie komunikatów pliku dziennika zdarzeń
Ponieważ w pliku dziennika zdarzeń messages informacje zapisuje wiele programów i usług, bardzo ważne jest zrozumienie formatu tego pliku. Dzięki analizie tego pliku można wcze-
śnie uzyskać ostrzeżenie o problemach w systemie. Każdy wiersz pliku stanowi pojedynczy komunikat zapisany przez program lub usługę. Poniżej 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 zwrócić uwagę. Każdy komunikat jest podzielony na pięć głównych części. Patrząc od lewej do prawej strony, są to:
 data i godzina zarejestrowania komunikatu,
 nazwa komputera, z którego pochodzi dany komunikat,
 nazwa programu lub usługi, której dotyczy dany komunikat,
 numer procesu (umieszczony w nawiasach kwadratowych) programu wysyłającego komunikat,
 rzeczywista treść komunikatu.
Spójrzmy ponownie na powyższy fragment pliku. Pierwsze dwa wiersze informują o po-nownym uruchomieniu sieci. Kolejny wiersz wskazuje, że użytkownik krzysztof próbował
uzyskać dostęp do serwera FTP (próba zakończona niepowodzeniem) z komputera o adresie 10.0.0.5 (użytkownik podał nieprawidłowe hasło i uwierzytelnienie nie powiodło się).
Ostatni wiersz wskazuje, że użytkownik krzysztof użył polecenia su, aby uzyskać uprawnienia superużytkownika.
Okazjonalne przeglądanie plików messages i secure umożliwia wychwycenie próby włamania, nim zakończy się ona powodzeniem. Jeżeli plik wskazuje na nadmierną liczbę prób połączenia z określoną usługą, zwłaszcza jeśli żądania nadchodzą z internetu, może oznaczać to próbę ataku.
Używanie narzędzi bezpiecznej powłoki
Narzędzia bezpiecznej powłoki (ssh) to zbiór aplikacji typu klient – serwer, które pozwalają na podstawową komunikację (zdalne logowanie, zdalne kopiowanie, zdalne wykonywanie itd.) między zdalnymi komputerami a danym systemem Linux. Ponieważ
256
Część II  Linux w praktyce
komunikacja między serwerem (zazwyczaj procesem demona sshd) i klientami (takimi jak ssh, scp i sftp) jest szyfrowana, to te narzędzia są niewątpliwie bezpieczniejsze niż podobne, ale starsze narzędzia Uniksa, takie jak rsh, rcp i rlogin.
Większość systemów Linux zawiera klienty bezpiecznej powłoki, a niektóre posiadają również serwer sshd. Jeśli na przykład używana jest dystrybucja Fedora lub Red Hat Enterprise Linux, oprogramowanie ssh składa się z następujących pakietów: openssh, openssh-clients i openssh-serwer.
Uruchamianie usługi ssh