Значит так:
br0 - смотрит в контролируемую сеть
br1 - во внешнюю
<mac#> - маки внутренних машин
ebtables -N forward_filter_0to1
ebtables -N forward_filter_1to0
ebtables -A FORWARD -i br0 -o br1 -j forward_filter_0to1
ebtables -A FORWARD -i br0 -o br1 -j DROP
ebtables -A FORWARD -i br1 -o br0 -j forward_filter_1to0
ebtables -A FORWARD -i br1 -o br0 -j DROP
ebtables -A forward_filter_0to1 -s <mac1> -j ACCEPT
ebtables -A forward_filter_0to1 -s <mac2> -j ACCEPT
ebtables -A forward_filter_1to0 -d <mac1> -j ACCEPT
ebtables -A forward_filter_1to0 -d <mac2> -j ACCEPT
Правила, проверяющие IP, пиши в те же цепочки. И - читай man ebtables!
Чего не ясно - спрашивай. Только, еще раз прошу, подробнее!