LINUX.ORG.RU

помощь по iptables, owner у вх. пакетов


0

0

Хочу написать простенькую считалку трафика с использованием iptables. Домашняя машина, два пользователя.

Надо чтобы трафик считался отдельно для каждого пользователя. Считать нужно только входящий трафик.

Сначала было подумал на iptables -m owner, но он работает только для исходящих пакетов =(

Как же мне узнать uid процесса который получит пакет?

★★★★★

Re: помощь по iptables, owner у вх. пакетов

UID у всех входящих пакетов - 0 ;-)

Есть дополнительные модули для iptables (ftp://ftp.netfilter.org/pub/patch-o-matic-ng/snapshot) - в них есть нужный для сверки трафика в INPUT chain - только не уверен - живой он ещё или его выкинули. Название не спрашивайте - не помню.

birdie ★★★★★ ()
Ответ на: Re: помощь по iptables, owner у вх. пакетов от birdie

Re: помощь по iptables, owner у вх. пакетов

>Есть дополнительные модули для iptables (ftp://ftp.netfilter.org/pub/patch-o-matic-ng/snapshot)

там уже рылся. ничего не нашёл =(

>http://lists.netfilter.org/pipermail/netfilter/2004-December/057410.html

там чел считает только исходящий трафик

Nao ★★★★★ ()

Re: помощь по iptables, owner у вх. пакетов

Гуглил и случайно наткнулся на то, что в BSD это можно сделать средствами ipfw

Типа ipfw add count ip from 192.168.1.0/24 to me uid 1001

Хочу такое же в линуксе =) Перейти на BSD не предлагать.

Nao ★★★★★ ()

Re: помощь по iptables, owner у вх. пакетов

Два IP на сетевуху, один юзер ходит с одного адреса (iproute/iptables), втророй с другого, трафик по адресам считаем,

sdio ★★★★★ ()
Ответ на: Re: помощь по iptables, owner у вх. пакетов от sdio

Re: помощь по iptables, owner у вх. пакетов

>Два IP на сетевуху, один юзер ходит с одного адреса (iproute/iptables), втророй с другого, трафик по адресам считаем,

проблематично. интернет по адслю, через лан-мопед. айпи у ppp интерфейса я не поменяю

Nao ★★★★★ ()
Ответ на: Re: помощь по iptables, owner у вх. пакетов от Nao

Re: помощь по iptables, owner у вх. пакетов

если пользователи сидят поочереди,
то можно просто ещё учитывать last - 
то есть раскидать по времени.

для tcp можно попробовать
маркировать соединения по исходящим пакетам..

можно пускать http/ftp трафик через squid и поднять identd - ident строки кладутся в лог-файл, их можно пересчитывать

MKuznetsov ★★★★★ ()

Re: помощь по iptables, owner у вх. пакетов

Вобщем сделал пока так:

Исходящие соединения маркируются соответсвенно уидам пользователей
-A OUTPUT .... -m state --state NEW -m owner --uid-owner 1000 -j CONNMARK --set-mark 0x1
-A OUTPUT .... -m state --state NEW -m owner --uid-owner 1001 -j CONNMARK --set-mark 0x2
......

входящие же соединения маркируются отдельно
-A INPUT .... -m state --state NEW -j CONNMARK --set-mark 0x8

затем ответные пакеты (когда уже можно определить UID юзера) с пометкой 0x8 маркируем уже соответсвенно UIDам
-A OUTPUT .... -m connmark --mark 0x8 -m owner --uid-owner 1000 -j CONNMARK --set-mark 0x1
-A OUTPUT .... -m connmark --mark 0x8 -m owner --uid-owner 1001 -j CONNMARK --set-mark 0x2
.......

Теперь осталось только добавить правила для собственно считания траффика
-A INPUT .... -m connmark --mark 0x1
.......
-A OUTPUT .... -m connmark --mark 0x1
.......


Единственный минус - не считается первый входящий SYN пакет.
Но лично у меня их мизер, так что в моём случае не критично.

Nao ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.