Категорії
FreeBSD Misc, staff, other Security

ipfw и фильтрация по MAC’y

Для того, что бы сделать доступной фильтрацию по MAC’y нужны 2 условия:

1)ipfw версии 2

Если у вас FreeBSD 5.X и выше, то у вас уже есть ipfw2, если же нет – тогда пересобираем ядро с опцией “options         IPFW2

2)sysctl net.link.ether.ipfw=1

ПОСЛЕ ПРИМЕНЕНИЯ ЭТОЙ СТРОКИ НА КОМПЬЮТЕРАХ МОЖЕТ ПРОПАДАТЬ ИНТЕРНЕТ, ХОТЯ ПИНГИ, ТРАССИРОВКИ ШЛИ. ТАК ЧТО ИМЕЙТЕ ВВИДУ.

Добавляем строку net.link.ether.ipfw=1 в /etc/sysctl.conf и выполняем из консоли

#sysctl net.link.ether.ipfw=1

После этого можно добавлять правила для фильтрации с MAC. Само правило выглядит так:

ipfw add {allow|deny} {all|ip|tcp|udp} from {any|host} to {any|host} MAC 00:11:22:33:44:55 mac-type {ipv4|ipv6|vlan}

Примечание.

В 11.2 исправили баг с обработкой пакетов на уровне L2. До этой версии пакеты могли не корректно обрабатываться.

Например:

#ipfw add deny all from any to any MAC src-mac 00:11:22:33:44:55 mac-type ipv4

Так же можно, вместо ipv4 использовать шестнадцатиричный эквивалент 0x0800.

Если не указывать mac-type, то будет валится сообщение

ipfw: Incorrect MAC address

так что, будьте внимательны!

А ещё хотел бы обратить внимание на это (нашёл на одном из форумов)

1. транзитный пакет проходит через фаервол 4(четыре) раза
2.

allow ip from  to any

– не пропустит пакет с , пропустит например

allow ip from  to any mac any

а также, если протокол построен по принципу все запрещено кроме разрешенного блокируется также широковещательный трафик arp протокола,
поэтому обычно упрощают правила с помощью признака layer2, о чем есть соответствующая запись в man ipfw

6 коментарів “ipfw и фильтрация по MAC’y”

Спасибо, очень помогло. Нигде с ходу доходчиво это не было растолковано. Мой поклон автору.

все сделал по вашей статье

после
Добавляем строку net.link.ether.ipfw=1 в /etc/sysctl.conf и выполняем из консоли

#sysctl net.link.ether.ipfw=1

пропадает доступ к серверу(((
и сразу второй вопрос
действующие правила ipfw остаются без изменений? или их надо править как-то под мак адрес?

Зависит от ваших правил и поведения по умолчанию: deny или allow

I am trying apply rule on windows 7 machine as below
1.sysctl net.link.ether.ipfw=1
2.ipfw add 100 deny tcp from any to any 443 MAC any 00:E0:1C:3C:2E:F1

But,gives below error:
ether_aton empty
ipfw: Incorrect MAC address

Please help me to resolved this error.

#sysctl net.link.ether.ipfw=1 будет полностью отключать доступ если 65535 deny ip from any to any
Чтобы всё работало надо пересобирать ядро и вместо deny ставить allow
65535 allow ip from any to any

Нет разницы как собрано ядро: данная опция просто включает работу с MAC-адресами в ipfw

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

Домашняя страничка Andy
Записки молодого админа
Самостоятельная подготовка к Cisco CCNA
Самостоятельная подготовка к Cisco CCNP
Powered by Muff