учёт сетевого обмена с определённым ip

На самом деле это единственный раздел про unix на этом форуме

Модераторы: /dev/random, Модераторы разделов

Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

учёт сетевого обмена с определённым ip

Сообщение sash-kan »

не подскажет ли всезнающий all, не написана ли уже такая программка/скрипт, которая подсчитывает количество и общий размер отправленных и принятых пакетов при сетевом обмене с определённым ip-адресом?

я понимаю, что можно записать трафик tshark-ом, а потом выковырнуть оттуда нужную информацию·
но почему-то кажется, что такие велосипеды уже имеются·

p.s. iptraf не устраивает, т.к. не имеет (или я плохо искал) фильтра по определённому ip-адресу, а без фильтра очень неудобно искать нужную информацию·
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус

Re: учёт сетевого обмена с определённым ip

Сообщение KiWi »

fprobe+flow-tools?
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: учёт сетевого обмена с определённым ip

Сообщение sash-kan »

KiWi писал(а):
19.01.2012 00:58
fprobe+flow-tools?
если мне память не изменяет, это средства для учёта трафика, т.е. считаются только байты·
а мне нужно и количество пакетов, и количество tcp-соединений (кстати, совсем забыл про них упомянуть)·

но всё равно — спасибо·
видимо, придётся лень побороть и поколдовать с выдачей tshark-а…
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: учёт сетевого обмена с определённым ip

Сообщение sash-kan »

для памяти:

1. запускаем tshark для записи трафика:

Shell

$ sudo tshark -ni <интерфейс> host <хост> -w <файл>


2. останавливаем в нужный момент с помощью ^c
3. смотрим статистику:

суммировать для интервалов по 0.5 секунды

$ shark -r <файл> -qz 'io,stat,0.5' =================================================================== IO Statistics Interval: 0.500 secs Column #0: | Column #0 Time |frames| bytes 000.000-000.500 10 1068 000.500-001.000 7 1387 ===================================================================


если хочется всё уложить в одну строчку — задайте интервал, заведомо больший, чем время, в течение которого велась запись:

суммировать для интервалов по 100 секунд

$ tshark -r <файл> -qz 'io,stat,100' =================================================================== IO Statistics Interval: 100.000 secs Column #0: | Column #0 Time |frames| bytes 000.000-100.000 17 2455 ===================================================================

Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
Nazyvaemykh
Сообщения: 438
Статус: Подопытный участник

Re: учёт сетевого обмена с определённым ip

Сообщение Nazyvaemykh »

А если использовать для этого ядро?
Например, -j LOG в iptables или что-то подобное. Это может иметь какие-то преимущества?
¡ Страсть к разрушению есть творческая страсть!
Спасибо сказали:
Аватара пользователя
vr13
Сообщения: 887
ОС: gentoo

Re: учёт сетевого обмена с определённым ip

Сообщение vr13 »

Nazyvaemykh писал(а):
11.02.2012 22:29
А если использовать для этого ядро?
Например, -j LOG в iptables или что-то подобное. Это может иметь какие-то преимущества?

с журналированием еще разбираться нужно - логи парсить итд. ядро, - оно действительно все подсчитывает, а чтобы считать по-адресно, нужно всего лишь ввести нужные адреса в INPUT, OUTPUT или FORWARD (если машина - router). вот хороший пример
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: учёт сетевого обмена с определённым ip

Сообщение sash-kan »

Nazyvaemykh
vr13
насколько я понимаю, даже количество пакетов с помощью netfilter-а не подсчитаешь, не говоря уже про количество tcp-соединений·
кстати, и с помощью tshark-а, (мне лично) не ясно, как подсчитывать соединения·
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
vr13
Сообщения: 887
ОС: gentoo

Re: учёт сетевого обмена с определённым ip

Сообщение vr13 »

sash-kan писал(а):
12.02.2012 12:37
насколько я понимаю, даже количество пакетов с помощью netfilter-а не подсчитаешь, не говоря уже про количество tcp-соединений

разумеется, может - и пакеты, и байты:

Код: Выделить всё

$ sudo iptables -A OUTPUT -p tcp --dst blinky.local -j OACCT
$ sudo iptables -A INPUT -p tcp --src blinky.local -j IACCT

посмотреть:

Код: Выделить всё

$ sudo iptables -L -v | grep '^Chain.*PUT' -A 2 --color=never

Spoiler
Chain INPUT (policy ACCEPT 3721K packets, 6679M bytes)
pkts bytes target prot opt in out source destination
3706K 6674M IACCT tcp -- any any blinky.local anywhere
--
Chain OUTPUT (policy ACCEPT 3246K packets, 3159M bytes)
pkts bytes target prot opt in out source destination
3231K 3157M OACCT tcp -- any any anywhere blinky.local

количество соединений - вроде бы тоже можно, не зря же nf_conntrack существует и соответствующие утилиты (не пробовал)
Спасибо сказали:
Institut
Сообщения: 281
ОС: mint

Re: учёт сетевого обмена с определённым ip

Сообщение Institut »

Первое что пришло в голову - завести все это в отдельный журнал ULOG
-A INPUT -i eth0 -s 172.172.172.172 (ваш IP) -j ULOG --ulog-prefix " ваш IP "
-A OUTPUT -o eth0 -d 172.172.172.172 (ваш IP) -j ULOG --ulog-prefix " ваш IP "
А уже из него и обрабатывать дальше скриптом. (Как-то так).
Спасибо сказали: