# tcpdump -eni pflog0
tcpdump: listening on pflog0, link-type PFLOG
10:49:50.153511 rule 2/(match) pass in on re0: 10.0.0.1 > 10.0.0.2: icmp: echo request
Ezzel a sorral syslog szempontból több probléma van. Pl nincs benne a hosztnév ($HOST), ki küldte az üzenetet($PROGRAM), ill. nem jó az időpecsét ($ISODATE).
Ezt kell valahogy bejuttatni a syslog-ng-nek és feldolgoztatni vele.
A syslog-ng konfig(csak a vonatkozó részek):
source s_pflog {
pipe("/var/log/pflog.pipe" flags(no-parse));
};
parser p_pflog {
csv-parser(columns("PFLOG.TS","PFLOG.MSG") delimiters(" ") flags(escape-none,greedy) template("${MSG}"));
};
rewrite r_set_macro_program {
set("pflog:",value(PROGRAM));
};
template t_pflog {
template("$ISODATE $HOST $PROGRAM ${PFLOG.MSG}\n");
template-escape(no);
};
destination d_pflog {
file("/var/log/pflog.log" template(t_pflog));
};
log {
source(s_pflog);
rewrite(r_set_macro_program);
parser(p_pflog);
destination(d_pflog);
};
Tehát a /var/log/pflog.pipe-on keresztül várjuk a logsorokat, majd a parser -el leválasztjuk róla a timestamp-et, gyakorlatilag az első space karakterig vágunk, a greedy opció pedig azért kell mert változó a mezők száma. A $PFLOG.TS makrót később nem használjuk fel, nekünk gyakorlatilag csak a maradék kell. (Igen tudom, hogy a tcpdump-nak is meg lehet adni, hogy ne legyen timestamp, de akkor nem tudtam volna kipróbálni a parsert.) Ezután beállítjuk a $PROGRAM makró értékét "pflog:" -ra , a template-ben összerakjuk a logsort újra és már csak ki kell írnunk a /var/log/pflog.log file-ba, vagy el is küldhetjük egy távoli loghost-nak.
Ahhoz, hogy a tcpdump elinduljon bootoláskor és beletegye a pipe-ba az üzeneteket a következőt kell hozzáadni a /etc/hostname.pflog0 file-hoz.
!tcpdump -leni >/var/log/pflog.pipe &
És akkor a végén a syslog-ban letárolt logsor így néz ki:
2009-08-18T10:49:50+02:00 openbsd pflog: rule 2/(match) pass in on re0: 10.0.0.1 > 10.0.0.2: icmp: echo request
A legvégére pedig az egysoros megoldás :)
tcpdump -lteni pflog0 | logger -t pflog
Jó szórakozást!
Üdv
Godot
- godot blogja
- A hozzászóláshoz be kell jelentkezni
- 659 megtekintés
Hozzászólások
Kis segítség a syslog-ng fordításhoz:
OPENSSL_CFLAGS="-I/usr/include/openssl" OPENSSL_LIBS="-L/usr/lib -lcrypto -lssl" ./configure --enable-dynamic-linking --disable-glibtest
- A hozzászóláshoz be kell jelentkezni
szép. a code tag nincs vhol lezárva rendesen?
- A hozzászóláshoz be kell jelentkezni
Aha, a kolléga ügyelet helyett gyártja a referenciákat a jövendő CV-jéhez, közben meg anyázik, ha bejövő munka "megzavarja". :))
--
Wir sind erfaßt, sind infiziert,
Jedes Gespräch wird kontrolliert.
- A hozzászóláshoz be kell jelentkezni
A kolléga meg nem este 8-kor megy haza. :)
- A hozzászóláshoz be kell jelentkezni