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

Исходное сообщение
"Pomogite s BSD, ipfw, MAC i voobshe"

Отправлено serg , 02-Дек-03 08:25 
Sos, ljudi.
Situacija takaja, est' FreeBSD 4.9 router, nado:
1. perenaprovljat' ili reject po MACam. Nachitalsja man-ov, posmotrel podskazki, IPFW2 postavil, vse ok, no pochemu-to varianti tipa:
$fwcmd add 500 deny ip from any to any mac any 00:04:5a:69:dc:56/32
$fwcmd add 600 deny ip from any to any mac any 00:04:5a:69:dc:56 in out rl1
$fwcmd add 800 deny ip from any to any mac any 00:04:5a:69:dc:56
$fwcmd add 1600 allow ip from any to any MAC any any
prosto inorirujursja. Cho ne tak? Mac 00:04... - eto moj, vo vnutrenej seti. Hochu ego zaprepit'. ne rabotaet daz'e:
fwcmd add 500 deny ip from any to any mac any any
2. Esli pivjazovat' MAC arp -f.
arp -s 192.168.1.1 0:92:37:91:12:a3 pub
to mne vse svobodnie nado zapretit'?
arp -s 192.168.1.2 0:0:0:0:0:0 pub
arp -s 192.168.1.3 0:0:0:0:0:0 pub
i t.d? Esli u menja dve serie podsetki - eto 192.168.1.0 i 192.168.2.0 -
eto 512 raz rukami pisat' 0:0:0:0:0:0?



Содержание

Сообщения в этом обсуждении
"Pomogite s BSD, ipfw, MAC i voobshe"
Отправлено magr , 02-Дек-03 11:53 
Попробуй
ipfw add 1 deny mac 00:04:5a:69:dc:56 any
ipfw add 1 deny mac any 00:04:5a:69:dc:56



"Pomogite s BSD, ipfw, MAC i voobshe"
Отправлено lam , 02-Дек-03 13:13 
ipfw(8)
...
PACKET FLOW

         ^     to upper layers     V
         |                       |
         +----------->-----------+
         ^                       V
        [ip_input]            [ip_output]   net.inet.ip.fw.enable=1
         |                       |
         ^                       V
       [ether_demux]    [ether_output_frame]  net.link.ether.ipfw=1
         |                       |
         +-->--[bdg_forward]-->--+      net.link.ether.bridge_ipfw=1
         ^                       V
         |      to devices       |


На уровне ip_input() ipfw ничего не знает о MAC,
следовательно нам нужен уровень ether_demux(),
т.е. проверяем опцию
net.link.ether.ipfw=1

если бридж
net.link.ether.bridge_ipfw=1

вот ещё посмотри http://michael.gargantuan.com/FreeBSD/ipfw2.htm

P.S. 512 раз тоже можно не писать, поиск по форуму - там есть скриптик.