трафик через iptables в связке IP/MAC клиента
GNU/Linux, UNIX, Open Source → Программное обеспечение
здраствуйте!
интересует вопрос как подсчитать трафик через 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
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
так-так-так..
А с чего бы это, считая только исходящие от _указанного_ адреса, считалось приходящее к нему? всё правильно оно показывает. В процессе считывания файла 1,2Мб по ftp клиент отправил 21Кб.
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?
лучше, видимо, вот так:
у меня на 2.6.5 именно с таким конфигом работает нормально
rabotaet, bol’shoe spasibo
:)
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!»
поищи transparent-proxy-HOWTO
некоторые вещи сделать проще и понятнее именно этим образом
а что бы именно так, как ты хочешь — это надо делать через таблицу *nat, а не *filter, правилом `-j DNAT --to-destination`, читай `man iptables` у этого действия.
перенапрявляй на сервер локальный, и перехватывай ошибку 401/403/404 — ну, это читай описание настройки apache. Локально на своём компутере этого всегда много есть.
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 :(
эээ. :)
а чего, логи сквида отменили уже? :))
Собственно, я намекал на то, что именно точно таким образом можно организовать желаемое тебе — т.е. по просрочке платежа делаешь `iptables -t nat -I PREROUTING -s <штрафной_ip> -p tcp -m tcp --dport 80 -j REDIRECT <адрес_сервера:порт>`
Ладно, есть способ и в таком виде, как счас настроено, считать.
Считай входящие от клиента на порт 3128 и уходящие с него к клиенту.
Самое интересное, что можно настроить так, чтобы прямые запросы к шлюзу на 3128 не *считались*, а только те, которые прошли через правило в *nat. Усилено читать `man iptables` около действия MARK и думать ;)
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
Вроде да :)
разве что если пишешь так:
то проще заменить одной строкой:
либо и тут вставить проверку на MAC