OT: Analyza logovanych dat

Miroslav Prýmek m.prymek at gmail.com
Thu Jan 29 08:54:05 CET 2009


On 28.1.2009, at 21:31, Josef Brzak wrote:

> Ahoj,
>
>  predne se omlouvam za dotaz, ktery neni primo o BSD, ale je
>  obecneho charakteru.
>
>  Provozuji sit, kde je nekolik serveru s FreeBSD, RedHat Linuxem
>  a SuSE Linuxem. Na vsech serverech jsem si nainstaloval syslog-ng,
>  kterym jsem nahradil klasicky syslog (u RedHatu a FreeBSD). Na
>  SuSE uz se syslog-ng pouziva defaultne. Na jednom serveru v siti
>  jsem si vytvoril centralni syslog server, na ktery loguji servery
>  z cele site. Rad bych nejak nalogovana data automaticky a i on-line
>  analyzoval a podle nadefinovanych udalosti se neco stane napr.
>  posle se mail nebo SMSka. Provozujete nekdo neco podobneho? Ja jsem
>  nasel nekolik odkazu:
>
>  http://sourceforge.net/projects/syslogscripts
>  http://www.crypt.gen.nz/logsurfer/
>  http://kodu.neti.ee/~risto/sec/
>  http://web.suffieldacademy.org/ils/netadmin/docs/software/syslog/
>
>  Jde mi hlavne o prakticke poznatky. Vlastni scripty si psat nechci,
>  rad bych pouzil uz neco hotoveho.
>
>  Predem dekuji za pripadna poznatky, doporuceni nebo odkazy.
>
> 			  Pepa Brzak
>
> --
> FreeBSD mailing list (users-l at freebsd.cz)
> http://www.freebsd.cz/listserv/listinfo/users-l

Mno, s "necim hotovym" Ti nepomuzu. Ale jestli chces poznatky,
tak ja jsem na to sel od lesa tak, ze jsem si napsal skript, ktery
logy analyzuje pomoci regexu zhruba takhle:

1. mam mnozinu "templates", ze kterych se pomoci funkce vyrobi regexy:
plog.addProcessRe("sshd",template="User .+ from $hacker$ not allowed  
because not listed in AllowUsers")
plog.addProcessRe("sshd",template="Invalid user .+ from $hacker$")

2. log se prochazi a u kazdeho radku se hleda regex, ktery matchuje,  
napr:
sshd: User billgates from 207.46.248.248 not allowed because not  
listed in AllowUsers

3. ke kazdymu regexu se vytvori seznam namatchovanych hodnot a pocet,  
kolikrat se objevily, napr:
"User .+ from $hacker$ not allowed because not listed in AllowUsers"
hacker="207.46.248.248", numMatched=10
hacker="a.b.c.d", numMatched=15

4. takhle mam pravidla pro vsechno, co se normalne v lozich objevuje
5. radky, ktery se nenamatchovaly, se vypisou, protoze dost  
pravdepodobne je to neco obzvlaste
hodnyho pozornosti

Napsat takovej skript neni tezky a prijde mi to docela elegantni. Ale  
jestli chces
nutne neco hotovyho... :)

Mirek






More information about the Users-l mailing list