The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Посчитать ВХОДЯЩИЙ трафик по процессам"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Информационная безопасность (Public)
Изначальное сообщение [ Отслеживать ]

"Посчитать ВХОДЯЩИЙ трафик по процессам"  
Сообщение от gapsf2 (ok) on 30-Окт-08, 06:57 
Здрасьте.
Подскажите, пжлста, можно ли как-то извратиться и поставить счетчики на ВХОДЯЩИЙ трафик каждого процесса в системе?
К сожалению Owner match (--cmd-owner,--uid-owner) только для исходящего (в OUTPUT).
Хотелось бы узнать, какой процесс жрет неучтённый трафик.

В целом проблема вот такая: http://www.opennet.dev/openforum/vsluhforumID12/5805.html.
Спсб.

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Посчитать ВХОДЯЩИЙ трафик по процессам"  
Сообщение от Pahanivo email(ok) on 30-Окт-08, 07:35 
ААААА!
Процессы жрут трафик!!!

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Посчитать ВХОДЯЩИЙ трафик по процессам"  
Сообщение от gapsf2 (ok) on 01-Ноя-08, 08:30 
Отвечу сам.
Оказывется извратиться можно.
Но с одним но - на текущий момент.
После некотрых раздумий до меня дошло, что netfilter с подсистемой connaction tracking имеет в наличии нужную информацию об установленных соединениях.
Соотвественно он может сопоставить какому соединению какой пакет принадлежит.
Соответсвенно надо как-то пометить ИСХОДЯЩИЕ пакеты интересующего нас процесса, а уже connaction tracking определит к какому соединению отнсится ВХОДЯЩИЙ пакет и соотвественно к какому процессу это соединение относится.
И делается это так

# помечаем неким целым числом все соедиения устанавливаемые squid'ом на интернет интерфейсе
---------------------------------
# по cmd процесса
iptables -A OUTPUT -o eth1 -m owner --cmd-owner squid -j CONNMARK --set-mark 14
# или по pid'у процесса
iptables -A OUTPUT -o eth1 -m owner --pid-owner номер_процесса  -j CONNMARK --set-mark 14
# или по sid'у процессов
iptables -A OUTPUT -o eth1 -m owner --sid-owner номер_группы_процессов  -j CONNMARK --set-mark 14
---------------------------------

# а теперь ловим весь входящий траффик, который относится к соединениям,
# которые мы пометили ранее (отметка не в пакете, а в ядре хранится
# и проставляется тем входящим пакетам, которые относятся к соединениям помеченным номером 14)

---------------------------------
iptables -A INPUT -i eth1 -m connmark --mark 14
---------------------------------

Это правило будет нужным нам счетчиком, который будет считать входящий трафик для соединений, установленных squid'ом

И теперь ложка дегтя.
Правила с --pid-owner или --sid-owner не работают на SMP системах - даже на Pentium c HT, даже если в ядре отключена поддержка SMP!
Т.е. мы не сможем (до тех пор пока разработчики не исправят - а похоже они убрали эту фичу с 2.6.14 и навсегда) отлавливать и помечать пакеты
по pid, sid процессов, как предложено выше.
Остается одно: использовать --uid-owner. т.е. отлавливать пакеты по владельцу процесса.
В Debian squid (но не все его процессы) работают от имени proxy.
Поэтому придется сделать вот так:

---------------------------------
iptables -A OUTPUT -o eth1 -m owner --uid-owner 13 -j CONNMARK --set-mark 14
---------------------------------
где 13 - uid пользователя proxy.

Есть некий вариант с использованием SELinux, чтобы используя его пометки, все таки
ловить пакеты на основе pid, но SELinux такая заморчка, что его настроить надо, политики разпработать, хотя возможно настройки именно для этих целей не объемные.
В любом случае - дополнительный гемор.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Посчитать ВХОДЯЩИЙ трафик по процессам"  
Сообщение от pavel_simple (??) on 01-Ноя-08, 09:26 
>Здрасьте.
>Подскажите, пжлста, можно ли как-то извратиться и поставить счетчики на ВХОДЯЩИЙ трафик
>каждого процесса в системе?
>К сожалению Owner match (--cmd-owner,--uid-owner) только для исходящего (в OUTPUT).
>Хотелось бы узнать, какой процесс жрет неучтённый трафик.
>
>В целом проблема вот такая: http://www.opennet.dev/openforum/vsluhforumID12/5805.html.
>Спсб.

уже давно все знают что systemtap может много больше

http://sources.redhat.com/git/gitweb.cgi?p=systemtap.git;a=b...

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Посчитать ВХОДЯЩИЙ трафик по процессам"  
Сообщение от gapsf2 (ok) on 01-Ноя-08, 10:48 
>[оверквотинг удален]
>>каждого процесса в системе?
>>К сожалению Owner match (--cmd-owner,--uid-owner) только для исходящего (в OUTPUT).
>>Хотелось бы узнать, какой процесс жрет неучтённый трафик.
>>
>>В целом проблема вот такая: http://www.opennet.dev/openforum/vsluhforumID12/5805.html.
>>Спсб.
>
>уже давно все знают что systemtap может много больше
>
>http://sources.redhat.com/git/gitweb.cgi?p=systemtap.git;a=b...

О! Спасибо - не знал. Пойду разбираться.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру