Syslog - systémové logy a jejich monitoring

Pro monitorování situace systému je nutné mít záznamy o činnosti. Tyto záznamy je nutné následně vyhodnocovat. FreeBSD má jako jakýkoliv UNIX-like systém tzv. syslog daemon, který zaznamenává určité události (standardně poslouchá na portu 514/UDP). Logy jsou ukládány do adresáře /var/log a při určité velikosti nebo stáří jsou komprimovány. Tyto komprimované soubory následně rotovány podle určitých pravidel. Jak ale syslog nastavit?

1) Nejprve je nutné nastavit syslog daemon parametrem v souboru /etc/rc.conf. Zde záleží na účelu stroje. Pro jednotlivé konfigurace používám následující parametry, vlastní je možné vytvořit po přečtení man syslogd:
- firewall, bez poslechu na portech, logování přes socket:
syslogd_flags="-ss"
- log server, poslouchá na specifikované adrese a přijímá logy pouze z určité sítě:
syslogd_flag="-b IP adresa -a Adresa sítě/maska"
- log klient, odesílá logy na specifikovanou adresu:
syslogd_flag="-A IP adresa "

2) Jako druhý je nutné nastavit soubor /etc/syslog.conf, hlavně pro použití logování na log server. Samozřejmě, co, jak a kam logovat je možné nastavit i jinam:
- log klient, odesílá logy na specifikovanou adresu, např.:
authpriv.* @IP adresa

3) Jako poslední záležitost v konfiguraci je nutné nastavit tzv. rotaci logů. Jedná se o pravidelný úklid a komprimaci starších záznamů. toto nastavení je nutné provést v souboru /etc/newsyslog.conf. Formát tohoto souboru je následující:
logfilename [owner:group] mode count size when flags [/pid_file] [sig_num]
logfilename - jméno aktuálního log souboru
[owner:group] - vlastník a skupina, není nutné
mode - mód souboru
count - počet uklizených záznamů (staré logy po komprimaci)
size - maximální velikost souboru před rotací
when - maximální stáří souboru před rotací (hodina, den, týden, měsíc nebo přesný datum)
flags - příznaky viz man newsyslog.conf
[/pid_file] - PID procesu, vytvářejícího logy
[sig_num] - signál posílaný procesu, vytvářejícího logy
Tyto nastavení lze použít například pro logy Apache, SQL serveru, SQUID (přestože má vlastní) nebo libovolných jiných procesů. Příklad úklidu logů pro Apache:
/var/log/apache/access.log   644 53   *   $W1D0  JC   /var/run/httpd.pid  30

4) Následně je nutné tyto soubory pravidelně monitorovat a vyhledávat možné problémy. Nejčastější jev je pokusy o přihlášení superuživatele nebo neexistujícího uživatele a další. Zároveň je vhodné monitorovat i aktivní prvky a další, non-UNIX, veškeré logy schraňovat a vyhledávat korelace. Tyto záznamy lze následně spojit i s informacemi např. z programu SNORT.

Upozornění:
Použití systémových záznamů jako důkazu u soudu je značně problematickou záležitostí. Aby mohly takovým způsobem být použity, musí být zaručena jejich autenticita (jediný proces má možnost ukládat tyto záznamy) a nemodifikovatelnost (není možné je podvrhnout nebo padělat). To není možné vyřešit jenom součástmi systému, navíc superuživatel je v postavení, kdy má prostředky k falzifikaci. Tyto záznamy nejsou bezcené, ale slouží primárně pro správce. Ten by měl možným útokům předcházet jejich pravidelnou analýzou.

Powered by Drupal - Design by artinet