Pamenu savo pirmus zingsnius su GNU/Linux, galvojau tai labai saugi sistema, stabili ir kiek keistai ziuredavau i visokius veikejus sedincius dar prie Windows 95/98... Kiek daugiau pradejas "diginti" sistemas suradau kur gi tas firewallas yra, bet ten neradau tai ko tikejausi. Kur visos taisykles ka blokuoti o ka ne ? O jeigu ir uzblokuoja, kodel nematau jokiu pranesimu ? Prabego metai ne vieni, vis dar pamenu didziausia prblema su kuria tada susiduriau. Ne, nebuvo sunku rasyti taisykles netfilter (GNU/Linux firewallas[1]), sudetingiausia buvo priversti atvaizduoti kas buvo uzblokuota ir kodel.
Sendien noriu parasyti kelis sprendimus kaip galima atlikti sia uzduoti - Netfilter logu saugojimas.
Ulogd & SQLite
Pries pradedant, mums reikia pakeisti esamas iptables rules kad naudotu NFLOG. Tarkim musu rules atrodo taip:
iptables -N LOGGING
iptables -A INPUT -j LOGGING
iptables -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "Netfilter-Dropped: " --log-level 1
iptables -A LOGGING -j DROP
Po pakeitimu turi buti taip:
iptables -N LOGGING
iptables -A INPUT -j LOGGING
iptables -A LOGGING -m limit --limit 2/min -j NFLOG --nflog-prefix "Netfilter-Dropped: " --nflog-group 10
iptables -A LOGGING -j DROP
Tie kas naudoja Vuurmuur (rekomenduoju!) gali paprasciausiai:
Svarbu, group 10 yra netlink multicast grupe, ir tas skaicius mums veliau bus reikalingas.
Toliau mums reikia instaliuoti ulogd, tai padaryti galima parasius komanda (Debian/Ubuntu):
apt-get install ulogd2-json ulogd2-sqlite3
SQLite3 nera butina naudoti, production kur kas geriau MySQL (ulogd2-mysql) arba PostgreSQL (ulogd2-pgsql), bet dabar uzteks ir SQLite.
Atsidarom ulogd config faila kuri rasim /etc/ulogd.conf ir pasalinam VISKA. Nauji parametrai siame faile bus:
[global]
# logfile for status messages
logfile="/var/log/ulogd/ulogd.log"
# loglevel: debug(1), info(3), notice(5), error(7) or fatal(8) (default 5)
loglevel=3
plugin="/usr/lib/ulogd/ulogd_inppkt_NFLOG.so"
plugin="/usr/lib/ulogd/ulogd_filter_IFINDEX.so"
plugin="/usr/lib/ulogd/ulogd_filter_IP2STR.so"
plugin="/usr/lib/ulogd/ulogd_filter_HWHDR.so"
plugin="/usr/lib/ulogd/ulogd_filter_MARK.so"
plugin="/usr/lib/ulogd/ulogd_raw2packet_BASE.so"
plugin="/usr/lib/ulogd/ulogd_output_SQLITE3.so"
plugin="/usr/lib/ulogd/ulogd_output_JSON.so"
######################################################
# This option is followed by a list of plugin instances which will start with an input plugin, contains optionnal filtering plugin and finish by an output plugin. This option may appear more than once.
# this is a stack for logging packet to SQLITE3
stack=nflog_opt:NFLOG,ifindex1:IFINDEX,base1:BASE,hwhdr1:HWHDR,ip2str1:IP2STR,sqlite3_opt:SQLITE3
#stack=nflog_opt:NFLOG,ifindex1:IFINDEX,base1:BASE,hwhdr1:HWHDR,ip2str1:IP2STR,json1:JSON
[nflog_opt]
group=10
#bufsize=0
[sqlite3_opt]
table="log"
db="/var/log/ulogd/ulogd.sqlite3db"
#buffer=0
[json1]
file="/var/log/ulogd/ulogd.json"
sync=1
timestamp=1
device="Elastic device"
boolean_label=1
[ip2str]
[base1]
[hwhdr1]
[printpkt1]
Atkreipkit demesi i [nflog_opt] esanti parametra group=10, jis turi sutapti su iptables --nflog-group 10 parametru.
Mes nurodome kad Ulogd saugotu visa imanoma informacija kokia tik gali, veliau patariu pakeisti ja pagal jusu poreikius. Kad sukurti database/tables naudokime sia komanda:
@Ghost man atrodo jie ima $ uz supporta? Kas turbut yra net labai garai . Kartais tenka leisti Elastic sistemose kaip ir naudotis, nors man asmeniskai nelabai patinka toks stuff parasytas Java/Ruby, o ir ta nauja versija Kibana baisiai apkrauna narsykle.
Screenshot'as nera mano, nes tada kai leidau/rasiau nezinojau apie toki plugina kuris "istaiso" mano teisinga json
Mon Nov 30 16:36:57 2015 <5> ulogd.c:843 building new pluginstance stack: 'nflog_opt:NFLOG,ifindex1:IFINDEX,base1:BASE,hwhdr1:HWHDR,ip2str1:IP2STR,sqlite3_opt:SQLITE3'
Mon Nov 30 16:36:57 2015 <7> ulogd.c:723 type mismatch between BASE and IFINDEX in stack
Mon Nov 30 16:36:57 2015 <7> ulogd.c:723 type mismatch between IFINDEX and NFLOG in stack
Turbūt todėl, kad tinklas pas mane ateina per br0, o ne eth0, kaip įprasta?
# ip route
default via 10.3.2.1 dev br0
10.3.2.0/24 dev br0 proto kernel scope link src 10.3.2.100
10.8.4.0/24 via 10.8.4.9 dev tun0
10.8.4.9 dev tun0 proto kernel scope link src 10.8.4.10
Nieks ir nerase jos naudoti, nekelk problemos. As rasiau kaip pakeisti savas naudojamas netfilter taisykles kad naudotu NFLOG, tikrai neturiu nei laiko nei noro rasyti kiekvienam atskirai sias taisykles, bet jeigu manai jos pavojingos tai gali pakeisti arba parasyti perspejima, etc.
@Ghost rašė:
Neteisingai nurodyti keliai iki failų. Bent jau Debian (įtariu ir Ubuntu) ulogd2 logai guli
Del logu ar biblioteku vietu kiekviena distra pasilieka teise keisti pagal savo nuoziura, tarkim pas mane Gentoo Linux /var/log/ulog/ yra teisinga vieta.
@Ghost rašė:
Kol kas užstrigau čia: ulogd.c:723 type mismatch between...
Problema del vietu isdeliojimo, ir tai truputi keista is pirmo zvilgsnio nes pas mane suveike be jokiu problemu. Greiciausiai problema bus del Ulogd2 versiju pakeitimu (skirtingos lines ulogd.c:723).
Kad suprasti kame problema galime susipazinti su visu veikimo principu.
Veikimas ten gana paprastas: nflog_opt:NFLOG,ifindex1:IFINDEX
nflog_opt - Nurodo nustatymu sekcija (ja rasi kiek zemiau config faile). NFLOG - Pluginas naudojamas kuriam ir bus nurodomi parametrai nflog_opt.
Toliau seka comma ir vel tas pats ifindex1 (config) : IFINDEX (pluginas).
Yra keletas pluginu rusiu, tai input, output ir filter.
Input pluginais nurodai is kur gausi netfilter informacija: NFLOG, ULOG (deprecated), NFCT... Output pluginai nurodo kur/kaip saugosi netfilter logus: SYSLOG, SQLITE3, MYSQL... Filter keicia gauta data is input ir ja grazina i output arba i kitam pluginui tarnauja kaip input.
Bet kaip zinoti ka mes gaunam ties Input bei Output? Su ulogd galime pasiziureti kiekvienam pluginui atskirai:
Musu naudojamas pluginas yra NFLOG, jis turi siuos parametrus bei input/output:
$ ulogd -i /usr/lib/ulogd/ulogd_inppkt_NFLOG.so
Name: NFLOG
Config options:
Var: bufsize (Integer, Default: 150000)
Var: group (Integer, Default: 0)
Var: unbind (Integer, Default: 1)
Var: bind (Integer, Default: 0)
Var: seq_local (Integer, Default: 0)
Var: seq_global (Integer, Default: 0)
Var: numeric_label (Integer, Default: 0)
Var: netlink_socket_buffer_size (Integer, Default: 0)
Var: netlink_socket_buffer_maxsize (Integer, Default: 0)
Var: netlink_qthreshold (Integer, Default: 0)
Var: netlink_qtimeout (Integer, Default: 0)
Input keys:
Input plugin, No keys
Output keys:
Key: raw.mac (raw data)
Key: raw.pkt (raw data)
Key: raw.pktlen (unsigned int 32)
Key: raw.pktcount (unsigned int 32)
Key: oob.prefix (string)
Key: oob.time.sec (unsigned int 32)
Key: oob.time.usec (unsigned int 32)
Key: oob.mark (unsigned int 32)
Key: oob.ifindex_in (unsigned int 32)
Key: oob.ifindex_out (unsigned int 32)
Key: oob.hook (unsigned int 8)
Key: raw.mac_len (unsigned int 16)
Key: oob.seq.local (unsigned int 32)
Key: oob.seq.global (unsigned int 32)
Key: oob.family (unsigned int 8)
Key: oob.protocol (unsigned int 16)
Key: oob.uid (unsigned int 32)
Key: oob.gid (unsigned int 32)
Key: raw.label (unsigned int 8)
Key: raw.type (unsigned int 16)
Key: raw.mac.saddr (raw data)
Key: raw.mac.addrlen (unsigned int 16)
Key: raw (raw data)
Tai eiliskumas su tokia taisykle stack=nflog_opt:NFLOG,base1:BASE,sqlite3_opt:SQLITE3 gausis toks:
1: NFLOG kaip input su parametrais kurie nurodomi nflog_opt.
2: BASE filtras gauna is NFLOG: raw.pkt, raw.pktlen, oob.family, oob.protocol kuriuos apdoroja ir siuncia toliau.
3: SQLITE3 saugo informacija kuria jam duoda BASE filtras.
Kiekvienas pluginas turi savo input/output kuris gali sutapti su kitu pluginu, todel patariu gerai pasitikrinti ar tikrai nera kas maisoma. Kaip jau turbut pastebejas, parametru filtrai neturi, bet juos turime nurodyti.
Pluginus/filtrus reikia rinktis pagal reikalavimus, tarkim jeigu norima saugoti RAW data is NFLOG tai uztenka:
stack=nflog_opt:NFLOG,sqlite3_opt:SQLITE3
Ir SQL sumazinti iki:
CREATE TABLE log (raw_pkt VARCHAR(254));
Nes NFLOG mums grazina raw.pkt (raw data) kuri SQLITE3 pasiima ir saugo.
NOTE: SQLITE output pluginas pakeicia . i _, greiciausiai tai galioja ir kitiems SQL output pluginams. NOTE: Ulogd2 nesvarbu koks naudojamas network interface, jis nurodomas musu atveju naudojant iptables (iptables -i eth0). NOTE: Jeigu nenori pakilti ulogd, galima pakeisti loglevel parametra esanti *ulogd.conf faile.
@Ghost problema rasant tokius postus tame, kad norint aprasyti VISKA (o tai reikia nes turim ne viena distra ir visu norai skirtingi) reikia tikrai laaabai daug rasliavos kuria skaityti kai jos daug nieks nenores
Taigi IFINDEX Input tikisi oob.ifindex_in ir oob.ifindex_out.
Žiūrim, ką atiduoda NFLOG:
# ulogd -i /usr/lib/ulogd/ulogd_inppkt_NFLOG.so
Name: NFLOG
Config options:
Var: bufsize (Integer, Default: 150000)
Var: group (Integer, Default: 0)
Var: unbind (Integer, Default: 1)
Var: bind (Integer, Default: 0)
Var: seq_local (Integer, Default: 0)
Var: seq_global (Integer, Default: 0)
Var: numeric_label (Integer, Default: 0)
Var: netlink_socket_buffer_size (Integer, Default: 0)
Var: netlink_socket_buffer_maxsize (Integer, Default: 0)
Var: netlink_qthreshold (Integer, Default: 0)
Var: netlink_qtimeout (Integer, Default: 0)
Input keys:
Input plugin, No keys
Output keys:
Key: raw.mac (raw data)
Key: raw.pkt (raw data)
Key: raw.pktlen (unsigned int 32)
Key: raw.pktcount (unsigned int 32)
Key: oob.prefix (string)
Key: oob.time.sec (unsigned int 32)
Key: oob.time.usec (unsigned int 32)
Key: oob.mark (unsigned int 32)
Key: oob.ifindex_in (unsigned int 32)
Key: oob.ifindex_out (unsigned int 32)
Key: oob.hook (unsigned int 8)
Key: raw.mac_len (unsigned int 16)
Key: oob.seq.local (unsigned int 32)
Key: oob.seq.global (unsigned int 32)
Key: oob.family (unsigned int 8)
Key: oob.protocol (unsigned int 16)
Key: oob.uid (unsigned int 32)
Key: oob.gid (unsigned int 32)
Key: raw.label (unsigned int 8)
Key: raw.type (unsigned int 16)
Key: raw.mac.saddr (raw data)
Key: raw.mac.addrlen (unsigned int 16)
Key: raw (raw data)
Staigmena, nes kaip tik gaunam oob.ifindex_in ir oob.ifindex_out. Ko tada nepatenkintas ulogd?
Ar kiekvienas filtras po saves palieka tik savo output raktų rinkinį, t.y. nepaisant 23 raktų, kuriuos išspjauna NFLOG, po IFINDEX liks tik du? Ar jie kiekvienas papildo/perrašo bendrą raktų masyvą su raktais iš savo Output rinkinio?
Ar būtina, kad kiekvieno sekančio filtro visiInput raktai būtų prieš tai einančiojo Output rinkinyje?
Nieks ir nerase jos naudoti, nekelk problemos. As rasiau kaip pakeisti savas naudojamas netfilter taisykles kad naudotu NFLOG, tikrai neturiu nei laiko nei noro rasyti kiekvienam atskirai sias taisykles, bet jeigu manai jos pavojingos tai gali pakeisti arba parasyti perspejima, etc.
iptables -N LOGGING
iptables -A INPUT -j LOGGING
iptables -A LOGGING -m limit --limit 2/min -j NFLOG --nflog-prefix "Netfilter-Dropped: " --nflog-group 10
iptables -A LOGGING -j DROP
Taigi, pagal tave, paskutinė taisyklė grandinėje turi būti DROP. Kas net nevisai logiška (loginimo grandinėje)... Todėl ir įspėju žmones, kad paskutinė taisyklė nereikalinga. Gali būti net nemalonių staigmenų, jei apdairiai nebus atverti reikiami port'ai, prieš ją įvykdant...
@Techtronic rašė: @Ghost problema rasant tokius postus tame, kad norint aprasyti VISKA (o tai reikia nes turim ne viena distra ir visu norai skirtingi) reikia tikrai laaabai daug rasliavos kuria skaityti kai jos daug nieks nenores
Visko aprašyti nebūtina, būtų užtekę paminėti, kad visa ši rašliava išbandyta Gentoo, todėl Debian/Ubuntu vartotojai neturėtų tikėtis, kad viskas veiks po copy/paste
@Ghost rašė:
Ar kiekvienas filtras po saves palieka tik savo output raktų rinkinį, t.y. nepaisant 23 raktų, kuriuos išspjauna NFLOG, po IFINDEX liks tik du? Ar jie kiekvienas papildo/perrašo bendrą raktų masyvą su raktais iš savo Output rinkinio?
Ar būtina, kad kiekvieno sekančio filtro visiInput raktai būtų prieš tai einančiojo Output rinkinyje?
Papildo.
@Ghost rašė:
Taigi, pagal tave, paskutinė taisyklė grandinėje turi būti DROP. Kas net nevisai logiška (loginimo grandinėje)... Todėl ir įspėju žmones, kad paskutinė taisyklė nereikalinga. Gali būti net nemalonių pasekmių, jei apdairiai nebus atverti reikiami port'ai, prieš ją įvykdant...
Ji reikalinga daugeliu atveju, tarkim blokuojant portus ar tam tikrus ip adresus kuriuos ir loginama (o ne visa trafika). Mano parasytas pavizdys yra tik tam kad parodyti kaip turi atrodyti rules po pakeitimu, ty pakeisti LOG i NFLOG (ka jau trecia karta rasau).
@Ghost rašė:
Visko aprašyti nebūtina, būtų užtekę paminėti, kad visa ši rašliava išbandyta Gentoo, todėl Debian/Ubuntu vartotojai neturėtų tikėtis, kad viskas veiks po copy/paste
Na sorry, sis postas nebuvo vienas is tu kuriame nieko neskaites bet sumetes visas komandas i terminala gali tiketis jog viskas veiks. Mano tikslas buvo supazindinti su paciu veikimo principu, galimybemis.
Ach, ir leisk speti, tavo gaunama "klaida" net nera klaida ? Ulogd printina tai kaip informacija, nors ulogd pilnai pasileidzia ir veikia kaip iprasta? Tikrosios priezasties kodel ulogd tai raso vis dar nesupratau, bet galiu ir vel speti jog numetus ifindex plugina i gala nebeliks ir sio uzraso (jeigu taip tai gal reiketu reportuoti tai kaip buga).
Ir antra karta esu priverstas pasikartoti, kad tiek pluginus tiek pati SQL keisti reikia visiems pagal norus, nes loginti VISISKAI VISKA ar blokuoti VISKA kaip jau pats esi parases doesn't make any sense.
Pamenu savo pirmus zingsnius su GNU/Linux, galvojau tai labai saugi sistema, stabili ir kiek keistai ziuredavau i visokius veikejus sedincius dar prie Windows 95/98... Kiek daugiau pradejas "diginti" sistemas suradau kur gi tas firewallas yra, bet ten neradau tai ko tikejausi. Kur visos taisykles ka blokuoti o ka ne ? O jeigu ir uzblokuoja, kodel nematau jokiu pranesimu ? Prabego metai ne vieni, vis dar pamenu didziausia prblema su kuria tada susiduriau. Ne, nebuvo sunku rasyti taisykles netfilter (GNU/Linux firewallas[1]), sudetingiausia buvo priversti atvaizduoti kas buvo uzblokuota ir kodel.
Sendien noriu parasyti kelis sprendimus kaip galima atlikti sia uzduoti - Netfilter logu saugojimas.
Ulogd & SQLite
Pries pradedant, mums reikia pakeisti esamas iptables rules kad naudotu NFLOG. Tarkim musu rules atrodo taip:
Po pakeitimu turi buti taip:
Tie kas naudoja Vuurmuur (rekomenduoju!) gali paprasciausiai:

Svarbu, group 10 yra netlink multicast grupe, ir tas skaicius mums veliau bus reikalingas.
Toliau mums reikia instaliuoti ulogd, tai padaryti galima parasius komanda (Debian/Ubuntu):
SQLite3 nera butina naudoti, production kur kas geriau MySQL (ulogd2-mysql) arba PostgreSQL (ulogd2-pgsql), bet dabar uzteks ir SQLite.
Atsidarom ulogd config faila kuri rasim /etc/ulogd.conf ir pasalinam VISKA. Nauji parametrai siame faile bus:
Atkreipkit demesi i [nflog_opt] esanti parametra group=10, jis turi sutapti su iptables --nflog-group 10 parametru.
Saugom, ir atsidarom nauja faila /tmp/ulogd.sql
Mes nurodome kad Ulogd saugotu visa imanoma informacija kokia tik gali, veliau patariu pakeisti ja pagal jusu poreikius. Kad sukurti database/tables naudokime sia komanda:
Dabar galime paleisti Ulogd servisa ir patikrinti ar viskas veikia. Systemd users gali paleisti Ulogd servisa tokiu budu:
O patikrinti ka jau prilogino galime parase komanda:
Tokiu budu gauname logus database, kuriuos galime panaudoti kaip tik norim.
Elasticsearch, Logstash & Kibana
Judame toliau, galime paleisti Elastic siulomas programas, tam pirma mums reikia sukurti direktorija kur mes jas instaliuosim bei atsiusti:
Config failai atrodo taip:
elasticsearch/config/elasticsearch.yml
logstash/config/ulogd.conf
kibana/config/kibana.yml
Elasticsearch nepalaiko '.', todel mums reikia pataisyti esama data, tai nera imanoma is Ulogd puses, bet logstash pluginas de_dot tai puikiai padaro.
Pakeiciame ulogd.conf faila, kad saugotu dabar ne i database, bet i JSON faila. Tam mums reikia atkomentuoti sia line:
Saugom, perkraunam ulogd servisa ir paleidziam Elastic:
Kibana pasieksime adresu http://server.lt:5601
P.S. Screenshot'as nera mano.
Placiau:
https://www.elastic.co/
http://www.netfilter.org/projects/iptables/
http://www.netfilter.org/projects/ulogd/
O kokia yra Elasticsearch licencija? Mano supratimu, nemokamai gauni tik 30 dienų?
Visos isvardintos mano programos yra atviro kodo, Elastic naudoja Apache License 2.0, Ulog (Netfilter) ir vuurmuur GNU GPL.
Source:
Elasticsearch https://github.com/elastic/elasticsearch
Logstash https://github.com/elastic/logstash
Kibana https://github.com/elastic/kibana
Vuurmuur https://github.com/inliniac/vuurmuur
Netfilter https://git.netfilter.org/
@Ghost man atrodo jie ima $ uz supporta? Kas turbut yra net labai garai . Kartais tenka leisti Elastic sistemose kaip ir naudotis, nors man asmeniskai nelabai patinka toks stuff parasytas Java/Ruby, o ir ta nauja versija Kibana baisiai apkrauna narsykle.
Screenshot'as nera mano, nes tada kai leidau/rasiau nezinojau apie toki plugina kuris "istaiso" mano teisinga json
Pas mane production vis dažniau prisireikia prisijungimų statistikos, o jei dar ir out of the box galima grafiškai iliustruoti - bomba!
Dėkui už pamoką, per šį savaitgalį ir/ar ateinačią savaitę išmėginsiu.
Apie ElasticSearch buvau girdejęs įvairių atsiliepimų, paskui, matomai, skaitęs prastų blogų ir susikūręs nuomonę, kad ES yra brangu
Šiek tiek pastabų...
Nevykdykit šios komandos:
Pagal parodytą saranką užsibetonuosit prieiga prie PC, jei dirbat per tinklą. Galit vykdyti, jei esat atsidarę reikiamus portus. Jei ne - niu niu niu.
Neteisingai nurodyti keliai iki failų. Bent jau Debian (įtariu ir Ubuntu) ulogd2 logai guli:
Ne /var/log/ulogd/.
Analogiškai x86_64 sitemoje neegzistuoja:
Jei norit naudotis čia pateiktom instrukcijom, reikia:
Kol kas užstrigau čia:
Turbūt todėl, kad tinklas pas mane ateina per br0, o ne eth0, kaip įprasta?
Nieks ir nerase jos naudoti, nekelk problemos. As rasiau kaip pakeisti savas naudojamas netfilter taisykles kad naudotu NFLOG, tikrai neturiu nei laiko nei noro rasyti kiekvienam atskirai sias taisykles, bet jeigu manai jos pavojingos tai gali pakeisti arba parasyti perspejima, etc.
Del logu ar biblioteku vietu kiekviena distra pasilieka teise keisti pagal savo nuoziura, tarkim pas mane Gentoo Linux /var/log/ulog/ yra teisinga vieta.
Problema del vietu isdeliojimo, ir tai truputi keista is pirmo zvilgsnio nes pas mane suveike be jokiu problemu. Greiciausiai problema bus del Ulogd2 versiju pakeitimu (skirtingos lines ulogd.c:723).
Kad suprasti kame problema galime susipazinti su visu veikimo principu.
Veikimas ten gana paprastas:
nflog_opt:NFLOG,ifindex1:IFINDEX
nflog_opt - Nurodo nustatymu sekcija (ja rasi kiek zemiau config faile).
NFLOG - Pluginas naudojamas kuriam ir bus nurodomi parametrai nflog_opt.
Toliau seka comma ir vel tas pats ifindex1 (config) : IFINDEX (pluginas).
Yra keletas pluginu rusiu, tai input, output ir filter.
Input pluginais nurodai is kur gausi netfilter informacija: NFLOG, ULOG (deprecated), NFCT...
Output pluginai nurodo kur/kaip saugosi netfilter logus: SYSLOG, SQLITE3, MYSQL...
Filter keicia gauta data is input ir ja grazina i output arba i kitam pluginui tarnauja kaip input.
Bet kaip zinoti ka mes gaunam ties Input bei Output? Su ulogd galime pasiziureti kiekvienam pluginui atskirai:
Musu naudojamas pluginas yra NFLOG, jis turi siuos parametrus bei input/output:
Tai eiliskumas su tokia taisykle stack=nflog_opt:NFLOG,base1:BASE,sqlite3_opt:SQLITE3 gausis toks:
1: NFLOG kaip input su parametrais kurie nurodomi nflog_opt.
2: BASE filtras gauna is NFLOG: raw.pkt, raw.pktlen, oob.family, oob.protocol kuriuos apdoroja ir siuncia toliau.
3: SQLITE3 saugo informacija kuria jam duoda BASE filtras.
Kiekvienas pluginas turi savo input/output kuris gali sutapti su kitu pluginu, todel patariu gerai pasitikrinti ar tikrai nera kas maisoma. Kaip jau turbut pastebejas, parametru filtrai neturi, bet juos turime nurodyti.
Pluginus/filtrus reikia rinktis pagal reikalavimus, tarkim jeigu norima saugoti RAW data is NFLOG tai uztenka:
Ir SQL sumazinti iki:
Nes NFLOG mums grazina raw.pkt (raw data) kuri SQLITE3 pasiima ir saugo.
NOTE: SQLITE output pluginas pakeicia . i _, greiciausiai tai galioja ir kitiems SQL output pluginams.
NOTE: Ulogd2 nesvarbu koks naudojamas network interface, jis nurodomas musu atveju naudojant iptables (iptables -i eth0).
NOTE: Jeigu nenori pakilti ulogd, galima pakeisti loglevel parametra esanti *ulogd.conf faile.
@Ghost problema rasant tokius postus tame, kad norint aprasyti VISKA (o tai reikia nes turim ne viena distra ir visu norai skirtingi) reikia tikrai laaabai daug rasliavos kuria skaityti kai jos daug nieks nenores
IFINDEX:
Taigi IFINDEX Input tikisi oob.ifindex_in ir oob.ifindex_out.
Žiūrim, ką atiduoda NFLOG:
Staigmena, nes kaip tik gaunam oob.ifindex_in ir oob.ifindex_out. Ko tada nepatenkintas ulogd?
Ar kiekvienas filtras po saves palieka tik savo output raktų rinkinį, t.y. nepaisant 23 raktų, kuriuos išspjauna NFLOG, po IFINDEX liks tik du? Ar jie kiekvienas papildo/perrašo bendrą raktų masyvą su raktais iš savo Output rinkinio?
Ar būtina, kad kiekvieno sekančio filtro visi Input raktai būtų prieš tai einančiojo Output rinkinyje?
Kaip gi nerašė, jei rašė, leisk pacituosiu
Taigi, pagal tave, paskutinė taisyklė grandinėje turi būti DROP. Kas net nevisai logiška (loginimo grandinėje)... Todėl ir įspėju žmones, kad paskutinė taisyklė nereikalinga. Gali būti net nemalonių staigmenų, jei apdairiai nebus atverti reikiami port'ai, prieš ją įvykdant...
Visko aprašyti nebūtina, būtų užtekę paminėti, kad visa ši rašliava išbandyta Gentoo, todėl Debian/Ubuntu vartotojai neturėtų tikėtis, kad viskas veiks po copy/paste
Papildo.
Ji reikalinga daugeliu atveju, tarkim blokuojant portus ar tam tikrus ip adresus kuriuos ir loginama (o ne visa trafika). Mano parasytas pavizdys yra tik tam kad parodyti kaip turi atrodyti rules po pakeitimu, ty pakeisti LOG i NFLOG (ka jau trecia karta rasau).
Na sorry, sis postas nebuvo vienas is tu kuriame nieko neskaites bet sumetes visas komandas i terminala gali tiketis jog viskas veiks. Mano tikslas buvo supazindinti su paciu veikimo principu, galimybemis.
Ach, ir leisk speti, tavo gaunama "klaida" net nera klaida ? Ulogd printina tai kaip informacija, nors ulogd pilnai pasileidzia ir veikia kaip iprasta? Tikrosios priezasties kodel ulogd tai raso vis dar nesupratau, bet galiu ir vel speti jog numetus ifindex plugina i gala nebeliks ir sio uzraso (jeigu taip tai gal reiketu reportuoti tai kaip buga).
Ir antra karta esu priverstas pasikartoti, kad tiek pluginus tiek pati SQL keisti reikia visiems pagal norus, nes loginti VISISKAI VISKA ar blokuoti VISKA kaip jau pats esi parases doesn't make any sense.
Tema perkelta iš https://legacy.ubuntu.lt/forum/viewtopic.php?f=5&t=9574