Страница 1 из 1
Почему не срабатывает IPFW
Добавлено: 2015-05-20 16:54:40
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 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
Почему не срабатывает IPFW
Добавлено: 2015-05-20 17:24:26
BirdGovorun
Правило до НАТа поставить.
Почему не срабатывает IPFW
Добавлено: 2015-05-20 17:41:26
kerogaz
Поставил
Код: Выделить всё
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
-всё равно не фильтрует
Почему не срабатывает IPFW
Добавлено: 2015-05-20 20:08:20
BirdGovorun
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
Почему не срабатывает IPFW
Добавлено: 2015-05-21 8:01:55
kerogaz
Код: Выделить всё
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
Добавлено: 2015-05-21 8:58:39
BirdGovorun
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 воспринял как I
ncorrect MAC address попробуйте:
Код: Выделить всё
ipfw add deny all from any to any MAC 00:1c:c0:f1:cb:c8 mac-type ipv4
Почему не срабатывает IPFW
Добавлено: 2015-05-21 9:14:06
kerogaz
Код: Выделить всё
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
Почему не срабатывает IPFW
Добавлено: 2015-05-21 9:57:55
BirdGovorun
У себя проверил, действительно не блокируется, что-то поменялось в ipfw, посмотри:
http://forum.lissyara.su/viewtopic.php?t=21660
может уже устарело.
Почему не срабатывает IPFW
Добавлено: 2015-05-21 10:02:56
kerogaz
Я нашёл как блокировать
http://akadjon.kz/wiki/index.php/Ipfw
Но когда я прописываю
Вся локальная сеть падает
Почему не срабатывает IPFW
Добавлено: 2015-05-21 10:15:30
BirdGovorun
У меня сработало: с 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 всё пашет без проблем.
Почему не срабатывает IPFW
Добавлено: 2015-05-21 11:24:14
kerogaz
А у меня gпадает сеть. В комментариях к
http://skeletor.org.ua/?p=223 у пользователя тоже падает сеть
"если протокол построен по принципу все запрещено кроме разрешенного блокируется также широковещательный трафик arp протокола,
поэтому обычно упрощают правила с помощью признака layer2, о чем есть соответствующая запись в man ipfw" Как раз мой случай
Как этой 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)
Почему не срабатывает IPFW
Добавлено: 2015-05-22 7:19:24
kerogaz
В общем мне ответили как фильтровать MAC но очень неопределенно
man ipfw, секция PACKET FLOW.
Если кто-то мог бы более конкретно сказать, был бы очень благодарен
Отправлено спустя 7 минут 9 секунд:
Мир не без добрых людей. Когда вы прописываете # sysctl net.link.ether.ipfw=1 то , в моем случае "... у вас правило по умолчанию - запрет на все. и когда вы включаете ipfw на 2ом уровне - вы именно это и получаете. то есть либо вы ставите разрешение на все и пишете тех, кому запрещено, либо прописываете разрешенные маки"
Почему не срабатывает IPFW
Добавлено: 2015-05-22 17:23:03
FiL
блин, давненько я не ковырял 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...