Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Администрирование *NIX систем > отслеживать сколько ест прога


Автор: GrayCardinal 8.9.2009, 08:53
Добрый день !
Есть прога на руби. Работает 24/7 Нужно отслеживать сколько трафика и какого (TCP/UDP) ест. Пробовал из /sbin/ifconfig трафик сравнивать, но он, наверно, сбросился за ночь, ибо трафа стало _меньше_. smile Может кто чего подскажет ? iptables самому настраивать влом. :(

Олег.

Автор: MAKCim 8.9.2009, 21:34
т. к фильтрации по pid'у нет
юзаем owner по UID/GID (запускаем прогу под спец. юзером с заданным UID)
если она должны работать под рутом, то придумываем как можно отфильтровать пакеты этой проги
далее пишем правило
например
Код

# iptables -t filter -A OUTPUT -p tcp -m owner --uid-owner <UID> -j ACCEPT
# iptables -t filter -A OUTPUT -p udp -m owner --uid-owner <UID> -j ACCEPT

через
Код

# iptables -v -t filter -A OUTPUT -L

смотрим количество байт
для подсчета 

чтобы определить входной трафик нужно что-то, что уникально идентифицирует прогу с т. з внешнего пакета (порт например)

Автор: bilbobagginz 8.9.2009, 23:31
Можно создать специальную группу, сделать экзешник с setgid битом, и потом отлавливать по группе ?

Добавлено через 6 минут и 47 секунд
только вот не знаю какой ис GID-ов проверяется netfilter-ом.

Автор: rustyangel 16.9.2009, 10:58
ipt-netflow

А прогу наверно лучше засунуть в виртуальную машину.  Или да, под отдельного юзера и матчить по UID.

Цитата(bilbobagginz @  8.9.2009,  23:31 Найти цитируемый пост)
только вот не знаю какой ис GID-ов проверяется netfilter-ом. 

В смысле - какой? Какой укажешь - тот и будет.

Автор: bilbobagginz 16.9.2009, 14:33
Цитата(rustyangel @  16.9.2009,  09:58 Найти цитируемый пост)
В смысле - какой? Какой укажешь - тот и будет. 

имелось в виду
Real GID или Еffective GID
т.е. если Real, то setgid-нутый экзешник не поможет тут, и придётся добавлять пользователя в группу, что менее желательно.


Автор: rustyangel 16.9.2009, 15:13
Эффективный, естественно. Откуда (и зачем) пакетному фильтру знать что-то про права доступа к файлам?

Автор: bilbobagginz 16.9.2009, 17:11
Цитата(rustyangel @  16.9.2009,  14:13 Найти цитируемый пост)
Откуда (и зачем) пакетному фильтру знать что-то про права доступа к файлам? 

я не знал, что real GID обязательно имеет контекст доступа к файлам.
а если отнестись к сокетам как к файлам, права доступа к-рых определяются процессами, создавшими их, 
то опять же, тема не раскрыта smile






Автор: MAKCim 16.9.2009, 21:26
че вы спорите? ;)
http://tomoyo.sourceforge.jp/cgi-bin/lxr/ident?i=owner_mt_v0

Автор: bilbobagginz 17.9.2009, 12:47
MAKCim
мы поэты, а ты про заек  smile

Автор: Kappac 21.9.2009, 15:43
Может удобней будет маркировать трафик по портам? И не надо ломать голову с пользователями... 

Автор: bilbobagginz 22.9.2009, 11:50
Цитата(Kappac @  21.9.2009,  14:43 Найти цитируемый пост)
Может удобней будет маркировать трафик по портам?

то ли я не понял идеи, то ли это абсурд:
каждому пользователю дадим "свой" порт подключения ? a удалённый сервер будет их слушать на "своём" порту, т.е. слушать на N портах ?



Автор: MAKCim 22.9.2009, 13:57
bilbobagginz
имелось в виду наверное биндинг проги к определенному порту/портам
тогда мы сможем по --sport ее отследить

Автор: bilbobagginz 22.9.2009, 14:05
Цитата(MAKCim @  22.9.2009,  12:57 Найти цитируемый пост)
имелось в виду наверное биндинг проги к определенному порту/портам
тогда мы сможем по --sport ее отследить 

если я правильно понял про байндинг чего:
мы баиндим порт соединения клиента, и получаем:
  • 1 компьютер = 1 клиентское соединение (иногда прокатит)
  • надо как-то всегда держать этот специальный порт незанятым, чтобы другое клиентское приложение случайно его не забайндило на клиентском компьютере (что тоже ненужный гемор)




Автор: MAKCim 22.9.2009, 14:15
bilbobagginz
про отсутствие гемора я и не говорил ;)

Автор: GrayCardinal 22.9.2009, 15:58
Прога себя не оправдала... :(

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)