MAC-фильтрация с использованием iptables/ebtables

Я пытаюсь сбросить MAC-адрес на узле в моей сети. Теперь я попробовал два инструмента iptables и ebtables, но обе попытки потерпели неудачу:

  • iptables -A INPUT -m mac --mac-source 00:0F:EA:91:04:08 -j DROP в результате "iptables: нет цепочки / цели / совпадения с этим именем."
  • ebtables -A INPUT -s 00:11:22:33:44:55 -j DROP в результате "FATAL: модуль ebtables не найден. Ядро не поддерживает таблицу 'ebtables' filter '".

Я работаю с версией ядра 2.6.32: uname -r приводит к "2.6.32-042stab049.6.emulab.1"

Как я могу заставить (хотя бы один) это работать? Я искал об этих ошибках, но не так много информации. Как я могу заставить ядро ​​поддерживать таблицу 'ebtables' filter '? Как получается, что "нет цепочки / цели / совпадения с таким именем"?

2 ответа

Убедитесь, что вы действительно можете перечислить цепочку INPUT:

# iptables -L

Надеюсь, это должно что-то сродни

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Что касается ebtables, то он, очевидно, не является частью вашего ядра.

Вам нужно включить опции ebtables в вашей конфигурации ядра

CONFIG_BRIDGE_NF_EBTABLES=y
CONFIG_BRIDGE_EBT_BROUTE=y
CONFIG_BRIDGE_EBT_T_FILTER=y
CONFIG_BRIDGE_EBT_T_NAT=y
CONFIG_BRIDGE_EBT_802_3=y
CONFIG_BRIDGE_EBT_AMONG=y
CONFIG_BRIDGE_EBT_ARP=y
CONFIG_BRIDGE_EBT_IP=y
CONFIG_BRIDGE_EBT_IP6=y
CONFIG_BRIDGE_EBT_LIMIT=y
CONFIG_BRIDGE_EBT_MARK=y
CONFIG_BRIDGE_EBT_PKTTYPE=y
CONFIG_BRIDGE_EBT_STP=y
CONFIG_BRIDGE_EBT_VLAN=y
CONFIG_BRIDGE_EBT_ARPREPLY=y
CONFIG_BRIDGE_EBT_DNAT=y
CONFIG_BRIDGE_EBT_MARK_T=y
CONFIG_BRIDGE_EBT_REDIRECT=y
CONFIG_BRIDGE_EBT_SNAT=y
CONFIG_BRIDGE_EBT_LOG=y
CONFIG_BRIDGE_EBT_ULOG=y
CONFIG_BRIDGE_EBT_NFLOG=y

затем соберите ядро ​​и повторите попытку. Также возможно, что что-то связанное с iptables отсутствует.

Другие вопросы по тегам