snoop, tcpdump

Szeretnék egy monitornak felkonfigurált sw porton folyó forgalmat gyűjteni tcpdump-al.
Igazából a 80-as és 25-ös TCP portokat szeretném leszedni.

Két kérdésem lenne ezzel kapcsolatban.
- Milyen interface konfig kell hozzá, mert ugyebár IP-t nem kell neki adni?
- Hogy tudnám nem root user alol futtatni automatikusan azt a scriptet? Első ötletként a sudo megoldást találtam, ezzel kapcsolatos véleményeitek? A gond talán ezzel az, hogy raw packetként szeretném kiírni, de szintén nem root jogosultságú file-ba. Nekem a -Z nem működött.

Köszi

Hozzászólások

- Milyen interface konfig kell hozzá, mert ugyebár IP-t nem kell neki adni?

A switch oldalan vagy a masik oldalon? :) Mert a switchben nyilvan be kell configolni, hogy ez egy monitor port, errol bovebben lasd a manual megfelelo reszet. A masik oldalon meg kvazi mindegy, mert ha promiscuous módban tcpdumpolsz, akkor meg fogsz kapni mindent. Lehet persze, h. vlan taggelesnel, vagy ha valami egzotikus dolgot csinalsz, akkor szamit a konfig, de nekem konkretan egy ifconfig ethx up utan ment a dolog, es nem is foglalkoztam vele sokat...

Első lépésként ez lenne:

sudo tcpdump -n -s 1500 -C 1 -W 10 -i eth0 -w snoop.pcap

Van egy -z kapcsolója, ami a lezárt file-t engedné mahinálni egy scripttel, de nekem ez sem működött.

sudo tcpdump -n -s 1500 -C 1 -W 10 -z jog.sh -i eth0 -w snoop.pcap

a jog.sh-ban egy sima chown lenne benne

Ezeket csak tesztelésre használtam, hogy hamar megteljenek a file-ok.

Vélemény? syslog-ng össze fogja fosni magát :)

Ha pipeolni akarsz, akkor így csináld:

mkfifo /tmp/mk_pipe
sudo "tcpdump [opciok] -w -" > /tmp/mk_pipe

es ezt a named pipeot olvashatod a sima userrel, aki majd wrappeli a logot:
tcpdump -r /tmp/mk_pipe -C 10 -W 10 -w /tmp/file.pcap

Ezt kiprobaltam, es mukodik szepen. Jöhet a sör :)

Nalam egy syslog-ng (igaz egy eleg regi darab:1.6.8) logging server ~1.080.000 log bejegyzes/percet bir egy 12 coreos Xeonon, ugy, hogy csak loggolasra van hasznalva, de a CPU az egekben van. Mondjuk vannak filtereim es nem named pipebol olvasok, hanem udp-n jon a log 8 remote noderol, de en ebbol azt szurtem le, hogy azert a syslog elegge le tudja zabalni az eroforrasokat.

Szoval hacsak a srac nem egy 10 mbites vonalat akar captureolni, akkor en nem vennem bele a kepbe a syslog-ng-t, mert valszeg eleg nagy loadja lesz, ahhoz kepest, h. mit szeretne csinalni. Plane, h. az altalam leirt megoldas sokkal egyszerubb, mint az egeszet athajtani a syslogon...

Az 1.6.8 bizony 6 eves, es amennyire emlekszem, nem volt eppen egy jo verzio... arrol nem is beszelve, hogy csak egyetlen procit tud hasznalni (szoval aligha terheli meg a geped maradek 11 procijat), majd csak az OSE 3.3/3.4 hozza magaval az igazi multi-threaded mukodest (a 2.1-tol kezdve volt kulon thread adatbazisoknak). En tobb tizezer gepet keszulok 3.2.x-re migralni a kozeljovoben, szerencsere nem 1.6.x-rol.

Igazad van, rosszul fogalmaztam, mert a "load" nem magas, 1 alatt van, de a syslog CPU hasznalata 70-80% korul van. (A maradek 11 CPU valoban pihen, kiveve amikor az auditok futnak)

Amugy az, hogy 6 eves, az nem feltetlenul baj, mint irtam, megvan az az elonye, hogy csak ismert hibakba futunk bele.
Egyedul a kernelnel faj, hogy ennyire regi verzio...

Ismert hibája, vagy inkább tulajdonsága pl. az, hogy egy cpu-t használ, és egyéb dolgai miatt is performanciája messze elmarad attól, amit az újabb verziók tudnak.
A "nem lehet frissíteni, mert..." szerintem az esetek 60-80%-ában nettó hülyeség, a maradéknál van olyan, ahol az indokok esetleg megfontolásra érdemesek, és csak egy pici szegmens mondhatja el magáról azt, hogy bizony neki a működést lehetetlenítené el egy hat éves szoftver lecserélése mondjuk egy 3-4 éves verzióra akár.

Köszi, működik nekem is. Más csak egy dolgot nem értek.
Ha a pipe jogok ilyenek, akkor egy másik felhasználó miért kapja ezt:

prw-r--r-- 1 snoop snoop 0 2011-08-23 17:11 snoop_tcp_port_25

tcpdump -r /home/snoop/snoop_tcp_port_25
tcpdump: /home/snoop/snoop_tcp_port_25: Permission denied

A 25-ös port forgalmát csak óvatosan, levelezésbe ugyanis alapértelmezés szerint nem nézhetsz bele, még így sem.