URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID10
Нить номер: 4779
[ Назад ]

Исходное сообщение
"запретить транзитный трафик для mac адреса"

Отправлено lesta , 22-Янв-11 19:14 
Здравствуйте.
Имеется роутер на asplinux 9.2. на нем два физических интрефейса, eth0 - интернет, eth1 локальная сеть. На eth1 много виланов. нужно запретить транзитный трафик с определенного mac-адреса в интернет и в локальную сеть.
iptables -I FORWARD -m mac --mac-source XX:XX:XX:XX:XX:XX -j DROP
работает только в плане трафика между eth0 и eth1, то есть из локальной сети в интернет, внутри локальной сети не работает. tcpdump-ом входящие/исходящие пакеты этой машины прекрасно видны. если логировать эту машину по IP-адресу -
iptables -I FORWARD -s XX.XX.XX.XX -j LOG --log-prefix "TEST "
лог выглядит таким образом -
Jan 22 17:57:45 asp kernel: TEST IN=eth1 OUT=eth1 SRC=XX.XX.XX.XX DST=XX.XX.XX.XX LEN=84 TOS=0x00 PREC=0x00 TTL=126 ID=32901 PROTO=ICMP TYPE=0 CODE=0 ID=1135 SEQ=3191
в цепочке INPUT все работает, и в логе присутствует mac-адрес.
всякие ухищрения с mark ведут себя точно так же.

ядро 2.4.22
iptables v1.4.10

заранее спасибо за ответ.


Содержание

Сообщения в этом обсуждении
"запретить транзитный трафик для mac адреса"
Отправлено ДорогойДрук , 22-Янв-11 19:35 
Дропайте двумя правилами: и в инпуте и в форварде.

"запретить транзитный трафик для mac адреса"
Отправлено lesta , 22-Янв-11 19:41 
> Дропайте двумя правилами: и в инпуте и в форварде.

в INPUT дропается, в FORWARD нет.


"запретить транзитный трафик для mac адреса"
Отправлено lesta , 22-Янв-11 19:44 
>> Дропайте двумя правилами: и в инпуте и в форварде.
> в INPUT дропается, в FORWARD нет.

точнее в FORWARD дропается только между локальной сетью и интернетом, между eth0 и eth1


"запретить транзитный трафик для mac адреса"
Отправлено ДорогойДрук , 22-Янв-11 22:36 
перечитал несколько раз, ничего не понял.
что нужно сделать?


"запретить транзитный трафик для mac адреса"
Отправлено lesta , 23-Янв-11 09:40 
> перечитал несколько раз, ничего не понял.
> что нужно сделать?

запретить транзитный трафик с определенного мак-адреса в локальной сети, то есть в пределах eth1


"запретить транзитный трафик для mac адреса"
Отправлено ДорогойДрук , 23-Янв-11 10:30 
> запретить транзитный трафик с определенного мак-адреса в локальной сети, то есть в
> пределах eth1

Попробуйте дропать в прероутинге, хотя я все-равно не понимаю формулировку задачи.


"запретить транзитный трафик для mac адреса"
Отправлено lesta , 23-Янв-11 12:48 
>> запретить транзитный трафик с определенного мак-адреса в локальной сети, то есть в
>> пределах eth1
> Попробуйте дропать в прероутинге, хотя я все-равно не понимаю формулировку задачи.

не работает и в PREROUTING


"запретить транзитный трафик для mac адреса"
Отправлено stels , 23-Янв-11 16:46 

> запретить транзитный трафик с определенного мак-адреса в локальной сети, то есть в
> пределах eth1

Вы хотите дропать пакет который просто гуляет по сети подключенной к роутеру?


"запретить транзитный трафик для mac адреса"
Отправлено skeletor , 23-Янв-11 16:50 
Вы не можете фильтровать трафик, адресованный не вам.
Если 2 компа общаются в локалке между собой, то третий в этой локалке
никак не может фильтровать трафик взаимодействия этих 2 компов.

"запретить транзитный трафик для mac адреса"
Отправлено lesta , 24-Янв-11 13:04 
> Вы не можете фильтровать трафик, адресованный не вам.
> Если 2 компа общаются в локалке между собой, то третий в этой
> локалке
> никак не может фильтровать трафик взаимодействия этих 2 компов.

Почему? это какое-то ограничение ipchains? эти два компа общаются в сети через роутер.
есть трафик -
Jan 22 17:57:45 asp kernel: TEST IN=eth1 OUT=eth1 SRC=XX.XX.XX.XX DST=YY.YY.YY.YY LEN=84 TOS=0x00 PREC=0x00 TTL=126 ID=32901 PROTO=ICMP TYPE=0 CODE=0 ID=1135 SEQ=3191
если дропать его по ip-адресу - все работает, по mac-адресу нет.


"запретить транзитный трафик для mac адреса"
Отправлено skeletor , 24-Янв-11 13:14 
> Почему? это какое-то ограничение ipchains? эти два компа общаются в сети через
> роутер.
> есть трафик -
> Jan 22 17:57:45 asp kernel: TEST IN=eth1 OUT=eth1 SRC=XX.XX.XX.XX DST=YY.YY.YY.YY LEN=84
> TOS=0x00 PREC=0x00 TTL=126 ID=32901 PROTO=ICMP TYPE=0 CODE=0 ID=1135 SEQ=3191
> если дропать его по ip-адресу - все работает, по mac-адресу нет.

Локальная сеть в данном случае подразумивает прямое общение в пределах ОДНОЙ сети, без участия роутера, а не то, что вы подумали.
Если же компы общаются через роутер - то они уже находятся не в одной локальной сети, а в разных.

Вы видимо неправильно составляете правило для блокировки MAC-адресов. Вот пример:

/sbin/iptables -A INPUT -m mac --mac-source 00:0F:EA:91:04:08 -j DROP

Здесь ещё есть примеры
http://www.cyberciti.biz/tips/iptables-mac-address-filtering...
http://ru.wikipedia.org/wiki/Iptables#mac

"запретить транзитный трафик для mac адреса"
Отправлено lesta , 25-Янв-11 11:42 
>[оверквотинг удален]
>> если дропать его по ip-адресу - все работает, по mac-адресу нет.
> Локальная сеть в данном случае подразумивает прямое общение в пределах ОДНОЙ сети,
> без участия роутера, а не то, что вы подумали.
> Если же компы общаются через роутер - то они уже находятся не
> в одной локальной сети, а в разных.
> Вы видимо неправильно составляете правило для блокировки MAC-адресов. Вот пример:
>
/sbin/iptables -A INPUT -m mac --mac-source 00:0F:EA:91:04:08 -j DROP

> Здесь ещё есть примеры
> http://www.cyberciti.biz/tips/iptables-mac-address-filtering...
> http://ru.wikipedia.org/wiki/Iptables#mac

так и делаю. работает между eth0 и eth1. если трафик как в примере выше, в пределах одной сетевой карты - не работает.


"запретить транзитный трафик для mac адреса"
Отправлено Andrey Mitrofanov , 25-Янв-11 11:58 
А можно я повторю? А я всё равно повторю.

Пакеты не попадают туде, где ты их фильтруешь.
РацЫя на танке!

GOTO :BEGIN


"запретить транзитный трафик для mac адреса"
Отправлено lesta , 05-Фев-11 16:42 
> А можно я повторю? А я всё равно повторю.
> Пакеты не попадают туде, где ты их фильтруешь.
> РацЫя на танке!
> GOTO :BEGIN

да хоть на БТР-е. выражаясь твоей терминологией, если фильтровать по IP-адресу пакеты попадают, если фильтровать по mac-адресу не попадают.
на ядре 2.6.26 и iptables 1.4.2 тоже самое


"запретить транзитный трафик для mac адреса"
Отправлено Andrey Mitrofanov , 05-Фев-11 18:12 
>На eth1 много виланов.
> Jan 22 17:57:45 asp kernel: TEST IN=eth1 OUT=eth1 SRC=XX.XX.XX.XX DST=XX.XX.XX.XX LEN=84
> TOS=0x00 PREC=0x00 TTL=126 ID=32901 PROTO=ICMP TYPE=0 CODE=0 ID=1135 SEQ=3191

А то, что в логе про виланы ничего не видно, это нормально? (Я просто спросил-)

> в цепочке INPUT все работает, и в логе присутствует mac-адрес.
> всякие ухищрения с mark ведут себя точно так же.
> ядро 2.4.22

2._4_.22??
Может оно просто не умеет того, что ты хочешь?
Например, пакеты проходящие через мост с интерфейса на интерфейс стало можно фильтровать netfilter-ом только примерно с версии ядра 2.6.26 afair.

> iptables v1.4.10

Э, гм... и _такой (~2.6.36 ядра) новый iptables? Может, и ядро по-новее взять там же, где?...


"запретить транзитный трафик для mac адреса"
Отправлено lesta , 05-Фев-11 18:44 
>> в цепочке INPUT все работает, и в логе присутствует mac-адрес.
>> всякие ухищрения с mark ведут себя точно так же.
>> ядро 2.4.22
> 2._4_.22??
> Может оно просто не умеет того, что ты хочешь?
> Например, пакеты проходящие через мост с интерфейса на интерфейс стало можно фильтровать
> netfilter-ом только примерно с версии ядра 2.6.26 afair.

не очень понял про мост, с физического интерфейса на физический работает и на 2.4. На одном физическом и нескольких виланах (уже попробовал - 2.6.26 (debian 5.0.8)) по mac-адресу не работает.

>> iptables v1.4.10
> Э, гм... и _такой (~2.6.36 ядра) новый iptables? Может, и ядро по-новее
> взять там же, где?...

попробовал на ядре 2.6.26
iptables v1.4.2


"запретить транзитный трафик для mac адреса"
Отправлено Andrey Mitrofanov , 05-Фев-11 22:38 
>>На eth1 много виланов.
>> Jan 22 17:57:45 asp kernel: TEST IN=eth1 OUT=eth1 SRC=XX.XX.XX.XX DST=XX.XX.XX.XX LEN=84
>> TOS=0x00 PREC=0x00 TTL=126 ID=32901 PROTO=ICMP TYPE=0 CODE=0 ID=1135 SEQ=3191
> А то, что в логе про виланы ничего не видно, это нормально?
> (Я просто спросил-)

Вот я у себя сделал vlan-интерфейс и "поймал" на нём исходящий ping:

IN= OUT=eth0.10 SRC=1.1.1.2 DST=1.1.1.1 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=ICMP TYPE=8 CODE=0 ID=24372 SEQ=2

Сравни название интерфейса в моей строчке и в своей?

Много vlan-ов точно есть? Мне отсюда плохо видно. Вот так примерно --

# ip l|grep UP
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
3: eth0.20@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
4: eth0.10@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP


"запретить транзитный трафик для mac адреса"
Отправлено lesta , 06-Фев-11 12:47 
> IN= OUT=eth0.10 SRC=1.1.1.2 DST=1.1.1.1 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=ICMP
> TYPE=8 CODE=0 ID=24372 SEQ=2
> Сравни название интерфейса в моей строчке и в своей?

да это просто ошибка была, возможно случайно затер. вот так выглядит лог -
Feb  6 11:43:32 duc kernel: TEST IN=eth1 OUT=eth1.20 SRC=XX.XX.XX.XX DST=YY.YY.YY.YY LEN=84 TOS=0x00 PREC=0x00 TTL=63 ID=0 DF PROTO=ICMP TYPE=8 CODE=0 ID=25110 SEQ=3

> Много vlan-ов точно есть? Мне отсюда плохо видно. Вот так примерно --

root@duc root~# ip l | grep UP
1: lo: <LOOPBACK,UP> mtu 16436 qdisc noqueue
2: eth0: <BROADCAST,MULTICAST,PROMISC,UP> mtu 1500 qdisc cbq qlen 1000
3: eth1: <BROADCAST,MULTICAST,PROMISC,UP> mtu 1500 qdisc cbq qlen 1000
4: eth1.2: <BROADCAST,MULTICAST,PROMISC,UP> mtu 1500 qdisc noqueue
6: eth1.20: <BROADCAST,MULTICAST,PROMISC,UP> mtu 1500 qdisc noqueue
7: eth1.102: <BROADCAST,MULTICAST,PROMISC,UP> mtu 1500 qdisc noqueue
8: eth1.103: <BROADCAST,MULTICAST,PROMISC,UP> mtu 1500 qdisc noqueue
9: eth1.104: <BROADCAST,MULTICAST,PROMISC,UP> mtu 1500 qdisc noqueue
10: eth1.105: <BROADCAST,MULTICAST,PROMISC,UP> mtu 1500 qdisc noqueue
11: eth1.106: <BROADCAST,MULTICAST,PROMISC,UP> mtu 1500 qdisc noqueue
12: eth1.107: <BROADCAST,MULTICAST,PROMISC,UP> mtu 1500 qdisc noqueue
13: eth1.108: <BROADCAST,MULTICAST,PROMISC,UP> mtu 1500 qdisc noqueue
14: eth1.109: <BROADCAST,MULTICAST,PROMISC,UP> mtu 1500 qdisc noqueue
15: eth1.110: <BROADCAST,MULTICAST,PROMISC,UP> mtu 1500 qdisc noqueue
16: eth1.111: <BROADCAST,MULTICAST,PROMISC,UP> mtu 1500 qdisc noqueue
17: eth1.112: <BROADCAST,MULTICAST,PROMISC,UP> mtu 1500 qdisc noqueue
18: eth1.113: <BROADCAST,MULTICAST,PROMISC,UP> mtu 1500 qdisc noqueue
19: eth1.114: <BROADCAST,MULTICAST,PROMISC,UP> mtu 1500 qdisc noqueue
20: eth1.115: <BROADCAST,MULTICAST,PROMISC,UP> mtu 1500 qdisc noqueue
21: eth1.116: <BROADCAST,MULTICAST,PROMISC,UP> mtu 1500 qdisc noqueue
22: eth1.117: <BROADCAST,MULTICAST,PROMISC,UP> mtu 1500 qdisc noqueue
23: eth1.118: <BROADCAST,MULTICAST,PROMISC,UP> mtu 1500 qdisc noqueue
24: eth1.119: <BROADCAST,MULTICAST,PROMISC,UP> mtu 1500 qdisc noqueue
25: eth1.120: <BROADCAST,MULTICAST,PROMISC,UP> mtu 1500 qdisc noqueue
26: eth1.130: <BROADCAST,MULTICAST,PROMISC,UP> mtu 1500 qdisc noqueue

ps. отказ от vlan1 тоже ни к чему не ведет.