Ulog - Elasticsearch, Logstash & Kibana

T
Techtronic
Mindaugas N.
  • 22 Lap '15

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.

Saugom, ir atsidarom nauja faila /tmp/ulogd.sql

-- 32 - INT UNSIGNED
-- 16 - SMALLINT UNSIGNED
-- 8  - TINYINT UNSIGNED
CREATE TABLE log (
-- NFLOG
       raw_pktlen                         INT UNSIGNED,
       raw_pktcount                       INT UNSIGNED,
       oob_prefix                         VARCHAR(254),
       oob_time_sec                       INT UNSIGNED,
       oob_time_usec                      INT UNSIGNED,
       oob_mark                           INT UNSIGNED,
       oob_hook                           TINYINT UNSIGNED,
       oob_seq_local                      INT UNSIGNED,
       oob_seq_global                     INT UNSIGNED,
       oob_family                         TINYINT UNSIGNED,
       oob_uid                            INT UNSIGNED,
       oob_gid                            INT UNSIGNED,
       raw_label                          TINYINT UNSIGNED,
       raw_mac_addrlen                    SMALLINT UNSIGNED,
-- BASE plugin
       ip_saddr                           VARCHAR(64),
       ip_daddr                           VARCHAR(64),
       ip_protocol                        TINYINT UNSIGNED,
       ip_tos                             TINYINT UNSIGNED,
       ip_ttl                             TINYINT UNSIGNED,
       ip_totlen                          SMALLINT UNSIGNED,
       ip_ihl                             TINYINT UNSIGNED,
       ip_id                              SMALLINT UNSIGNED,
       ip_fragoff                         SMALLINT UNSIGNED,
       ip6_payloadlen                     SMALLINT UNSIGNED,
       ip6_priority                       TINYINT UNSIGNED,
       ip6_flowlabel                      INT UNSIGNED,
       ip6_hoplimit                       TINYINT UNSIGNED,
       ip6_nexthdr                        TINYINT UNSIGNED,
       ip6_fragoff                        SMALLINT UNSIGNED,
       ip6_fragid                         INT UNSIGNED
       tcp_sport                          SMALLINT UNSIGNED,
       tcp_dport                          SMALLINT UNSIGNED,
       tcp_seq                            INT UNSIGNED,
       tcp_ackseq                         INT UNSIGNED,
       tcp_window                         SMALLINT UNSIGNED,
       tcp_offset                         TINYINT UNSIGNED,
       tcp_reserved                       TINYINT UNSIGNED,
       tcp_urg                        TINYINT UNSIGNED,
       tcp_urgp                           SMALLINT UNSIGNED,
       tcp_ack                        TINYINT UNSIGNED,
       tcp_psh                        TINYINT UNSIGNED,
       tcp_rst                        TINYINT UNSIGNED,
       tcp_syn                        TINYINT UNSIGNED,
       tcp_fin                        TINYINT UNSIGNED,
       tcp_res1                       TINYINT UNSIGNED,
       tcp_res2                       TINYINT UNSIGNED,
       tcp_csum                           SMALLINT UNSIGNED,
       udp_sport                          SMALLINT UNSIGNED,
       udp_dport                          SMALLINT UNSIGNED,
       udp_len                            SMALLINT UNSIGNED,
       udp_csum                           SMALLINT UNSIGNED,
       icmp_type                          TINYINT UNSIGNED,
       icmp_code                          TINYINT UNSIGNED,
       icmp_echoid                        SMALLINT UNSIGNED,
       icmp_echoseq                       SMALLINT UNSIGNED,
       icmp_gateway                       VARCHAR(254),
       icmp_fragmtu                       SMALLINT UNSIGNED,
       icmp_csum                          SMALLINT UNSIGNED,
       icmpv6_type                        TINYINT UNSIGNED,
       icmpv6_code                        TINYINT UNSIGNED,
       icmpv6_echoid                      SMALLINT UNSIGNED,
       icmpv6_echoseq                     SMALLINT UNSIGNED,
       icmpv6_csum                        SMALLINT UNSIGNED,
       ahesp_spi                          INT UNSIGNED,
       oob_protocol                       SMALLINT UNSIGNED,
       arp_hwtype                         SMALLINT UNSIGNED,
       arp_protocoltype                   SMALLINT UNSIGNED,
       arp_operation                      SMALLINT UNSIGNED,
       arp_saddr                          VARCHAR(254),
       arp_daddr                          VARCHAR(254),
       sctp_sport                         SMALLINT UNSIGNED,
       sctp_dport                         SMALLINT UNSIGNED,
       sctp_csum                          INT UNSIGNED,

-- HWHDR
       raw_type                           SMALLINT UNSIGNED,
       mac_saddr_str                      VARCHAR(254),
       mac_daddr_str                      VARCHAR(254),
       mac_str                            VARCHAR(254),

-- IP2STR
        ip_saddr_str                      VARCHAR(254),
        ip_daddr_str                      VARCHAR(254),
        orig_ip_saddr_str                 VARCHAR(254),
        orig_ip_daddr_str                 VARCHAR(254),
        reply_ip_saddr_str                VARCHAR(254),
        reply_ip_daddr_str                VARCHAR(254),
        arp_saddr_str                     VARCHAR(254),
        arp_daddr_str                     VARCHAR(254)
);

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:

sqlite3 /var/log/ulogd/ulogd.sqlite3db < /tmp/ulogd.sql

Dabar galime paleisti Ulogd servisa ir patikrinti ar viskas veikia. Systemd users gali paleisti Ulogd servisa tokiu budu:

systemctl start ulogd

O patikrinti ka jau prilogino galime parase komanda:

sqlite3 /var/log/ulogd/ulogd.sqlite3db .dump

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:

sudo mkdir -p /opt/elastic/{data,log}
cd /opt/elastic
wget https://download.elasticsearch.org/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.0.0/elasticsearch-2.0.0.tar.gz
wget https://download.elastic.co/logstash/logstash/logstash-2.0.0.tar.gz
wget https://download.elastic.co/kibana/kibana/kibana-4.2.1-linux-x86.tar.gz
tar xf elasticsearch-2.0.0.tar.gz
tar xf kibana-4.2.1-linux-x86.tar.gz
tar xf logstash-2.0.0.tar.gz
mv elasticsearch-2.0.0 elasticsearch
mv kibana-4.2.1-linux-x86 kibana
mv logstash-2.0.0 logstash
rm *.tar.gz

Config failai atrodo taip:

elasticsearch/config/elasticsearch.yml

path.data: /opt/elastic/data
path.logs: /opt/elastic/data/log
network.host: server.lt
http.port: 9200

logstash/config/ulogd.conf

input {
   file { 
      path => [ "/var/log/ulogd/ulogd.json"]
      codec =>   json 
   }
}

filter {
  if [src_ip]  {
    geoip {
      source => "src_ip"
      target => "geoip"
      add_field => [ "[geoip][coordinates]", "%{[geoip][longitude]}" ]
      add_field => [ "[geoip][coordinates]", "%{[geoip][latitude]}"  ]
    }
    mutate {
      convert => [ "[geoip][coordinates]", "float" ]
    }
  }
  de_dot {
  }
}

output { 
  elasticsearch { hosts => ["server.lt:9200"] }
  stdout { codec => rubydebug }
}

kibana/config/kibana.yml

server.port: 5601
server.host: "server.lt"
elasticsearch.url: "http://server.lt:9200"
elasticsearch.preserveHost: true
kibana.index: ".kibana"
kibana.defaultAppId: "discover"
elasticsearch.pingTimeout: 1500
elasticsearch.requestTimeout: 300000
elasticsearch.shardTimeout: 0
elasticsearch.startupTimeout: 5000
pid.file: /opt/elastic/data/run/kibana.pid
logging.dest: /opt/elastic/data/log/kibana.log
logging.silent: false
logging.quiet: false
logging.verbose: true

Elasticsearch nepalaiko '.', todel mums reikia pataisyti esama data, tai nera imanoma is Ulogd puses, bet logstash pluginas de_dot tai puikiai padaro.

cd /opt/elastic/logstash
bin/plugin install logstash-filter-de_dot

Pakeiciame ulogd.conf faila, kad saugotu dabar ne i database, bet i JSON faila. Tam mums reikia atkomentuoti sia line:

stack=nflog_opt:NFLOG,ifindex1:IFINDEX,base1:BASE,hwhdr1:HWHDR,ip2str1:IP2STR,json1:JSON

Saugom, perkraunam ulogd servisa ir paleidziam Elastic:

cd /opt/elastic/elasticsearch
bin/elasticsearch
cd ../logstash
bin/logstash agent --config config/ulogd.conf
cd ../kibana
bin/kibana

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/

G
  • 23 Lap '15

O kokia yra Elasticsearch licencija? Mano supratimu, nemokamai gauni tik 30 dienų?

T
Techtronic
Mindaugas N.
  • 23 Lap '15

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/

T
Techtronic
Mindaugas N.
  • 23 Lap '15

@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

G
  • 27 Lap '15

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

G
  • 30 Lap '15

Šiek tiek pastabų...

Nevykdykit šios komandos:

iptables -A LOGGING -j DROP

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:

/var/log/ulog/

Ne /var/log/ulogd/.

Analogiškai x86_64 sitemoje neegzistuoja:

/usr/lib/ulogd

Jei norit naudotis čia pateiktom instrukcijom, reikia:

ln -s /usr/lib/x86_64-linux-gnu/ulogd /usr/lib/ulogd

Kol kas užstrigau čia:

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
T
Techtronic
Mindaugas N.
  • 3
  • 30 Lap '15

@Ghost rašė:
Nevykdykit šios komandos....

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.

T
Techtronic
Mindaugas N.
  • 30 Lap '15

@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

G
  • 1 Grd '15

IFINDEX:

# ulogd -i /usr/lib/ulogd/ulogd_filter_IFINDEX.so
Name: IFINDEX
Input keys:
        Key: oob.ifindex_in (unsigned int 32)
        Key: oob.ifindex_out (unsigned int 32)
Output keys:
        Key: oob.in (string)
        Key: oob.out (string)

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 visi Input raktai būtų prieš tai einančiojo Output rinkinyje?

G
  • 1 Grd '15

@Techtronic rašė:

@Ghost rašė:
Nevykdykit šios komandos....

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.

Kaip gi nerašė, jei rašė, leisk pacituosiu

@Techtronic rašė:
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

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

T
Techtronic
Mindaugas N.
  • 1 Grd '15

@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 visi Input 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.