Почему не срабатывает IPFW

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
kerogaz
рядовой
Сообщения: 17
Зарегистрирован: 2015-04-15 10:52:03

Почему не срабатывает IPFW

Непрочитанное сообщение kerogaz » 2015-05-20 16:54:40

Я на шлюзе с NAT Freebsd 10.1 прописываю

Код: Выделить всё

ipfw add deny all from any to any MAC any 00:1c:c0:f1:cb:c8  mac-type ipv4

Код: Выделить всё

ipfw show                                                                 
00100      0         0 allow ip from any to any via lo0
00200      0         0 deny ip from any to 127.0.0.0/8
00300      0         0 deny ip from 127.0.0.0/8 to any
00400      2        96 allow tcp from any to any dst-port 22 via em1
00500      2        80 allow tcp from any 22 to any via em1
00600 385568  48168678 nat 1 ip from table(0) to any out via em0
00700 508090 560540026 nat 1 ip from any to any in via em0
00800 919599 610498805 allow ip from any to any
00900      0         0 allow tcp from any to any dst-port 80
01000      0         0 deny ip from any to any MAC any 00:1c:c0:f1:cb:c8 mac-type 0x0800
65535      0         0 deny ip from any to any
но компьютер с таким MAC свободно проходит через NATиз локальной сети в интернет

Отправлено спустя 1 час 7 минут 57 секунд:
Я помню в iptables тоже не работала фильтрация по MAC пока строку не поставишь в начало таблицы . Может и здесь по этой причине не работает

Отправлено спустя 9 минут 12 секунд:
Так работала

Код: Выделить всё

iptables -I FORWARD -m mac --mac-source EC:55:F9:88:E9:DA -j DROP
а так не работала

Код: Выделить всё

iptables -A FORWARD -m mac --mac-source EC:55:F9:88:E9:DA -j DROP
Последний раз редактировалось f_andrey 2015-05-20 16:36:49, всего редактировалось 1 раз.
Причина: Автору. пожалуйста, выбирайте соответствующий раздел форума.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
BirdGovorun
лейтенант
Сообщения: 878
Зарегистрирован: 2009-10-20 20:27:13
Откуда: Харьков.

Почему не срабатывает IPFW

Непрочитанное сообщение BirdGovorun » 2015-05-20 17:24:26

Правило до НАТа поставить.

Аватара пользователя
kerogaz
рядовой
Сообщения: 17
Зарегистрирован: 2015-04-15 10:52:03

Почему не срабатывает IPFW

Непрочитанное сообщение kerogaz » 2015-05-20 17:41:26

Поставил

Код: Выделить всё

ipfw show
00100        0           0 allow ip from any to any via lo0
00200        0           0 deny ip from any to 127.0.0.0/8
00300        0           0 deny ip from 127.0.0.0/8 to any
00400      482       47875 allow tcp from any to any dst-port 22 via em1
00450        0           0 deny ip from any to any MAC any 00:1c:c0:f1:cb:c8 mac-type 0x0800
00500      447      184004 allow tcp from any 22 to any via em1
00600 10827389  1184816186 nat 1 ip from table(0) to any out via em0
00700 16209842 21144180396 nat 1 ip from any to any in via em0
00800 27340964 22360778221 allow ip from any to any
00900        0           0 allow tcp from any to any dst-port 80
65535        0           0 deny ip from any to any
Всё равно не работает. Я MAC своего компьютерз забанил но с вами продолжаю общаться

Отправлено спустя 8 минут 54 секунды:
Поставил ещё выше

Код: Выделить всё

ipfw show
00100        0           0 allow ip from any to any via lo0
00200        0           0 deny ip from any to 127.0.0.0/8
00300        0           0 deny ip from 127.0.0.0/8 to any
00350        0           0 deny ip from any to any MAC any 00:1c:c0:f1:cb:c8 mac-type 0x0800
00400      485       48184 allow tcp from any to any dst-port 22 via em1
00500      451      184207 allow tcp from any 22 to any via em1
00600 11203538  1216835665 nat 1 ip from table(0) to any out via em0
00700 16723398 21820239431 nat 1 ip from any to any in via em0
00800 28243774 23070007021 allow ip from any to any
00900        0           0 allow tcp from any to any dst-port 80
65535        0           0 deny ip from any to any
-всё равно не фильтрует

Аватара пользователя
BirdGovorun
лейтенант
Сообщения: 878
Зарегистрирован: 2009-10-20 20:27:13
Откуда: Харьков.

Почему не срабатывает IPFW

Непрочитанное сообщение BirdGovorun » 2015-05-20 20:08:20

kerogaz писал(а):Я на шлюзе с NAT Freebsd 10.1 прописываю

Код: Выделить всё

ipfw add deny all from any to any MAC any 00:1c:c0:f1:cb:c8  mac-type ipv4
Не обратил сразу внимание как-бы так:

Код: Выделить всё

ipfw add deny all from any to any MAC src-mac 00:1c:c0:f1:cb:c8  mac-type ipv4

Аватара пользователя
kerogaz
рядовой
Сообщения: 17
Зарегистрирован: 2015-04-15 10:52:03

Почему не срабатывает IPFW

Непрочитанное сообщение kerogaz » 2015-05-21 8:01:55

Код: Выделить всё

pfw add deny all from any to any MAC src-mac 00:1c:c0:f1:cb:c8  mac-type ipv4
iipfw: Incorrect MAC address
Вот что в мане написано

Код: Выделить всё

Фильтрация по MAC заголовкам и использование систем защиты сетей на
уровне 2.
ipfw1 не осуществляет фильтрацию по полям MAC заголовков на пакетах
вызванных, ни от ether_demux() ни от ether_output_frame(). Переменная
sysctl net.link.ether.ipfw  там не действует.
Варианты
Следующие варианты не поддерживаются в ipfw1
dst-ip, dst-port, layer2, mac, mac-type, src-ip, src-port.
Дополнительно, следующие варианты не поддерживаются в правилах ipfw1
(RELENG_4):
ipid, iplen, ipprecedence, iptos, ipttl, ipversion, Cm tcpack, tcpseq,
tcpwin.
http://www.opennet.ru/base/net/ipfw_man.txt.html

Отправлено спустя 12 минут 51 секунду:
Так что, получается что нельзя фильтровать по MAC вообще? Это жесть.

Отправлено спустя 26 минут 51 секунду:
А IP-адрес фильтруется элементарно, только его в самый верх надо ставить

Код: Выделить всё

ipfw add 10 deny all from 10.44.3.10 to me
Хоть так закрыл

Аватара пользователя
BirdGovorun
лейтенант
Сообщения: 878
Зарегистрирован: 2009-10-20 20:27:13
Откуда: Харьков.

Почему не срабатывает IPFW

Непрочитанное сообщение BirdGovorun » 2015-05-21 8:58:39

kerogaz писал(а):

Код: Выделить всё

ipfw add deny all from any to any MAC src-mac 00:1c:c0:f1:cb:c8  mac-type ipv4
iipfw: Incorrect MAC address
src-mac ipfw воспринял как Incorrect MAC address попробуйте:

Код: Выделить всё

ipfw add deny all from any to any MAC  00:1c:c0:f1:cb:c8  mac-type ipv4

Аватара пользователя
kerogaz
рядовой
Сообщения: 17
Зарегистрирован: 2015-04-15 10:52:03

Почему не срабатывает IPFW

Непрочитанное сообщение kerogaz » 2015-05-21 9:14:06

Код: Выделить всё

ipfw add deny all from any to any MAC  00:1c:c0:f1:cb:c8  mac-type ipv4
ipfw: Incorrect MAC address
Отправлено спустя 2 минуты 56 секунд:
Только так не ругается, поставил на самый верх но всё равно нифига

Код: Выделить всё

ipfw add 9 deny all from any to any MAC any  00:1c:c0:f1:cb:c8  mac-type ipv4
00009 deny ip from any to any MAC any 00:1c:c0:f1:cb:c8 mac-type 0x0800

Код: Выделить всё

 ipfw show
00009        0           0 deny ip from any to any MAC any 00:1c:c0:f1:cb:c8 mac-type 0x0800
00010        0           0 deny ip from 10.44.3.10 to me
00100        0           0 allow ip from any to any via lo0
00200        0           0 deny ip from any to 127.0.0.0/8
00300        0           0 deny ip from 127.0.0.0/8 to any
00350        0           0 deny ip from any to any MAC any 00:1c:c0:f1:cb:c8 mac-type 0x0800
00400     2473      229355 allow tcp from any to any dst-port 22 via em1
00500     2088      659769 allow tcp from any 22 to any via em1
00600 14473841  1904668202 nat 1 ip from table(0) to any out via em0
00700 21486178 27550438108 nat 1 ip from any to any in via em0
00800 36627111 29566880670 allow ip from any to any
00900        0           0 allow tcp from any to any dst-port 80
65535        0           0 deny ip from any to any

Аватара пользователя
BirdGovorun
лейтенант
Сообщения: 878
Зарегистрирован: 2009-10-20 20:27:13
Откуда: Харьков.

Почему не срабатывает IPFW

Непрочитанное сообщение BirdGovorun » 2015-05-21 9:57:55

У себя проверил, действительно не блокируется, что-то поменялось в ipfw, посмотри:
http://forum.lissyara.su/viewtopic.php?t=21660
может уже устарело.

Аватара пользователя
kerogaz
рядовой
Сообщения: 17
Зарегистрирован: 2015-04-15 10:52:03

Почему не срабатывает IPFW

Непрочитанное сообщение kerogaz » 2015-05-21 10:02:56

Я нашёл как блокировать
http://akadjon.kz/wiki/index.php/Ipfw
Но когда я прописываю

Код: Выделить всё

# sysctl net.link.ether.ipfw=1
Вся локальная сеть падает

Аватара пользователя
BirdGovorun
лейтенант
Сообщения: 878
Зарегистрирован: 2009-10-20 20:27:13
Откуда: Харьков.

Почему не срабатывает IPFW

Непрочитанное сообщение BirdGovorun » 2015-05-21 10:15:30

У меня сработало: с sysctl net.link.ether.ipfw=1
ipfw show

Код: Выделить всё

00040     30     1981 deny ip from any to any MAC 00:04:75:ff:b0:f9 any
00050 109919 47313224 nat 123 ip4 from any to any via alc0
00100     60     5760 allow ip from any to any via lo0
00200      0        0 deny ip from any to 127.0.0.0/8
00400      0        0 deny ip from any to ::1
00500      0        0 deny ip from ::1 to any
00600      0        0 allow ipv6-icmp from :: to ff02::/16
00700      0        0 allow ipv6-icmp from fe80::/10 to fe80::/10
00800      0        0 allow ipv6-icmp from fe80::/10 to ff02::/16
00900      0        0 allow ipv6-icmp from any to any ip6 icmp6types 1
01000      0        0 allow ipv6-icmp from any to any ip6 icmp6types 2,135,136
65000  97232 44404356 allow ip from any to any
65535      0        0 deny ip from any to any
до НАТа ставить надо, если после то не срабатывает.
правило убрал оставил sysctl net.link.ether.ipfw=1 всё пашет без проблем.
Последний раз редактировалось BirdGovorun 2015-05-21 10:20:23, всего редактировалось 1 раз.

Аватара пользователя
kerogaz
рядовой
Сообщения: 17
Зарегистрирован: 2015-04-15 10:52:03

Почему не срабатывает IPFW

Непрочитанное сообщение kerogaz » 2015-05-21 11:24:14

А у меня gпадает сеть. В комментариях к http://skeletor.org.ua/?p=223 у пользователя тоже падает сеть
"если протокол построен по принципу все запрещено кроме разрешенного блокируется также широковещательный трафик arp протокола,
поэтому обычно упрощают правила с помощью признака layer2, о чем есть соответствующая запись в man ipfw" Как раз мой случай :smile:
Как этой laнyer2 прописать?

Отправлено спустя 10 минут 29 секунд:
Я посмотрел man и только репу почесал :)

Код: Выделить всё

Как видно из приведенной схемы, число прохождений одного и того же
пакета через систему сетевой защиты может изменяться от 0 до 4 в
зависимости от источника пакета, адресата и системной конфигурации. В
каждом из этих мест, пакет передается ipfw со всеми (и только) полями,
которые принадлежат данному уровню. То есть, входящие пакеты будут
включать MAC заголовок, если ipfw вызван из ether_demux (), но когда
ipfw вызван из ip_input () MAC заголовок из  пакетов будет удален.
Всегда используется Законченный набор правил, независимо от места, из
которого вызван ipfw, или адреса-источника пакета. Если правило содержит
некоторые образцы соответствия или действия, которые не допустимы для
места вызова (например, требующие соответствия MAC заголовка, если ipfw
вызывают из ip_input ()), образец соответствия не будет соответствовать.
Однако оператор not перед такими образцами заставит образец всегда
соответствовать на тех пакетах, которые могли бы вызвать нежелательные
результаты. Таким образом, на ответственности программиста в случае
необходимости записывать подходящий набор правил для дифференцирования
среди возможных мест. Здесь может быть полезно правило skipto, как
пример:

# пакеты от ether_demux или bdg_forward

ipfw add 10 skipto 1000 all from any to any layer2 in

# пакеты от ip_input

ipfw add 10 skipto 2000 all from any to any not layer2 in

# пакеты от ip_output

ipfw add 10 skipto 3000 all from any to any not layer2 out

# пакеты от ether_output_frame

ipfw add 10 skipto 4000 all from any to any layer2 out
Отправлено спустя 54 минуты 7 секунд:
В статье написано

Код: Выделить всё

ПОСЛЕ ПРИМЕНЕНИЯ ЭТОЙ СТРОКИ У МЕНЯ НА КОМПАХ ПРОПАЛ ИНЕТ, ПИНГИ, ТРАССИРОВКИ ШЛИ, А ВОТ В БРАУЗЕРЕ ИНЕТА НЕ БЫЛО. ТАК ЧТО ИМЕЙТЕ ВВИДУ.
Но не написано как он это исправил.Я это никак не могу исправить кроме удаления из sysctl соответствующей строки. Но тогда не фильтруется MAC/ Кроме того у него грубая ошибка

Код: Выделить всё

#ipfw add deny all from any to any MAC src-mac 00:11:22:33:44:55 mac-type ipv4
Опция scr-mac недопустима - вместо неё надо писать any( во всяком случае я ядерном IPFW FreeBSD 10)

Аватара пользователя
kerogaz
рядовой
Сообщения: 17
Зарегистрирован: 2015-04-15 10:52:03

Почему не срабатывает IPFW

Непрочитанное сообщение kerogaz » 2015-05-22 7:19:24

В общем мне ответили как фильтровать MAC но очень неопределенно :smile:
man ipfw, секция PACKET FLOW.

Если кто-то мог бы более конкретно сказать, был бы очень благодарен

Отправлено спустя 7 минут 9 секунд:
Мир не без добрых людей. Когда вы прописываете # sysctl net.link.ether.ipfw=1 то , в моем случае "... у вас правило по умолчанию - запрет на все. и когда вы включаете ipfw на 2ом уровне - вы именно это и получаете. то есть либо вы ставите разрешение на все и пишете тех, кому запрещено, либо прописываете разрешенные маки"

FiL
ст. лейтенант
Сообщения: 1370
Зарегистрирован: 2010-02-05 0:21:40

Почему не срабатывает IPFW

Непрочитанное сообщение FiL » 2015-05-22 17:23:03

блин, давненько я не ковырял ipfw... но если мне не изменяет склероз, то таки надо указывать layer2

sysctl net.link.ether.ipfw=1
ipfw add 1100 deny layer2 mac any 00:60:83:37:b5:22 in recv xl0
ipfw add 1110 allow layer2 mac any any in recv xl0

и далее уже команды для IP...