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 отсутствует.