Logwatch jest potężnym narzędziem, które pozwala na analizowanie logów systemowych. Na tej podstawie sporządza raport o stanie serwera i wyświetla nam go na standardowe wyjście lub wysyła na maila. Jest to bardzo niedoceniana aplikacja, która dostarcza nam ciekawych informacji.

Instalacja aplikacji jest bardzo prosta. Dla popularnych dystrybucji Linuksa znajdziemy gotowe paczki. W wielu z nich Logwatch będzie już domyślnie zainstalowany. Tam gdzie go nie ma, wystarczy skorzystać z menadżera pakietów odpowiedniego dla swojej dystrybucji:

yum install logwatch
apt-get install logwatch
pacman -S logwatch

Konfiguracja Logwatch

Oprogramowanie ma podejście do wielopoziomowej konfiguracji. Dlatego w systemie znajdziemy kilka miejsc, w które warto zajrzeć, aby skonfigurować poprawnie Logwatch. Domyślna konfiguracja powinna jednak wystarczyć, ale w przypadku kiedy chcemy coś zmienić, warto zajrzeć do plików i katalogów w odpowiednich ścieżkach:

  • /usr/share/logwatch/default.conf/*
  • /usr/share/logwatch/dist.conf/*
  • /etc/logwatch/conf/*
  • argumenty przekazywane do polecenia logwatch

Głównym plikiem konfiguracyjnym jest /usr/share/logwatch/default.conf/logwatch.conf. Zawiera on ustawienia dotyczące, gdzie i jak mają być wysyłane raporty, ich formatowanie, ustawienia katalogów i tym podobne. Są tutaj zapisane domyślne opcje, których nie powinniśmy zmieniać. Jeżeli chcemy ustawić własne parametry, należy dodać je w pliku /etc/logwatch/conf/logwatch.conf

W katalogu /usr/share/logwatch/default.conf/logfiles/ znajdują się pliki z ustawieniami dla konkretnych logów aplikacji systemowych. Znajdziemy tutaj konfiguracje dla popularnych usług i serwerów takich jak HTTP, FTP, Samba, dpkg, emerge i tym podobne. Jeżeli nie ma konfiguracji naszej aplikacji, możemy tutaj stworzyć dla niej odpowiedni plik z konfiguracją.

Podobnym katalogiem jest /usr/share/logwatch/default.conf/services/. Znajdują się tutaj ustawienia dla usług, które piszą w tym samym czasie do tego samego pliku np. do (messages, dmesg, boot).

Korzystanie z Logwatch

Uruchomienie samego polecenia logwatch powinno nam wygenerować raport. W zależności od domyślnych ustawień w danej dystrybucji, raport pojawi się nam na konsoli lub zostanie wysłany na konto pocztowe użytkownika root.

Przykładowy raport logwatch

 ################### Logwatch 7.3.6 (05/19/07) ####################
        Processing Initiated: Sun Feb 10 03:47:03 2013
        Date Range Processed: yesterday
                              ( 2013-Feb-09 )
                              Period is day.
      Detail Level of Output: 0
              Type of Output: unformatted
           Logfiles for Host: bocian
  ##################################################################

 --------------------- pam_unix Begin ------------------------

 su-l:
    Sessions Opened:
       root -> root: 1 Time(s)

 vsftpd:
    Unknown Entries:
       authentication failure; logname= uid=0 euid=0 tty=ftp ruser=anonymous rhost=example.com : 2 Time(s)
       check pass; user unknown: 2 Time(s)


 ---------------------- pam_unix End -------------------------


 --------------------- Postfix Begin ------------------------

      867   Miscellaneous warnings

  443.753K  Bytes accepted                           454,403
  453.104K  Bytes delivered                          463,979
 ========   ================================================

      390   Accepted                                 100.00%
 --------   ------------------------------------------------
      390   Total                                    100.00%
 ========   ================================================

       99   Connections made
       99   Disconnections
      390   Removed from queue
      289   Delivered
      102   Sent via SMTP
        1   Forwarded

       66   Connection failure (outbound)




 **Unmatched Entries**
        1   Feb  9 20:55:26 example postfix/smtpd[20197]: improper command pipelining after QUIT from localhost[127.0.0.1]
        1   Feb  9 01:22:33 example postfix/smtpd[10705]: improper command pipelining after QUIT from localhost[127.0.0.1]

 ---------------------- Postfix End -------------------------


 --------------------- Connections (secure-log) Begin ------------------------


 **Unmatched Entries**
    su: PAM adding faulty module: /lib64/security/pam_fprintd.so: 1 Time(s)
    su: PAM unable to dlopen(/lib64/security/pam_fprintd.so): /lib64/security/pam_fprintd.so: cannot open shared object file: No such file or directory: 1 Time(s)

 ---------------------- Connections (secure-log) End -------------------------


 --------------------- SSHD Begin ------------------------


 Users logging in through sshd:
    zaba:
       example.com: 1 time

 **Unmatched Entries**
 reverse mapping checking getaddrinfo for example.com [1.1.1.1] failed - POSSIBLE BREAK-IN ATTEMPT! : 1 time(s)

 ---------------------- SSHD End -------------------------


 --------------------- Sudo (secure-log) Begin ------------------------


 ==============================================================================

 zaba => root
 -------------
 /bin/su - 1 Times.


 **Unmatched Entries**
    PAM adding faulty module: /lib64/security/pam_fprintd.so: 1 Time(s)
    PAM unable to dlopen(/lib64/security/pam_fprintd.so): /lib64/security/pam_fprintd.so: cannot open shared object file: No such file or directory: 1 Time(s)
 ---------------------- Sudo (secure-log) End -------------------------


 --------------------- XNTPD Begin ------------------------


 Total synchronizations 12 (hosts: 4)

 ---------------------- XNTPD End -------------------------


 --------------------- Disk Space Begin ------------------------

 Filesystem            Size  Used Avail Use% Mounted on
 /dev/md2             1016G  120G  845G  13% /
 /dev/md1              496M  109M  362M  24% /boot
 /dev/md3              1.7T  197M  1.6T   1% /home


 ---------------------- Disk Space End -------------------------


 ###################### Logwatch End #########################

Domyślnie raporty generowane są raz dziennie, dzięki skryptowi /etc/cron.daily/0logwatch

  • JonyBravo

    urpmi logwatch
    A Mageia/Mandriva/ROSA to k…. co?

    • Mandriva ledwo żyje ;-) Na FOSDEMie spotkałem jednego półprzytomnego/pijanego developera Mandrivy. Spojrzał na mnie i bełkocząc wydukał "We are still alive" po czym padł trupem :D

      W przeciwieństwie do ekipy z Mageia. Ci nawet mieli swoje stanowisko ;-)

    • tokat

      No bez przesady bo zaraz będzie trzeba dodać polecenia dla FreeBSD, Gentoo, Slackware i całej reszty :D

    • guitarrizer

      Dla Slackware proszę bardzo:

      ./configure
      make
      make install
      ;-)

    • JohnyBrafo

      Hahhaa… to taki specyficzny menadżer pakietów. ;-)
      Jeszcze warto (albo i nie) dodać zyppera.

    • W sumie to takie uniwersalne :P

  • RokU

    Odpaliłem na domowym serwerku i masa ciekawych informacji doszła. Głównie próby ataku na mój FTP.