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

Исходное сообщение
"как в IPFW указать на MAC-адрес вместо IP ?"

Отправлено ALUM , 02-Ноя-07 14:41 
aip="192.168.2.2"
bip="192.168.2.59"
dip="192.168.2.62"

add allow all from any to ${aip} via ${natd_interface}
add allow all from any to ${bip} via ${natd_interface}
add allow all from any to ${dip} via ${natd_interface}

эти строки разрешают трём компам лезть в инет в обход прокси, напрямую. ну, клиент-банк и всё такое...
если комп долго не включают - IP меняется, блин.
как указать в этих правилах MAC-адреса чтобы, как говориться, железно было?


Содержание

Сообщения в этом обсуждении
"как в IPFW указать на MAC-адрес вместо IP ?"
Отправлено DN , 02-Ноя-07 15:17 
>add allow all from any to ${aip} via ${natd_interface}
>add allow all from any to ${bip} via ${natd_interface}
>add allow all from any to ${dip} via ${natd_interface}
>
>эти строки разрешают трём компам лезть в инет в обход прокси, напрямую.
>ну, клиент-банк и всё такое...
>если комп долго не включают - IP меняется, блин.
>как указать в этих правилах MAC-адреса чтобы, как говориться, железно было?

add allow all from any to 192.168.2.0/24 via ${natd_interface} mac aa:bb:cc:dd:ee:ff any

, где aa:bb:cc:dd:ee:ff - destination MAC

однако ;-)
Note that some of the above information, e.g. source MAC or IP addresses
     and TCP/UDP ports, could easily be spoofed, so filtering on those fields
     alone might not guarantee the desired results.

Все есть в man ipfw


"как в IPFW указать на MAC-адрес вместо IP ?"
Отправлено ALUM , 02-Ноя-07 15:55 
>[оверквотинг удален]
>
>однако ;-)
>Note that some of the above information, e.g. source MAC or IP
>addresses
>     and TCP/UDP ports, could easily be spoofed,
>so filtering on those fields
>     alone might not guarantee the desired results.
>
>
>Все есть в man ipfw

ОГРОМНОЕ СПАСИБО!
что всё можно подменить - это не секрет, но мне и так сойдёт


"как в IPFW указать на MAC-адрес вместо IP ?"
Отправлено ALUM , 02-Ноя-07 16:11 
>[оверквотинг удален]
>>     and TCP/UDP ports, could easily be spoofed,
>>so filtering on those fields
>>     alone might not guarantee the desired results.
>>
>>
>>Все есть в man ipfw
>
>ОГРОМНОЕ СПАСИБО!
>что всё можно подменить - это не секрет, но мне и так
>сойдёт

РАНО обрадовался - неработает. Блокируется весть прямой траффик.


"как в IPFW указать на MAC-адрес вместо IP ?"
Отправлено ALUM , 02-Ноя-07 16:21 
как было:
########################################
aip="192.168.2.2"
bip="192.168.2.59"
dip="192.168.2.62"

${fwcmd} add divert natd all from any to any via ${natd_interface}

${fwcmd} add allow all from any to ${aip} via ${natd_interface}
${fwcmd} add allow all from any to ${bip} via ${natd_interface}
${fwcmd} add allow all from any to ${dip} via ${natd_interface}

${fwcmd} add deny all from any to 192.168.2.0/24 via ${natd_interface}
########################################


как стало (НЕ РАБОТАЕТ):
########################################
amac="00:13:72:75:7A:26"
bmac="00:0d:87:fe:e3:40"
dmac="00:50:8d:a4:7f:78"

${fwcmd} add divert natd all from any to any via ${natd_interface}

${fwcmd} add allow all from any to 192.168.2.0/24 via ${natd_interface} mac ${amac} any
${fwcmd} add allow all from any to 192.168.2.0/24 via ${natd_interface} mac ${bmac} any
${fwcmd} add allow all from any to 192.168.2.0/24 via ${natd_interface} mac ${dmac} any

${fwcmd} add deny all from any to 192.168.2.0/24 via ${natd_interface}
########################################


"как в IPFW указать на MAC-адрес вместо IP ?"
Отправлено DN , 02-Ноя-07 16:42 
>[оверквотинг удален]
>
>${fwcmd} add allow all from any to 192.168.2.0/24 via ${natd_interface} mac ${amac}
>any
>${fwcmd} add allow all from any to 192.168.2.0/24 via ${natd_interface} mac ${bmac}
>any
>${fwcmd} add allow all from any to 192.168.2.0/24 via ${natd_interface} mac ${dmac}
>any
>
>${fwcmd} add deny all from any to 192.168.2.0/24 via ${natd_interface}
>########################################

Ну, и смотрите, что не ходит.
${fwcmd} add deny log all from any to 192.168.2.0/24 via ${natd_interface}


"как в IPFW указать на MAC-адрес вместо IP ?"
Отправлено ALUM , 02-Ноя-07 17:05 
>[оверквотинг удален]
>>${fwcmd} add allow all from any to 192.168.2.0/24 via ${natd_interface} mac ${bmac}
>>any
>>${fwcmd} add allow all from any to 192.168.2.0/24 via ${natd_interface} mac ${dmac}
>>any
>>
>>${fwcmd} add deny all from any to 192.168.2.0/24 via ${natd_interface}
>>########################################
>
>Ну, и смотрите, что не ходит.
>${fwcmd} add deny log all from any to 192.168.2.0/24 via ${natd_interface}

Ну вот именно эта строка и не пускает:
Nov  2 17:01:11 kernel: ipfw: 1800 Deny ICMP:0.0 194.87.0.50 192.168.2.2 in via bge0


"как в IPFW указать на MAC-адрес вместо IP ?"
Отправлено DN , 02-Ноя-07 17:29 
>[оверквотинг удален]
>>>
>>>${fwcmd} add deny all from any to 192.168.2.0/24 via ${natd_interface}
>>>########################################
>>
>>Ну, и смотрите, что не ходит.
>>${fwcmd} add deny log all from any to 192.168.2.0/24 via ${natd_interface}
>
>Ну вот именно эта строка и не пускает:
>Nov  2 17:01:11 kernel: ipfw: 1800 Deny ICMP:0.0 194.87.0.50 192.168.2.2 in
>via bge0

У Вас не верно написаны сами правила , так работать не будет.
Пакет пришел на интерфейс bge0, который будет иметь mac отличный от mac
адресов  этих хостов
aip="192.168.2.2"
bip="192.168.2.59"
dip="192.168.2.62"
  
Правила надо переписать , типа:
....
${fwcmd} add allow all from 192.168.2.0/24 to any in via ${internal} mac any ${amac}
${fwcmd} add allow all from 192.168.2.0/24 to any in via ${internal} mac any ${bmac}
${fwcmd} add allow all from 192.168.2.0/24 to any in via ${internal} mac any ${cmac}
${fwcmd} add allow all from 192.168.2.0/24 to $proxy in via ${internal}
${fwcmd} add deny all from 192.168.2.0/24 to any in via ${internal}
....
и дополнить.


"как в IPFW указать на MAC-адрес вместо IP ?"
Отправлено ALUM , 02-Ноя-07 17:44 
>[оверквотинг удален]
>any ${amac}
>${fwcmd} add allow all from 192.168.2.0/24 to any in via ${internal} mac
>any ${bmac}
>${fwcmd} add allow all from 192.168.2.0/24 to any in via ${internal} mac
>any ${cmac}
>${fwcmd} add allow all from 192.168.2.0/24 to $proxy in via ${internal}
>${fwcmd} add deny all from 192.168.2.0/24 to any in via ${internal}
>....
> и дополнить.
>

${internal} - это интерфейс, ip_интерфейса или подсеть?


"как в IPFW указать на MAC-адрес вместо IP ?"
Отправлено ALUM , 02-Ноя-07 17:53 
>[оверквотинг удален]
>>any ${bmac}
>>${fwcmd} add allow all from 192.168.2.0/24 to any in via ${internal} mac
>>any ${cmac}
>>${fwcmd} add allow all from 192.168.2.0/24 to $proxy in via ${internal}
>>${fwcmd} add deny all from 192.168.2.0/24 to any in via ${internal}
>>....
>> и дополнить.
>>
>
>${internal} - это интерфейс, ip_интерфейса или подсеть?

интерфейс.
но вообще всё упало, вообще ВСЁ. пришлось на консоль бежать, реанимировать.


"как в IPFW указать на MAC-адрес вместо IP ?"
Отправлено DN , 02-Ноя-07 20:28 
>[оверквотинг удален]
>>>${fwcmd} add allow all from 192.168.2.0/24 to $proxy in via ${internal}
>>>${fwcmd} add deny all from 192.168.2.0/24 to any in via ${internal}
>>>....
>>> и дополнить.
>>>
>>
>>${internal} - это интерфейс, ip_интерфейса или подсеть?
>
>интерфейс.
>но вообще всё упало, вообще ВСЁ. пришлось на консоль бежать, реанимировать.

;-))) , аккуратней !

internal="fxp1"
${internal} - подстановка в sh  . Конечно, внутренний интерфейс по контексту.


"как в IPFW указать на MAC-адрес вместо IP ?"
Отправлено ALUM , 02-Ноя-07 20:47 
>[оверквотинг удален]
>>>${internal} - это интерфейс, ip_интерфейса или подсеть?
>>
>>интерфейс.
>>но вообще всё упало, вообще ВСЁ. пришлось на консоль бежать, реанимировать.
>
>;-))) , аккуратней !
>
>internal="fxp1"
>${internal} - подстановка в sh  . Конечно, внутренний интерфейс по контексту.
>

Ну вообщем, не получилось и не получается...


"как в IPFW указать на MAC-адрес вместо IP ?"
Отправлено Gremlin19 , 02-Ноя-07 23:28 
>>[оверквотинг удален]
>Ну вообщем, не получилось и не получается...

может стоит посмотреть сюда:
#man ipfw

     { MAC | mac } dst-mac src-mac
             Match packets with a given dst-mac and src-mac addresses, speci-
             fied as the any keyword (matching any MAC address), or six groups
             of hex digits separated by colons, and optionally followed by a
             mask indicating the significant bits.  The mask may be specified
             using either of the following methods:

             1.      A slash (/) followed by the number of significant bits.
                     For example, an address with 33 significant bits could be
                     specified as:

                           MAC 10:20:30:40:50:60/33 any

             2.      An ampersand (&) followed by a bitmask specified as six
                     groups of hex digits separated by colons.  For example,
                     an address in which the last 16 bits are significant
                     could be specified as:

                           MAC 10:20:30:40:50:60&00:00:00:00:ff:ff any

                     Note that the ampersand character has a special meaning
                     in many shells and should generally be escaped.

             Note that the order of MAC addresses (destination first, source
             second) is the same as on the wire, but the opposite of the one
             used for IP addresses.


byte 45952


"как в IPFW указать на MAC-адрес вместо IP ?"
Отправлено Gremlin19 , 02-Ноя-07 23:54 
>>>[оверквотинг удален]
>>Ну вообщем, не получилось и не получается...
>
>может стоит посмотреть сюда:
>#man ipfw
>
>     { MAC | mac } dst-mac src-mac

а так же
и покажи пжлста
sysctl -a | grep net.link.ether.ipfw


"как в IPFW указать на MAC-адрес вместо IP ?"
Отправлено ALUM , 03-Ноя-07 08:28 
>[оверквотинг удален]
>>>Ну вообщем, не получилось и не получается...
>>
>>может стоит посмотреть сюда:
>>#man ipfw
>>
>>     { MAC | mac } dst-mac src-mac
>
>а так же
>и покажи пжлста
>sysctl -a | grep net.link.ether.ipfw

# sysctl -a | grep net.link.ether.ipfw
net.link.ether.ipfw: 0
#


"как в IPFW указать на MAC-адрес вместо IP ?"
Отправлено Gremlin19 , 03-Ноя-07 20:34 
>[оверквотинг удален]
>>>
>>>     { MAC | mac } dst-mac src-mac
>>
>>а так же
>>и покажи пжлста
>>sysctl -a | grep net.link.ether.ipfw
>
># sysctl -a | grep net.link.ether.ipfw
>net.link.ether.ipfw: 0
>#

ну и чиво вы хотите?

если man sysctl не помогает, тогда может гугл?

net.link.ether.ipfw - если 1, то ipfw2 позволяет фильтровать по MAC адресам


"как в IPFW указать на MAC-адрес вместо IP ?"
Отправлено DN , 06-Ноя-07 12:03 
>>internal="fxp1"
>>${internal} - подстановка в sh  . Конечно, внутренний интерфейс по контексту.
>>
>
>Ну вообщем, не получилось и не получается...

ipfw show  в студию.
Посмотрите также  переменные ядра от раннего поста.


"как в IPFW указать на MAC-адрес вместо IP ?"
Отправлено ALUM , 06-Ноя-07 13:40 
вот, но я вычеркнул конкретные правила, например доступ к 80 порту, доступ к 21 порту...

# ipfw show
00100 163424  79295602 allow ip from any to any via lo0
00200      0         0 deny log logamount 100 ip from any to 127.0.0.0/8
00300      0         0 deny log logamount 100 ip from 127.0.0.0/8 to any
00400      0         0 deny ip from 192.168.2.0/24 to any in via bge0
00500      0         0 deny ip from 194.***.***.0/24 to any in via rl0
00600     58      4524 deny ip from any to 10.0.0.0/8 via bge0
00700      0         0 deny ip from any to 172.16.0.0/12 via bge0
00800   8680    901683 deny ip from any to 192.168.0.0/16 via bge0
00900      0         0 deny ip from any to 0.0.0.0/8 via bge0
01000      0         0 deny ip from any to 169.254.0.0/16 via bge0
01100      0         0 deny ip from any to 192.0.2.0/24 via bge0
01200      0         0 deny ip from any to 224.0.0.0/4 via bge0
01300    251    102425 deny ip from any to 240.0.0.0/4 via bge0
01400 230498  98865982 divert 8668 ip from any to any via bge0
01500      3       957 allow ip from any to 192.168.2.1 via bge0
01600      0         0 allow ip from any to 192.168.2.2 via bge0
01700    993    206938 allow ip from any to 192.168.2.59 via bge0
01800      0         0 allow ip from any to 192.168.2.62 via bge0
01900     11       476 deny log logamount 100 ip from any to 192.168.2.0/24 via bge0
02000      0         0 deny log logamount 100 ip from 10.0.0.0/8 to any via bge0
02100      0         0 deny log logamount 100 ip from 172.16.0.0/12 to any via bge0
02200      0         0 deny log logamount 100 ip from 192.168.0.0/16 to any via bge0
02300      0         0 deny log logamount 100 ip from 0.0.0.0/8 to any via bge0
02400      0         0 deny log logamount 100 ip from 169.254.0.0/16 to any via bge0
02500      0         0 deny log logamount 100 ip from 192.0.2.0/24 to any via bge0
02600      0         0 deny log logamount 100 ip from 224.0.0.0/4 to any via bge0
02700      0         0 deny log logamount 100 ip from 240.0.0.0/4 to any via bge0
02800 355650 194195648 allow tcp from any to any established
02900      0         0 allow ip from any to any frag
03700     11       592 deny log logamount 100 tcp from any to any in via bge0 setup
03800  14243    821440 allow tcp from any to any setup
65535  15130   1939862 allow ip from any to any
#


"как в IPFW указать на MAC-адрес вместо IP ?"
Отправлено DN , 06-Ноя-07 14:36 
>вот, но я вычеркнул конкретные правила, например доступ к 80 порту, доступ
>к 21 порту...

Посмотрите на "классику жанра" в /etc/rc.firewall , раздел simple .

internal="rl0"          #  ? ваш внутренний интерфейс
oip="192.168.2.1"       # ? ваш ip на внутреннем интерсейсе  
proxy="aaa.bbb.ccc.ddd" # ip вашего проху

amac="00:13:72:75:7A:26"
bmac="00:0d:87:fe:e3:40"
dmac="00:50:8d:a4:7f:78"

${fwcmd} add allow ip from any to any via lo0
${fwcmd} add deny log logamount 100 ip from any to 127.0.0.0/8
${fwcmd} add deny log logamount 100 ip from 127.0.0.0/8 to any

${fwcmd} add deny ip from any to 10.0.0.0/8 via bge0
${fwcmd} add deny ip from any to 172.16.0.0/12 via bge0
${fwcmd} add deny ip from any to 192.168.0.0/16 via bge0  
${fwcmd} add deny ip from any to 0.0.0.0/8 via bge0
${fwcmd} add deny ip from any to 169.254.0.0/16 via bge0
${fwcmd} add deny ip from any to 192.0.2.0/24 via bge0
${fwcmd} add deny ip from any to 224.0.0.0/4 via bge0
${fwcmd} add deny ip from any to 240.0.0.0/4 via bge0

${fwcmd} add divert 8668 ip from any to any via bge0

${fwcmd} add deny ip from 10.0.0.0/8 to any via bge0
${fwcmd} add deny ip from 172.16.0.0/12 to any via bge0
${fwcmd} add deny ip from 192.168.0.0/16 to any via bge0
${fwcmd} add deny ip from 0.0.0.0/8 to any via bge0
${fwcmd} add deny ip from 169.254.0.0/16 to any via bge0
${fwcmd} add deny ip from 192.0.2.0/24 to any via bge0
${fwcmd} add deny ip from 224.0.0.0/4 to any via bge0
${fwcmd} add deny ip from 240.0.0.0/4 to any via bge0

${fwcmd} add allow tcp from any to any established
${fwcmd} add allow ip from any to any frag        
${fwcmd} add deny log logamount 100 tcp from any to any in via bge0 setup

${fwcmd} add allow all from 192.168.2.0/24 to any in via ${internal} mac any ${amac}
${fwcmd} add allow all from 192.168.2.0/24 to any in via ${internal} mac any ${bmac}
${fwcmd} add allow all from 192.168.2.0/24 to any in via ${internal} mac any ${cmac}
${fwcmd} add allow all from 192.168.2.0/24 to ${proxy} in via ${internal}
${fwcmd} add deny log all from 192.168.2.0/24 to any in via ${internal}
  
${fwcmd} allow tcp from any to any setup
...
${fwcmd} add pass udp from ${oip} to any 53 keep-state
${fwcmd} add  ... всякие ntp  и т.п.  
${fwcmd} add  ... всякие icmp  
...
${fwcmd} add deny log ip from any to any
65535  deny ip from any to any

Типа того. Коли Вы что-то вычеркнули, то и добавьте.
Про переменные ядра не забудьте.


"как в IPFW указать на MAC-адрес вместо IP ?"
Отправлено ALUM , 06-Ноя-07 16:08 
>[оверквотинг удален]
>...
>${fwcmd} add pass udp from ${oip} to any 53 keep-state
>${fwcmd} add  ... всякие ntp  и т.п.
>${fwcmd} add  ... всякие icmp
>...
>${fwcmd} add deny log ip from any to any
>65535  deny ip from any to any
>
>Типа того. Коли Вы что-то вычеркнули, то и добавьте.
>Про переменные ядра не забудьте.

всё что вы написали - всё это имеется, я просто не стал тут расписывать в подробностях свой rc.firewall
переменныая ядра что-то типа "РАЗРЕШИТЬ_ВСЁ"


"как в IPFW указать на MAC-адрес вместо IP ?"
Отправлено Gremlin19 , 06-Ноя-07 16:13 
Товарищ зачинщик темы, обратите внимание на пост

>net.link.ether.ipfw - если 1, то ipfw2 позволяет фильтровать по MAC адресам

Это именно то что вам не хватает.


"как в IPFW указать на MAC-адрес вместо IP ?"
Отправлено ALUM , 07-Ноя-07 17:54 
>Товарищ зачинщик темы, обратите внимание на пост
>
>>net.link.ether.ipfw - если 1, то ipfw2 позволяет фильтровать по MAC адресам
>
>Это именно то что вам не хватает.

А КАК ЕГО ПОСТАВИТЬ В "1" ?


"как в IPFW указать на MAC-адрес вместо IP ?"
Отправлено DN , 07-Ноя-07 18:00 
>>Товарищ зачинщик темы, обратите внимание на пост
>>
>>>net.link.ether.ipfw - если 1, то ipfw2 позволяет фильтровать по MAC адресам
>>
>>Это именно то что вам не хватает.
>
>А КАК ЕГО ПОСТАВИТЬ В "1" ?

:-)

sysctl net.link.ether.ipfw=1



"как в IPFW указать на MAC-адрес вместо IP ?"
Отправлено ALUM , 16-Янв-08 17:44 
>[оверквотинг удален]
>>>
>>>>net.link.ether.ipfw - если 1, то ipfw2 позволяет фильтровать по MAC адресам
>>>
>>>Это именно то что вам не хватает.
>>
>>А КАК ЕГО ПОСТАВИТЬ В "1" ?
>
>:-)
>
>sysctl net.link.ether.ipfw=1

А что будет после перезагрузки? Сбросится в ноль?


"как в IPFW указать на MAC-адрес вместо IP ?"
Отправлено MASiK , 17-Мрт-09 19:41 
>[оверквотинг удален]
>>>>
>>>>Это именно то что вам не хватает.
>>>
>>>А КАК ЕГО ПОСТАВИТЬ В "1" ?
>>
>>:-)
>>
>>sysctl net.link.ether.ipfw=1
>
>А что будет после перезагрузки? Сбросится в ноль?

Тема старая ну не удержался...

ee /etc/sysctl.conf