Wydział śledczy

Przeciętny użytkownik zaczyna interesować się plikami dziennika systemowego w dwóch sytuacjach: gdy nie może skonfigurować jakiejś usługi i próbuje ustalić przyczyny takiego stanu rzeczy lub gdy dzienniki zajmują tak dużo miejsca, że zaczyna brakować przestrzeni na dane i nowe programy. Tymczasem rutynowe, codzienne śledzenie tych plików pozwoli nam wykryć i zlikwidować różne niedoróbki konfiguracji. A jeśli jesteśmy podłączeni do Sieci, być może dzięki logom zauważymy próby włamania do systemu i odpowiednio zabezpieczymy się przed nimi bądź ich skutkami.

To, jak często powinniśmy przeglądać dzienniki, zależy od charakteru systemu i jego przeznaczenia. W komputerze domowym, z którego łączymy się z Siecią raz lub kilka razy dziennie, na dobrą sprawę wystarczy skontrolować logi raz na dzień. Na maszynie służącej jako serwer w sieci ze stałym dostępem do Internetu należałoby przeglądać dzienniki nie rzadziej niż raz na godzinę. Użycie w tym celu zwykłych przeglądarek plików tekstowych spowodowałoby, że na nic więcej nie mielibyśmy już czasu – całe dnie spędzalibyśmy na lekturze logów. Na szczęście dostępny jest program logcheck, który sprawdza dziennik zapisywany np. w katalogu /var/log/messages i przesyła administratorowi list z informacją o podejrzanych wpisach, jakie się tam pojawiły. Aplikację zamieszczamy na CHIP-CD.

Łatwe początki

Wszystkie prace związane z logcheckiem wykonujemy z konta administratora. Po rozpakowaniu archiwum zawierającego aplikację i przejściu do odpowiedniego katalogu instalujemy program w Linuksie, wydając polecenie make linux. Aby dokonać sprawdzenia dziennika, powinniśmy uruchomić skrypt logcheck.sh, który znajdziemy po instalacji w katalogu /usr/local/etc/. Jednak jeszcze przed pierwszym użyciem skryptu warto się upewnić, że zawarte w nim polecenie tworzące zbiór dziennika z sekcji LOG FILE CONFIGURATION SECTION ma formę właściwą dla używanego przez nas Linuksa.

Aby uprościć wywoływanie skryptu, w katalogu ~/.bashrc możemy utworzyć odpowiedni alias. W tym celu wydajemy polecenie:

alias logcheck='test -x /usr/local/etc/logcheck.sh && /usr/local/etc/logcheck.sh'

Pora przystąpić do skonfigurowania programu. Warto wyliczyć te komunikaty, na które logcheck nie powinnien reagować alarmem. Wszystkie je zapiszemy w pliku logcheck.ignore bądź logcheck.violations. ignore. Obydwa zbiory znajdują się w katalogu /usr/local/etc/. Tuż po zainstalowaniu logchecka znajdziemy w wymienionych zbiorach kilkanaście standardowych wpisów i sami dodamy do nich kolejne. Wprowadźmy na próbę pozycje:

kernel: *
pppd[.*]: *
chat[.*]: *

Tak zapisane polecenie oznacza, że ignorowane będą wszystkie komunikaty jądra oraz programów pppd i chat – mówi o tym gwiazdka kończąca każdy wiersz. I raczej nie zaleca się stosowania aż tak ogólnych wpisów. Zamiast tego należałoby wyliczyć konkretne komunikaty lub mniejsze ich grupy, na przykład:

kernel: Intel.*
kernel: Checking.*
kernel: Linux.*
pppd[.*]: pppd.*
chat[.*]: timeout.*
chat[.*]: abort.*
chat[.*]: send.*
pppd[.*]: Serial.*
pppd[.*]: Using.*

Zalecam w tym miejscu zachowanie zdrowego rozsądku i pewnej dozy krytycyzmu. Jeżeli pozwolimy, aby program raportował o zbyt wielu zdarzeniach, nie będziemy później mieli ochoty przeglądać tych informacji. Gdy zaś wyeliminujemy zbyt wiele komunikatów, może się okazać, że przeoczymy jakieś zagrożenie. Na pewno już po kilku uruchomieniach logchecka bez trudu wytypujemy te wpisy w dziennikach, które można spokojnie zignorować. Wów-czas zmodyfikujemy odpowiednio zawartość zbiorów logcheck.ignore lub logcheck.violations.ignore.

Warto zwrócić uwagę na dwa zbiory: logcheck.hacking oraz logcheck.violations. Obydwa umieszczono w katalogu /usr/local/etc/. W plikach tych znajdują się komunikaty mogące świadczyć o próbie ataku na nasz system. Słowa kluczowe standardowo zamieszczone przez autora programu w wymienionych zbiorach wystarczą w normalnych warunkach do zdiagnozowania ataku. Ale oczywiście nic nie stoi na przeszkodzie temu, abyśmy samodzielnie dopisywali do istniejących już list nowe pozycje.

Więcej:bezcatnews