LINUX.ORG.RU
ФорумAdmin

вопрос по iptables

 ,


1

1

делаю запрет на выход в инет маку

root@OpenWrt:~# iptables -A forwarding_rule -m mac --mac-source 0a:0a:0a:0a:0a:0a -j ACCEPT
root@OpenWrt:~# iptables -A forwarding_rule -j DROP

всё ок, выход идет только с этого мака. Но вот когда потом пытаюсь добавить еще один мак

root@OpenWrt:~# iptables -A forwarding_rule -m mac --mac-source 01:01:01:01:01:01 -j ACCEPT

он в инет не выходит. Что нужно еще выполнить, чтоб заработало?


Ответ на: комментарий от hbars

Да, всё верно. Спасибо. сделал так

root@OpenWrt:~# iptables -D forwarding_rule -j DROP
root@OpenWrt:~# iptables -A forwarding_rule -m mac --mac-source 01:01:01:01:01:01 -j ACCEPT
root@OpenWrt:~# iptables -A forwarding_rule -j DROP

всё ок

avin ()

да не, не, можно и без второго DROP
косяк в очередности правил
получается, что второй мак добавляется после DROP, т.е. все пакеты попадают в дроп и так как удовлетворяют условиям дальше не обрабатываются

надо добавлять через iptables -I(заглавная i), тогда правило добавляется в начало списка

можно iptables -I forwarding_rule [номер] чтобы в точную позицию вставить правило

ii343hbka ★★★ ()
Последнее исправление: ii343hbka (всего исправлений: 1)

верно подметили, порядок правил. Можешь ещё использовать ключ -I (--insert), добавляющий правило в самое начало данной цепочки.

Когда маков станет много, удобнее использовать ipset. Создается сет с маками, а в iptables делаешь что-то вроде

iptables -A forwarding_rule -m set --set allowed_mac src -j ACCEPT
iptables -A forwarding_rule -j DROP
по ipset точный синтаксис не помню, но было похожее с iptables:

ipset -A allowed_max 00-00-4d-3f-11-11

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