![]() |
| By Anonymous Bezbednost je putovanje, ne krajnji cilj. Dobra stvar tokom ovog putovanja je redovan pregled i analiza dnevnika (ili što bi neki rekli "log fajlova") "firewall"-a. (Napomena prevodioca - u daljem tekstu ću koristiti "firewall" pošto nemam inspiraciju da nađem dobru srpsku reč). Na žalost, program "syslog" proizvodi tekstualne log fajlove koji nisu laki za analizu. Takođe, ako ne koristiš program syslog-ng, tvoji firewall logovi su verovatno razbacani i učitane u razne log fajlove. Ovaj članak ti pokazuje kako da za 10-tak minuta pošalješ firewall logove iz syslog-ovih fajlova u MySQL bazu. Primer je rađen na SuSE 10.0 ali može se ponoviti na ostalim Linux-ima. 1. Potvrda podešenost kernela Ovaj korak možeš preskočiti ako koristiš standardni SuSE 10.0 kernel. Standardni kerneli koji su deo Linuksa bi trebali da rade, ali proveri da ti je kernel kompajliran (ili sabran) sa opcijama CONFIG_NETFILTER, CONFIG_IP_NF_IPTABLES, CONFIG_IP_NF_FILTER i CONFIG_IP_NF_TARGET_ULOG. Većina firewall-a će takođe zahtevati CONFIG_IP_NF_CONNTRACK, CONFIG_IP_NF_FTP i CONFIG_IP_NF_IRC. Ako imaš fajl /proc/config.gz, znači da ti je kernel sabran sa IKCONFIG opcijom. Fajl /proc/config.gz je kompresovana verzija fajla .config koji je korišćen za pravljenje kernela, tako da možeš proveriti ako imaš neophodne opcije za "netfilter" i "ulog". gunzip -c /proc/config.gz | grep -E 'CONFIG_(NETFILTER|(IP_NF_ (IPTABLE|FILTER|TARGET_ULOG)))'Ako pomenute opcije nisu moduli ili sabrane u kernel, onda moraš ponovo sabrati kernel. Postavi sledeće opcije u "menuconfig": Networking options > Network packet filtering Networking options > Netfilter Configuration > IP tables support Networking options > Netfilter Configuration > Packet filtering Networking options > Netfilter Configuration > ULOG target supportTakođe možda hoćeš da proveriš da je "iptables" sabran sa "ulog" podrškom. 2.1. Instalacija MySQL Idi na tačku 2.2 ako već imaš podešen MySQL. U protivnom: apt install mysql /etc/init.d/mysql restart chkconfig mysql onAko radiš na SuSE i nemaš instaliran "apt4rpm", ja predlažem da ga instaliraš jer će ti baš pomoći u organizovanju paketa. Takođe treba podesiti MySQL lozinku za root korisnika.
mysqladmin -u root password 'yourpassword'
2.2. Početna postavka baze podataka Kucaj:
mysql -p -u root
onda kucaj lozinku. Kada si se nakačio na MySQL dazu, kucaj sledeće komande kako bi pripremio bazu da prima firewall-ove dnevnike iz "ulog". create database ulogdb; use ulogdb; source /path/to/nulog/scripts/ulogd.mysqldump; grant select,insert,update,drop,delete,create temporary tables, on ulogdb.* to ulog@localhost identified by 'ulogpass'; flush privileges; quit;Pa, šta se ovde izdešavalo?
Treba da instaliraš demon "ulogd":
apt install ulogd-mysql
3.2. Konfigisanje ulogd.conf Promeni /etc/ulogd.conf da se podudara sa našom postavkom od ranije : [MYSQL] table="ulog" pass="ulogpass" user="ulog" db="ulogdb" host="localhost"Najbolje je da promeniš lozinku "ulogpass" na lozinku koju si postavio u GRANT komandi u tvojoj MySQL bazi. Sada isključi iz komentara sledeće linije, da bi poslao podatke u MySQL:
plugin /usr/lib/ulogd/ulogd_MYSQL.so
i komentiraj sledeće dve linije kako bi sprečio upisivanje dnevnika u tekst fajl:
#syslogfile /var/log/ulogd.syslogmenu
#plugin /usr/lib/ulogd/ulogd_LOGEMU.so Sada re-startuj "logd" demon i podesi da se automatski pokrene pri startovanju sistema sa "chkconfig":
/etc/init.d/ulogd restart
chkconfig ulogd on 4. Prosleđivanje iptables dnevnika Sledeća "sed" komanda prebacuje sva tvoja "iptables" pravila da se loguju kroz ULOG, predpostavićemo da ti imaš "iptables" pravila u fajlu "iptables" (obično u /etc/sysconfig/ ili /var/lib/).
sed 's/LOG/ULOG/'; /etc/sysconfig/iptables > /etc/sysconfig/uiptables
iptables-restore < /etc/sysconfig/uiptables I završio si sa konfiguracijom! Svi dnevnici is "firewall"-a sada idu u MySQL bazu podataka. Ne zaboravi da promeniš "firewall" skript za startovanje, tako da su nova "iptables" pravila uzeta u obzir. 5. Ubaci stare dnevnike Za sada je sve dobro, ali verovatno hoćeš takođe da imaš stare dnevnike u MySQL bazi. Evo malog Perl skripta koji ti ovo omogućava. Neke regularne ekspresije (ili patenti za pretragu teksta) su preuzete iz adcfw-log . Ti možeš naći tvoje dnevnike u /var/log/firewall-XXXXXX.gz ili /var/log/messages-XXXXXX.gz. Ubacivanje sledi:
gunzip -c /var/log/firewall-XXXXXX.gz | nf2sql.pl
Ponovi ovo za sve stare dnevnike. Za ubacivanje postojećih dnevnika (ili drugih ne-kompresovanih dnevnika) kao što su /var/log/messages ili /var/log/firewall uradi:
nf2sql.pl < /var/log/messages
To je to. 6. Analiza rezultata Za analizu dnevnika iz MySQL možeš koristiti nulog ili webfwlog . Linkovi Inspiracija za ovaj dokument je bila strana . (na Španskom jeziku). Evo razloga da ne koristiš dnevnike u obliku teksta. Ako već nemaš svoje "iptables", možeš lako napraviti dobre sa shorewall , firehol ili firestarter . Napomena prevodioca: Ја sam 100% amater u prevođenju i veoma se dvoumim kada treba da prevedem neke reči karakteristične za oblast računara. Biće mi drago ako ima onih koji su veštiji u prevođenju i voljni da razvijaju ovaj sajt. | |||