nixp.ru v3.0

18 января 2017,
среда,
13:10:39 MSK

Аутсорсинг Linux с компанией «Флант»
anonymous написал 12 июля 2004 года в 01:28 (479 просмотров) Ведет себя неопределенно; открыл 1814 темы в форуме, оставил 5575 комментариев на сайте.

здраствуйте!

интересует вопрос как подсчитать трафик через iptables в связке IP/MAC клиента.

PRIMER:

iptables -N clients

iptables -A FORWARD -j clients

iptables -A clients -s 192.168.0.24 -m mac —mac-source 00:30:1B:AB:F6:83

iptables -A clients -s 192.168.0.25 -m mac —mac-source 00:30:1B:AB:F6:84

—-

potom pri ska4ke 1.2meg file ot 192.168.0.24 u nas imeetsa:

bash-2.05b# iptables -L FORWARD -vn

Chain FORWARD (policy ACCEPT 7045 packets, 6258K bytes)

pkts bytes target prot opt in out source destination

1408 1251K clients all — * * 0.0.0.0/0 0.0.0.0/0

FORWARD pods4itan pravel’no, no

bash-2.05b# iptables -L clients -vn

Chain clients (1 references)

pkts bytes target prot opt in out source destination

553 22411 all — * * 192.168.0.24 0.0.0.0/0 MAC 00:30:1B:AB:F6:83

0 0 all — * * 192.168.0.25 0.0.0.0/0 MAC 00:30:1B:AB:F6:84

chain clients vidaet 22411bytes dlya etogo clienta. T.e. pravel’no s4itaetsa tol’ko obshiy FORWARD traffic dlya vsex. Kak pods4itat' dlya kajdogo IP/MAC ?

spasibo

Genie

так-так-так..

А с чего бы это, считая только исходящие от _указанного_ адреса, считалось приходящее к нему? всё правильно оно показывает. В процессе считывания файла 1,2Мб по ftp клиент отправил 21Кб.

anonymous

ok, poprobival vot tak:

iptables -N forward_input

iptables -N forward_output

iptables -A FORWARD -s 192.168.0.0/24 -j forward_output

iptables -A FORWARD -d 192.168.0.0/24 -j forward_input

iptables -A forward_output -s 192.168.0.24 -m mac —mac-source 00:30:1B:AB:F6:83 -j ACCEPT

iptables -A forward_input -d 192.168.0.24 -j ACCEPT

iptables -A forward_output -s 192.168.0.20 -m mac —mac-source 00:A0:D1:D0:5C:F8 -j ACCEPT

iptables -A forward_input -d 192.168.0.20 -j ACCEPT

iptables -A forward_output -j DROP

iptables -A forward_input -j DROP

po4emu-to s4itaet tol’ko dlya .24, dlya .20 vidaet 0 bytes. gde oshibka ne podskajesh?

Genie

лучше, видимо, вот так:

*filter
:INPUT ACCEPT
:FORWARD ACCEPT
:OUTPUT ACCEPT
:in_pc1 -
:in_pc2 -
:out_pc1 -
:out_pc2 -
-A FORWARD -m mac --mac-source 00:00:12:34:56:78 -j in_pc1
-A FORWARD -m mac --mac-source 00:00:12:34:56:79 -j in_pc2
-A FORWARD -d 192.168.12.1 -j out_pc1
-A FORWARD -d 192.168.12.2 -j out_pc2
-A FORWARD -j DROP
-A in_pc1 -j ACCEPT
-A in_pc2 -j ACCEPT
-A out_pc1 -j ACCEPT
-A out_pc2 -j ACCEPT
COMMIT

у меня на 2.6.5 именно с таким конфигом работает нормально

anonymous

rabotaet, bol’shoe spasibo

:)

anonymous

slushay a mojet eshe podskajesh vot takuu vesh…

ya s4itau traffic i kogda limit exceeded to delau -j DROP i useri ostautsa bez ineta. A real’no li zdelat' REDIRECT kuda-nit' 4tob u nix otkrivalas' page, mol «Sorry, your traffic exceed. Pay your fucking bill NOW!»

Genie

поищи transparent-proxy-HOWTO

некоторые вещи сделать проще и понятнее именно этим образом

а что бы именно так, как ты хочешь — это надо делать через таблицу *nat, а не *filter, правилом `-j DNAT —to-destination`, читай `man iptables` у этого действия.

перенапрявляй на сервер локальный, и перехватывай ошибку 401/403/404 — ну, это читай описание настройки apache. Локально на своём компутере этого всегда много есть.

anonymous

zdelal transparent proxy

i posle

iptables -t nat -A PREROUTING -i eth0 -p tcp —dport 80 -j REDIRECT —to-port 3128

ni4ego ne s4itaet na forwardax, vernee s4itaet no ne httpd.

est' shans zdelat' 4tob s4italo vse 4erez forward i rabotala proxy ?

ili nada budet s4itat' uje OUTPUT dlya kajdogo clienta ?

zamoro4ka :(

Genie

эээ. :)

а чего, логи сквида отменили уже? :))

Собственно, я намекал на то, что именно точно таким образом можно организовать желаемое тебе — т.е. по просрочке платежа делаешь `iptables -t nat -I PREROUTING -s <штрафной_ip> -p tcp -m tcp —dport 80 -j REDIRECT <адрес_сервера:порт>`

Ладно, есть способ и в таком виде, как счас настроено, считать.

Считай входящие от клиента на порт 3128 и уходящие с него к клиенту.

Самое интересное, что можно настроить так, чтобы прямые запросы к шлюзу на 3128 не *считались*, а только те, которые прошли через правило в *nat. Усилено читать `man iptables` около действия MARK и думать ;)

anonymous

vot sobstvenno 4to polu4ilos'

rules u4itivaet squid traffic toje, tak 4to mi ni4ego ne teryaem

vse pral’no? :)

##############################

:INPUT ACCEPT

:FORWARD ACCEPT

:OUTPUT ACCEPT

#masq for localnet

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE

#########

#rules for client1

#########

iptables -N in_pc_1

iptables -N out_pc_1

iptables -A FORWARD -s 192.168.0.24 -m mac —mac-source 77:30:1B:AB:F6:81 -j in_pc_1

iptables -A FORWARD -d 192.168.0.24 -j out_pc_1

iptables -t nat -A PREROUTING -i eth0 -s 192.168.0.24 -p tcp —dport 80 -j REDIRECT —to-port 3128

iptables -A INPUT -s 192.168.0.24 -m mac —mac-source 77:30:1B:AB:F6:81 -p tcp —destination-port 3128 -j out_pc_1

iptables -A OUTPUT -p tcp -d 192.168.0.24 —sport 3128 -j in_pc_1

###########

#rules for client2

###########

iptables -N in_pc_2

iptables -N out_pc_2

iptables -A FORWARD -s 192.168.0.20 -m mac —mac-source 00:A0:D1:D0:5C:F8 -j in_pc_2

iptables -A FORWARD -d 192.168.0.20 -j out_pc_2

iptables -t nat -A PREROUTING -i eth0 -s 192.168.0.20 -p tcp —dport 80 -j REDIRECT —to-port 3128

iptables -A INPUT -s 192.168.0.20 -m mac —mac-source 00:A0:D1:D0:5C:F8 -p tcp —destination-port 3128 -j out_pc_2

iptables -A OUTPUT -p tcp -d 192.168.0.20 —sport 3128 -j in_pc_2

######

iptables -A FORWARD -j DROP

iptables -A in_pc_1 -j ACCEPT

iptables -A out_pc_1 -j ACCEPT

iptables -A in_pc_2 -j ACCEPT

iptables -A out_pc_2 -j ACCEPT

Genie

Вроде да :)

разве что если пишешь так:

iptables -t nat -A PREROUTING -i eth0 -s 192.168.0.24 -p tcp —dport 80 -j REDIRECT —to-port 3128

iptables -t nat -A PREROUTING -i eth0 -s 192.168.0.20 -p tcp —dport 80 -j REDIRECT —to-port 3128

то проще заменить одной строкой:

iptables -t nat -A PREROUTING -i eth0 -s 192.168.0.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128

либо и тут вставить проверку на MAC

ecobeingecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.