Назад | Перейти на главную страницу

Использование Ipset и Iptables для фильтрации MAC-адресов

Я использую фильтрацию MAC-адресов на моем маршрутизаторе Linux. Вот что я сделал:

iptables -A INPUT -i eth5 -m mac --mac-source 00:07:e9:84:2b:99 -j RETURN #User: Someuser
iptables -A INPUT -i eth5 -j DROP

Но список правил Iptables огромен и насчитывает более 400 записей. Недавно я прочитал о преимуществах использования Ipset с Iptables. Вот. Но нигде я не нашел практических советов, как сделать то же самое с фильтрацией MAC. Итак, как я могу использовать Ipset для фильтрации MAC, чтобы уменьшить размер таблицы правил Iptables.

В основном что-то вроде этого, но вы должны связать IP с MAC, чистые наборы MAC, похоже, не существуют:

# ipset --create test macipmap --network 10.0.0.0/16
# ipset --add test 10.0.0.1,00:11:22:33:44:55
# iptables -A INPUT -i eth5 -m set --match-set test src -j ACCEPT

Здесь вы видите содержимое карты и счетчик ссылок, указывающий на правило iptables, ссылающееся на этот набор:

# ipset -L test
Name: test
Type: macipmap
References: 1
Header: from: 10.0.0.0 to: 10.0.255.255
Members:
10.0.0.1,00:11:22:33:44:55

Следует учесть следующие моменты:

  • Этот тип набора технически ограничен 64 КБ последовательных адресов (не уверен, должны ли они быть «выровненными по подсети»), обнаружил Вот
  • Ваше ядро ​​должно поддерживать ipset, к сожалению, наиболее распространенные ядра стандартных дистрибутивов не поддерживают его.
  • В качестве альтернативы вы можете установить статический ARP
  • MAC-адреса можно легко подделать