2004 03 Analiza logów systemowych [Administracja]


dla początkujących
Zobacz w:
Analiza logów systemowych
Piotr Machej
trakcie używania komputera (obojętnie, ogniowej informowały tylko o kilkudziesięciu skanowa-
czy do pracy, czy do rozrywki) używamy niach portów. Uśmiechnąłem się widząc, że ktoś próbo-
wielu różnych programów. Wiele z nich wał włamać się na serwer wykorzystując starą lukę w IIS
Wdziała w tle, bez naszego udziału. Nie do Microsoftu. Chyba nawet nie potrafił sprawdzić, jaki serwer
pomyślenia byłoby, gdyby wszystkie te programy wyrzuca- WWW jest zainstalowany. No cóż, script-kiddies przydają
ły na ekran wyniki swoich działań lub komunikaty błędów. się przynajmniej do poprawiania humoru, o ile ma się uak-
W takim systemie nie dałoby się pracować. Z tego powodu tualniony system.
większość tych informacji zapisywana jest w dziennikach Przed wyjściem do miasta sprawdziłem jeszcze logi
systemowych (plik dziennika systemowego nazywamy też dzielenia łącza. Od aktualizacji oprogramowania i jądra
logiem lub dziennikiem zdarzeń). tydzień temu, w końcu zdawało się działać poprawnie.
Kontrolowanie wpisów w logach daje możliwość Z zadowoleniem wyłączyłem konsolę administratora,
wykrycia nieprawidłowości w konfiguracji i funkcjonowa- rozegrałem partyjkę w Go (znów przegrałem o 1,5 moku)
niu naszego systemu. Oprócz tego, jest to jedno ze zró- i zgasiwszy monitor wyszedłem na spacer. Jeśli coś się
deł informacji o wszelkich próbach włamań, więc należy będzie działo złego, to system i tak powiadomi mnie o tym
regularnie przeglądać logi systemowe w poszukiwaniu SMS-em.
wszelkich odchyleń od normy. Oczywiście, w przypad-
ku systemów produkcyjnych zainstalowanych w firmach, Podstawowe pliki logów
zwykle zatrudniony jest w tym celu administrator bezpie- Nie da się skutecznie śledzić dzienników systemowych bez
czeństwa. Nie należy jednak sądzić, że komputery domowe wiedzy na temat ich lokalizacji i zastosowania. W więk-
są bezpieczne, bo  komu by się chciało włamywać do szości przypadków pliki logów znajdują się w katalogu
mojego komputera . Nasz system może być wykorzystany /var/log/ i jego podkatalogach. Za zapis do odpowiednich
przez  czarne kapelusze , choćby do przygotowania rozpro- plików poszczególnych informacji dotyczących działania
szonego ataku odmowy usługi (DDOS), czy po prostu jako systemu odpowiada demon Syslogd. Oprócz tego istnieje
 przystanek podczas dokonywania włamania do innego demon Klogd, odpowiedzialny za przechwytywanie komu-
systemu. nikatów jądra systemu.
Nie ulega wątpliwości, że analizowanie logów w syste- Plikiem konfiguracyjnym demona Syslogd jest plik /etc/
mie wielozadaniowym (jakim jest Linux) może być bardzo syslogd.conf. Z niego możemy dowiedzieć się, jakie infor-
czasochłonne. Stworzono szereg programów mających macje są kierowane do poszczególnych plików. Każda jego
na celu ułatwienie pracy administratorom  pomagają od linia ma postać:
razu zwrócić uwagę na najistotniejsze dla bezpieczeństwa
wpisy. Oprócz tego, takie programy pozwalają na tworzenie urządzenie.priorytet plik_logu
rozbudowanych statystyk, co szczególnie przydaje się przy
analizie logów serwerów WWW lub proxy.
Przykład użycia
Gdy rano sprawdziłem pocztę, znalazłem codzienny raport
z logów. Znów jakiś wirus rozsyłał po sieci stosy listów. Na
szczęście program antywirusowy w połączeniu z odsiewa-
niem spamu odrzucił większość przesyłek. Przynajmniej
użytkownicy nie będą zbytnio narzekać. Logi zapory
O autorze:
Autor zakończył studia zaoczne na V roku Informatyki na
Politechnice Opolskiej. Z Linuksem (i ogólnie systemami
uniksowymi) ma styczność od wielu lat. Obecnie admi-
nistruje siecią blokową złożoną z dziesięciu komputerów.
Kontakt z autorem: autorzy@linux.com.pl.
Rysunek 1. Oto skutek zerwanego kabla  dwa dni bez sieci
46 marzec 2004
analiza logów systemowych
Pole urządzenie określa, skąd pochodzą informacje. Może
przyjmować takie wartości, jak:
" authpriv  informacje dotyczące bezpieczeństwa i auto-
ryzacji;
" cron  demony Cron i At;
" daemon  demony systemowe bez osobnej wartości
urządzenie;
" ftp  demon FTP;
" kern  wiadomości jądra;
" lpr  system drukowania;
" mail  system pocztowy;
" news  system wiadomości news (USENET );
" syslog  wewnętrzne komunikaty demona Syslogd;
" user  wiadomości programów użytkownika;
Rysunek 2. Możemy określić, które słowa są dla nas alarmujące
" uucp  system UUCP;
" local0 do local7  zarezerwowane do lokalnego rzystywane są następujące pliki znajdujące się w katalogu
użytku. /var/log/:
W polu priorytet określamy, jakie informacje chcemy " messages  plik ogólnego przeznaczenia; są tu logowa-
logować. Do dziennika systemowego określonego w polu ne zarówno komunikaty jądra podczas startu systemu,
plik_logu trafią te informacje, które mają priorytet równy jak i informacje wysyłane przez różne programy uru-
lub wyższy od podanego w polu priorytet. Pole to może chomione w systemie;
przyjmować następujące wartości (poczynając od najniższe- " secure  plik zawierający informacje dotyczące bezpie-
go priorytetu): debug, info, notice, warning, err, crit, alert czeństwa oraz dane o autoryzacji użytkowników w sys-
oraz emerg. Możemy również zabronić zapisywania infor- temie;
macji z wybranego urządzenia w pliku  wystarczy w polu " maillog  tu logowane są wszystkie informacje wysyła-
priorytet użyć wartości none. Zarówno pole urządzenie, ne przez system pocztowy;
jak i priorytet, może przyjmować wartość *, oznaczającą " cron  komunikaty o uruchamianiu zadań przez
wszystkie dostępne urządzenia i priorytety (odpowiednio). demony Cron, Anacron oraz At;
Przykładowa linia z pliku /etc/syslog.conf może wyglą- " spooler  informacje krytyczne z działania systemów
dać tak: UUCP i news;
" boot.log  komunikaty wyświetlane podczas startu sys-
S
*.info;mail.none;news.none;authpriv.none;cron.none temu.
/var/log/messages
Oprócz powyższych plików, w katalogu /var/log/ mogą
Powoduje ona, że do pliku /var/log/messages zostaną znalezć się inne pliki i podkatalogi tworzone przez zainsta-
zapisane wszystkie wiadomości o priorytecie info lub wyż- lowane oprogramowanie. Przykładowo często znajdziemy
szym, ze wszystkich urządzeń z wyjątkiem wiadomości tam podkatalogi cups/ (systemu drukowania), httpd/ (logi
z systemów poczty, news, Crona i informacji dotyczących serwera WWW), samba/ (komunikaty z działania Samby)
bezpieczeństwa. czy squid/ (informacje o serwerze pośredniczącym).
Jeśli chcemy te same informacje wysyłać na niewy- Nie należy dziwić się, jeśli oprócz pliku messages
korzystywaną konsolę (np. na dziesiątą), możemy wpisać w katalogu /var/log/ znajdą się pliki messages.1, messages.2
w pliku /etc/syslog.conf linię podobną do poniższej: itd. Może to również dotyczyć innych plików. Jest to wynik
działania demona LogRotate, odpowiedzialnego za rotację
S
*.info;mail.none;news.none;authpriv.none;cron.none logów. Rotacja ma na celu uniknięcie przepełnienia dysku.
/dev/tty10 Plik z logiem co pewien czas ma zmienianą nazwę (doda-
wana jest cyfra). W ten sposób przechowywanych jest kilka
Dzięki temu po zrestartowaniu demona Syslogd (np. pole- archiwalnych kopii pliku, z których najstarsza jest usuwana
ceniem /etc/rc.d/init.d/syslog restart) i przełączeniu przy kolejnej rotacji.
się na dziesiątą konsolę (klawiszami [Alt]-[F10 ]), będziemy
mogli na bieżąco czytać informacje dopisywane do pliku Analiza logów w trybie tekstowym
/var/log/messages. Jeśli szukamy w logach konkretnej informacji, najszyb-
Analizując plik syslog.conf, możemy zorientować się ciej znajdziemy ją wykorzystując podstawowe narzędzia
w przeznaczeniu części plików dziennika systemowego. dostępne z konsoli. Najprostszym z tych poleceń jest
W domyślnie zainstalowanym systemie najczęściej wyko- grep.
www.linux.com.pl 47
dla początkujących
Przypuśćmy, że chcemy sprawdzić, czy ktoś odwiedza W moim przypadku listów takich było niewiele, więc pole-
naszą stronę. Wiemy już, że logi serwera WWW prze- cenie to zwróciło jednocyfrowy wynik:
chowywane są w katalogu /var/log/httpd/. Informacje
o odwiedzinach zawarte są w pliku access_log. Jeśli więc 2
stworzyliśmy stronę i opublikowaliśmy ją pod adresem http://
nasz.serwer/~uzytkownik/strona/, to możemy poszukać Bardzo przydatne może okazać się polecenie Awk. Jest to
informacji o niej: właściwie cały język wyszukiwania i przetwarzania wzor-
ców. Zobaczmy przykładowo, jak z plików secure wyłuskać
grep uzytkownik/strona /var/log/httpd/access_log* informację o tym, kto i z jakiego komputera logował się do
naszego systemu:
Jeśli w plikach access_log* znajdują się jakieś linie zawiera-
S
jące tekst uzytkownik/strona, to zostaną one wyświetlone awk '/Accepted/ {print $9 "\t" $7 "\t" $11}'
na ekranie. Przykładowo może to wyglądać tak: /var/log/secure* | sort | uniq
S
access_log.1:127.0.0.1 - - [28/Jan/2004:13:17:41 +0100] Przykładowy wynik może wyglądać tak:
S
"GET /~uzytkownik/strona/ HTTP/1.1" 200 1603 "-"
S
"Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.4) gerard password 192.168.100.200
Gecko/20030704" gerard publickey 192.168.100.200
S
access_log.1:127.0.0.1 - - [28/Jan/2004:13:17:41 +0100] ktosik publickey 215.13.57.4
S
"GET /~uzytkownik/strona/style.css HTTP/1.1" 200 648
S
"http://localhost/~uzytkownik/strona/" "Mozilla/5.0 W zestawieniu tym mamy podane nazwy użytkowników
(X11; U; Linux i686; pl-PL; rv:1.4) Gecko/20030704" logujących się do naszego komputera za pomocą SSH,
wykorzystaną metodę autoryzacji (hasło lub klucz publicz-
Z powyższych linii możemy dowiedzieć się, że dnia 28 ny) oraz adres komputera, z którego nawiązano połączenie.
stycznia 2004 roku o godzinie 13:17 jeden z użytkowników Nie mamy tu informacji na temat ilości połączeń  dzięki
naszego komputera (localhost  127.0.0.1) wszedł na stronę kombinacji poleceń sort i uniq wyeliminowaliśmy wszyst-
o adresie http://localhost/~uzytkownik/strona/. Strona ta kie powtórzenia. Jeśli interesują nas konkretne linie doty-
została wysłana do niego bez problemu (kod 200) i miała czące pierwszego z wymienionych połączeń, to możemy
rozmiar 1603 bajty. Oprócz tego, strona ta korzystała znów skorzystać z grepa:
z arkusza stylów umieszczonego w pliku style.css o rozmia-
rze 648 bajtów. Użytkownik wchodzący na stronę korzystał grep "password.*gerard.*192.168.100.200" /var/log/secure*
z przeglądarki przedstawiającej się jako Mozilla. Informacje
te znajdują się w pliku archiwalnym access_log.1. Przykładowo, możemy uzyskać w wyniku następujący
Możemy także sprawdzić adres MAC naszej karty sie- wydruk (zacytowano jedynie fragment):
ciowej:
S
secure:Jan 25 03:43:49 illusion sshd[6498]:
S
dmesg | grep eth Accepted password for gerard from
192.168.100.200 port 52790 ssh2
Polecenie to w moim systemie drukuje następujące infor-
macje:
divert: allocating divert_blk for eth0
S
eth0: RealTek RTL8139 Fast Ethernet at 0xd17ea000,
00:01:29:24:0d:2f, IRQ 10
eth0: Identified 8139 chip type 'RTL-8139B'
Interesujący nas adres MAC to 00:01:29:24:0d:2f. Przy
okazji dowiadujemy się, że jest to karta oparta na chipie
RealTek RTL8139B.
Oprócz użycia grepa, możemy wykorzystać również
inne polecenia. Poniższe polecenie powoduje zliczenie
listów wysłanych 11 i 12 stycznia (serwerem poczty jest
Postfix):
grep sent /var/log/maillog* | grep "Jan 1[12]" | wc -l Rysunek 3. W Webminie możemy nie tylko przeglądać logi, ale
również dodawać nowe
48 marzec 2004
analiza logów systemowych
min z umiejętności wykorzystania wyrażeń regularnych
oraz z wiedzy na temat działania systemu. Dla początku-
Opcje polecenia Logwatch:
jących jest to świetna możliwość zdobycia nowej wiedzy
" detail poziom  ustawia poziom szczegółowości raportu;
i umiejętności. Nie zawsze jednak chcemy lub mamy
można użyć wartości low (niska), med (średnia) i high
czas samodzielnie się wszystkim zajmować. Z pomocą
(wysoka) lub wartości liczbowych od 0 (niska) do 10
przychodzą nam inni programiści, którzy stworzyli wiele
(wysoka);
programów i filtrów na różne sposoby przetwarzające logi
" logfile nazwa_logu  ogranicza analizę do wskazane-
i wyłuskujące istotne informacje.
go pliku (lub plików, bo tej opcji można użyć kilkakrot-
nie) dziennika systemowego; LogWatch użyje filtrów
Red Hat LogViewer
powiązanych ze wszystkimi usługami korzystającymi ze
W Auroksie mamy do dyspozycji bardzo przyjemne narzę-
wskazanego pliku;
dzie, które zwalnia nas z konieczności stosowania polece-
" service nazwa_usługi  ogranicza analizę do wskazanej
usługi (lub usług  opcja może być użyta wielokrotnie); nia grep. Red Hat LogViewer, bo o tym programie mowa,
LogWatch przeanalizuje wszystkie pliki dziennika sys-
dostępny jest z menu Narzędzia systemowe  > System logs.
temowego wykorzystywane przez tą usługę; przydatną
Oczywiście pod warunkiem, że zainstalowaliśmy go w sys-
wartością nazwa_usługi jest All, pozwalająca wskazać
temie. Jeśli nie, to możemy go znalezć na pierwszej płycie
wszystkie dostępne usługi;
instalacyjnej.
" print  powoduje wysłanie wyniku na standardowe
Program ten jest bardzo prosty w użyciu. Po lewej stro-
wyjście (np. na ekran);
nie mamy do wyboru różne pliki dziennika systemowego.
" mailto adres  wysyła wynik na adres e-mail lub do
Gdy wybierzemy jeden z nich, jego zawartość pojawi się
użytkownika podanego jako adres;
w głównym oknie. Wpisy zasługujące na uwagę oznaczo-
" archives  powoduje, że LogWatch oprócz właściwego
ne są czerwonym wykrzyknikiem. W polu Filter for mamy
pliku logu analizuje również pliki archiwalne (np. messa-
ges.1 i następne w przypadku logu messages), oczywi- możliwość wpisania wyrażenia, które chcemy odszukać
ście z uwzględnieniem wartości opcji range; w logu. Po wciśnięciu przycisku Filter na ekranie pozostaną
" range  pozwala określić zakres analizowanych dat;
tylko linie zawierające to wyrażenie.
obecnie dostępne są tylko trzy wartości: Today (dzisiaj),
W menu Edit  > Preferences możemy wskazać lokali-
Yesterday (wczoraj) i All (wszystkie dni);
zacje poszczególnych plików logów, ustawić czas odświe-
" debug poziom  opcja przydatna podczas rozwiązywa-
żania, a także wskazać wyrażenia, które powinny być
nia problemów oraz analizowania działania programu
oznaczane wykrzyknikiem.
LogWatch; wartość poziom może wynosić od 0 do 10
Program ten nie jest szczególnie rozbudowany, lecz
(powyżej 10 jest sens ustawiać tylko wartości większe od
z pewnością spełnia swoją funkcję  pozwala w wygodny
100, gdyż wtedy nie jest usuwany katalog roboczy);
sposób przeglądać logi.
" save nazwa_pliku  zamiast drukować lub wysyłać
listem e-mail, zapisuje wynik analizy do pliku o nazwie
Webmin
nazwa_pliku;
" logdir katalog  poleca szukać plików z logami w katalo- Ten popularny program służący do administracji systemem
gu katalog zamiast w standardowej lokalizacji;
za pośrednictwem WWW nie mógł się obyć bez przeglądar-
" hostname nazwa_hosta  w raportach używa nazwa_
ki logów. W sekcji System  > Logi systemowe mamy dostęp
hosta zamiast nazwy zdefiniowanej dla tego systemu;
do ustawień znanych nam już z pliku /etc/syslogd.conf.
jeśli w pliku konfiguracyjnym /etc/log.d/logwatch.conf
Tym razem możemy skonfigurować każdy log za pomocą
włączyliśmy opcję HostLimit, to użycie opcji hostname
interfejsu graficznego, co dla wielu osób jest łatwiejsze
w linii poleceń spowoduje analizowanie tylko wpisów
i wygodniejsze.
dotyczących hosta o nazwie nazwa_hosta; wyjątkiem
Niestety, samo przeglądanie logów nie jest tu zbyt roz-
są pliki logów nie zawierające informacji o nazwie hosta
budowane. Jedyne, co możemy zrobić, to wybrać liczbę
(pliki te będą przetwarzane niezależnie od wartości opcji
linii do wyświetlenia oraz wyświetlić tylko linie zawierające
HostLimit);
wprowadzony tekst. Pod tym względem lepszy wydaje się
" usage  wypisuje informacje o dostępnych opcjach;
" help  to samo, co usage; Red Hat LogViewer.
LogWatch  automatyczne
S
secure.1:Jan 31 01:48:13 illusion sshd[28930]: wykrywanie podejrzanych wpisów
S
Accepted password for gerard from W wyłuskiwaniu nietypowych wpisów w dziennikach sys-
192.168.100.200 port 2203 temowych może nam pomóc program LogWatch. Narzędzie
to codziennie przegląda wybrane pliki i przepuszcza je przez
W powyższym przykładzie illusion jest nazwą komputera, odpowiednie filtry. Informacje sformatowane przez te filtry
na którym znajdują się logi. wysyłane są pocztą e-mail na adres administratora. Nie
Samodzielne analizowanie logów stwarza duże pole zawsze muszą one wzbudzać nasze podejrzenia  często są
do popisu wszystkim programistom. To prawdziwy egza- to zestawienia, np. ilości połączeń z serwerem poczty.
www.linux.com.pl 49
dla początkujących
ta może przyjąć kilka wartości  All (wszystkie wpisy),
Yesterday (wczorajsze) oraz Today (dzisiejsze). Domyśl-
nie analizowane są wpisy z poprzedniego dnia. Warto
zaznaczyć, że opcja ta jest jeszcze bardzo niedoskonała.
W trakcie pracy z LogWatch można zauważyć, że wyniki
zwracane przez program wywoływany z Crona różnią
się od tych zwracanych podczas wywoływania programu
z linii poleceń. Dzieje się tak, gdyż LogWatch pobiera daty
w formacie zależnym od wykorzystywanego w systemie
języka. Załóżmy, że dziś jest 2 luty, a w naszym systemie
zmienna środowiskowa $LANG ustawiona jest na  pl_PL
(można to sprawdzić poleceniami locale lub echo $LANG).
W takim przypadku użycie opcji  range yesterday spowo-
duje wyszukiwanie linii z datą lut 1. Gdy jednak zmienna
$LANG ustawiona jest na  C , to poszukiwane będą linie
Rysunek 4. Wiele programów wspomagających analizę logów
z datą Feb 1. Jak więc widać, obecnie jedyną naprawdę
z powodzeniem działa pod konsolą
bezpieczną wartością opcji  range jest All. Dzięki niej
zostaną przeanalizowane wszystkie linie.
Instalacja Oprócz tego, możemy określić, jak bardzo szczegó-
W przypadku dystrybucji Aurox program LogWatch łowe raporty chcemy otrzymywać. Służy do tego opcja
dostarczany jest na pierwszej płycie instalacyjnej. Detail, która może przyjąć wartości Low (niewiele szcze-
Możemy sprawdzić, czy jest zainstalowany w systemie gółów  domyślna), Med (średnia ilość szczegółów) oraz
poleceniem rpm -q logwatch. Powinniśmy uzyskać nazwę High (dużo szczegółów). Zamiast tych trzech wartości
pakietu wraz z numerem wersji. Jeśli zamiast tego otrzy- możemy użyć liczb od 0 (odpowiada to Low) do 10 (od-
mamy komunikat Pakiet logwatch nie jest zainstalowany, powiednik High).
to należy zainstalować go z płyty. W tym celu montujemy Dzięki opcji Service możemy wskazać usługi, o których
pierwszą płytę instalacyjną w systemie (np. mount /mnt/ chcemy uzyskać informacje  wartość tej opcji wskazuje
cdrom), po czym instalujemy nasz pakiet  rpm -Uvh /mnt/ nazwy filtrów (znajdujących się w katalogu /etc/log.d/
cdrom/RedHat/RPMS/logwatch*.rpm. scripts/services/ ), których chcemy użyć. W większości
Jeśli wolimy skorzystać z bardziej aktualnej wersji, przypadków najlepiej pozostawić tę opcję w ustawieniu
możemy ją pobrać z witryny domowej programu (http:// All, dzięki czemu uruchamiane będą wszystkie filtry.
www.logwatch.org/ ). W chwili pisania artykułu najnow- Jeśli z jakiegoś powodu chcemy jednak któryś wyłą-
sza dostępna wersja stabilna nosiła numer 5.0. Warto czyć, możemy poniżej umieścić dodatkową linię Service
ją zainstalować choćby dlatego, że udostępnia większą z nazwą wyłączanego filtru poprzedzoną znakiem minusa
liczbę przydatnych filtrów. (np. Service = -cron).
Zaraz po instalacji LogWatch jest w zasadzie gotowy Wiemy już, że w katalogu /etc/log.d/scripts/services/
do użycia. Zwykle nie ma potrzeby ingerencji w pliki znajdują się filtry dotyczące konkretnych usług. Oprócz
konfiguracyjne. Jeśli jednak chcemy rzeczywiście wie- tego, w katalogu /etc/log.d/scripts/ znajdują się jeszcze dwa
dzieć, co się dzieje w naszym systemie, to powinniśmy podkatalogi zawierające filtry. Są to logfiles/ oraz shared/,
to zrobić. zawierające odpowiednio filtry dotyczące konkretnych
plików logów oraz filtry wspólne dla kilku różnych usług
Konfiguracja lub logów. Same filtry to po prostu skrypty, napisane
Większość plików znajduje się w katalogu /etc/log.d/. zwykle w języku Perl (ale niekoniecznie). Możemy więc
Główny plik konfiguracyjny to logwatch.conf (właściwie jest (jeśli znamy ten język w wystarczającym stopniu) samo-
to łącze symboliczne do pliku conf/logwatch.conf ). Zawiera dzielnie przeanalizować poszczególne filtry, a nawet napi-
on domyślne ustawienia, które są stosowane w przypadku sać własne.
pominięcia poszczególnych opcji w linii poleceń. Przy Wspomniane wyżej filtry mają za zadanie przeszukać
zmianach posługujemy się naszym ulubionym edytorem pliki dzienników systemowych i wydobyć z nich pewne
(np. Vim, mcedit czy pico). informacje. W katalogu /etc/log.d/conf/logfiles/ znajdują
Na samym początku możemy ustawić adresata listów się pliki konfiguracyjne określające lokalizację dzienni-
informacyjnych (MailTo). Domyślnie jest to użytkownik ków systemowych oraz archiwów. W katalogu /etc/log.d/
root, ale możemy wskazać dowolnego innego lub nawet conf/services/ znajdziemy pliki konfiguracyjne dotyczące
wpisać pełny adres e-mail. poszczególnych usług. Wskazują one między innymi, które
Inną ważną opcją jest Range  określa ona, które wpisy pliki logów lub które fragmenty tych plików dotyczą kon-
w dziennikach systemowych będą analizowane. Opcja kretnej usługi.
50 marzec 2004
analiza logów systemowych
Uruchamianie
R E K L A M A
Wraz z instalacją pakietu w katalogu /etc/cron-daily/ zosta-
je umieszczony plik o nazwie 00-logwatch. Właściwie
jest to łącze symboliczne prowadzące do pliku /etc/log.d/
scripts/logwatch.pl. Dzięki temu, demon Cron będzie dbał
o codzienne uruchamianie programu LogWatch. Listy e-mail
z wynikami działania filtrów będą wysyłane na konto okre-
ślone w pliku /etc/log.d/logwatch.conf w zmiennej MailTo.
Nie jest to jedyna metoda uruchomienia programu. Jeśli
potrzebujemy w danej chwili wyniku działania konkret-
nego filtru, możemy uruchomić LogWatch z linii poleceń.
Wywołanie polecenia logwatch bez parametrów spowoduje
użycie domyślnych opcji ustawionych w pliku konfigura-
cyjnym. Zależnie od tego, co chcemy osiągnąć, możemy
jednak wykorzystać różne parametry. Przykładowo, jeśli
chcemy sprawdzić komunikaty demona init (np. o zmianie
poziomu runlevel), możemy użyć polecenia:
S
logwatch --detail high --archives --service init
--range all --print
Poniżej nagłówka informującego o dacie i warunkach
wykonywania raportu, w sekcji zamkniętej liniami Init
Begin i Init End znajdziemy wynik działania filtru. Może
mieć on postać:
Entered or switched to runlevel 0: 2 Time(s)
Entered or switched to runlevel 6: 34 Time(s)
Jak widać, zestawienie to informuje nas, że dwukrotnie
system przechodził do poziomu runlevel 0, natomiast to
poziomu runlevel 6 przechodził 34 razy. Informacje te uzy-
skamy tylko korzystając z opcji  detail high, gdyż nie są one
na tyle istotne, aby umieszczać je przy niższych poziomach
szczegółowości.
W rozdziale Analiza logów w trybie tekstowym wydo-
bywaliśmy z logu secure informacje o tym, kto logował się
do naszego komputera z pomocą ssh. LogWatch również informacji. Autor filtru sshd przewidział możliwość wyświe-
pozwala nam uzyskać te informacje. Wystarczy, że użyjemy tlenia dodatkowych informacji w przypadku użycia opcji
polecenia:  detail 20 lub wyższej. W takim przypadku powyższe
informacje mogłyby wyglądać tak:
S
logwatch --detail high --service sshd  range=all
--archives --print gerard:
192.168.100.200:
Może ono zwrócić dosyć obszerny wynik, jednak nas w tej publickey: 20 times
chwili interesują linie umieszczone w bloku Users logging in password: 1 time
through sshd. We wspomnianym przykładzie linie te mogą ktosik:
wyglądać na przykład tak: 215.13.57.4:
publickey: 7 times
gerard:
192.168.100.200: 21 times Daje nam to znacznie bardziej szczegółowy raport niż nasze
ktosik: krótkie polecenie awk. A to tylko mały wycinek informacji,
215.13.57.4: 7 times jakie udostępnia nam filtr sshd.
Jeśli chcemy zapoznać się z raportami na temat kilku
Przy okazji filtru sshd chciałbym zwrócić uwagę, że high wybranych usług, możemy tego dokonać jednym polece-
niekoniecznie jest najwyższym poziomem szczegółowości niem, np.:
www.linux.com.pl 51
dla początkujących
odwiedzić serwis FreshMeat (http://freshmeat.net/ ), gdzie
między innymi w sekcji Browse  > System  > Logging znaj-
dziemy co najmniej kilkadziesiąt tego typu programów.
Zachęcam do samodzielnych poszukiwań, a w ramce
W Sieci zamieszczam odnośniki do kilku wybranych pro-
jektów.
Zakończenie
Przeglądanie i analizowanie logów systemowych ma sens.
Pozwala nam na wykrycie błędów w konfiguracji systemu,
 doszlifowanie go i dopasowanie do naszych potrzeb. Ana-
lizując logi rutera możemy dostosowywać podział łącza tak,
aby korzystanie z niego było jak najbardziej komfortowe
dla użytkowników. Logi serwera WWW mogą nam wska-
zać błędy w konstrukcji naszych serwisów. Mogą nas też
Rysunek 5. Na witrynie programu LogWatch znajdziemy dokładne
powiadomić o próbach włamań (oby nieudanych).
wskazówki, jak stworzyć własne filtry
Jeśli chodzi o włamania, trzeba zdawać sobie sprawę
z pewnej rzeczy. Analiza logów w tym konkretnym przy-
S
logwatch --detail high --service arpwatch padku jest często spózniona. Będzie to już jedynie czyta-
--service cron --range today --print nie historii o tym, jak ktoś dostał się do naszego systemu
i zrobił z nim, co chciał. Może być też tak, że włamywacz
Jak widać, opcji  service możemy użyć kilkakrotnie, usunie z logów wpisy świadczące o jego obecności. Uchro-
wskazując kolejne interesujące nas usługi. Powyższe pole- nić nas przed takimi sytuacjami mogą systemy wykrywania
cenie wydrukuje nam wyniki działania filtrów arpwatch włamań (IDS  Intrusion Detection System).
i cron umieszczone odpowiednio w sekcjach Arpwatch
Begin/End oraz Cron Begin/End. Program Arpwatch
W Sieci:
służy do śledzenia zmian przypisania numerów IP do
poszczególnych kart sieciowych. Informacje zwracane
" ADMLogger:
przez ten filtr mogą dotyczyć pojawienia się nowego
http://aaron.marasco.com/linux.html
komputera w sieci, jak również wymiany karty sieciowej
" AJMS:
w jednym z komputerów.
http://www.argray.org/ams/
LogWatch pozwala nam na nie wskazywanie konkret- " Analog:
nych usług. Zamiast tego, możemy wskazać plik logu, http://www.analog.cx/
" Firewall Log Daemon:
który chcemy przeanalizować. LogWatch wykorzysta
http://rouxdoo.freeshell.org/dmn/
wtedy filtry wszystkich usług powiązanych z tym pli-
" FWAnalog:
kiem. Przykładowo, możemy sprawdzić wczorajsze infor-
http://tud.at/programm/fwanalog/
macje dotyczące pliku /var/log/messages i przesłać je do
" FWLogWatch:
skrzynki pocztowej użytkownika gerard (jeśli mamy go
http://www.kyb.uni-stuttgart.de/boris/software.shtml
w systemie):
" FWReport:
http://sourceforge.net/projects/fwreport/
S
logwatch --detail low --logfile messages
" GLogWatch:
--range yesterday --mailto gerard
http://www.uberh4x0r.org/download/gkrellm/
" Log_analysis:
Użytkownik ten otrzyma list zawierający informacje takie, http://linux.umbc.edu/~mabzug1/log_analysis.html
" Log Tool:
jak komunikaty błędów zwracane przez jądro (w sekcji
http://xjack.org/logtool/
Kernel), informacje o problemach z ładowaniem modu-
" LogWatch:
łów (ModProbe), komunikaty demona Identd i inne. Warto
http://www.logwatch.org/
zwrócić uwagę, że w sekcjach niektórych filtrów może poja-
" MultiTail:
wić się linia o treści **Unmatched Entries**. Umieszczone
http://www.vanheusden.com/multitail/
po niej linie nie pasowały do żadnej z reguł filtru (chociaż
" Swatch:
dotyczyły tej konkretnej usługi).
http://swatch.sourceforge.net/
" Webalizer:
Inne narzędzia
http://www.mrunix.net/webalizer/
Programów wspomagających przeglądanie i analizę logów
" Webmin:
systemowych jest wiele. Dobór odpowiedniego zależy od http://www.webmin.com/
naszych potrzeb, umiejętności i przyzwyczajeń. Warto
52 marzec 2004


Wyszukiwarka

Podobne podstrony:
2004 03 CVS – system zarządzania wersjami [Programowanie]
ANALIZA KOMPUTEROWA SYSTEMÓW POMIAROWYCH — MSE
Sudden Strike 3 Cold War Conflicts(2004 03 25)
Analiza kosztów systemów oczyszczania spalin (2)
03 analiza wycena www przeklej pl
SAP System Administration
2004 03 GIMP 2 0 [Grafika]
4 identyfikacja i analiza fizjologicznych systemów sterowania
2004 03?obe Photoshop i Linux [Grafika]
Win XP Problemy z dostępem do logów systemowych
Inżynier Budownictwa 2004 03
25 03 11 archtektura systemu windows
analiza ryzyka dla administracji(1)
Analiza logów
Matematyka dyskretna 2004 03 Kombinatoryka

więcej podobnych podstron