Вы можете попробовать использовать iptables
для фильтрации по адресу MA C. Проверьте этот ответ .
# Create the DHCP_clients chain in the 'raw' table
iptables -t raw -N DHCP_clients
# Incoming DHCP, pass to chain processing DHCP
iptables -t raw -A PREROUTING -p udp --dport 67 -j DHCP_clients
# Allowed DHCP clients
iptables -t raw -A DHCP_clients -m mac --mac-source <ALLOWED MAC> -j ACCEPT
# Deny other clients not listed above
iptables -t raw -A DHCP_clients -j DROP
- Укажите таблицу
raw
с -t
.
raw: Эта таблица используется в основном для настройки исключений из отслеживания соединений в сочетании с целью NOTRACK. Он регистрируется на хуках сетевого фильтра с более высоким приоритетом и поэтому вызывается перед ip_conntrack или любыми другими IP-таблицами. Он обеспечивает следующие встроенные цепочки: PREROUTING (для пакетов, поступающих через любой сетевой интерфейс) OUTPUT (для пакетов, генерируемых локальными процессами)
-t, --table table
This option specifies the packet matching table which the command should operate on.
- и создание нового имени цепочки для ссылка.
-N, --new-chain chain
Create a new user-defined chain by the given name. There must be no target of that name already.
- необработанная таблица предоставляет
PREROUTING
(для пакетов, поступающих через любой сетевой интерфейс), -A
добавляет правило в вашу цепочку. - DHCP использует порты 67 и 68 и протокол UDP. Вы можете предотвратить запросы DHCP, заблокировав связь на этих портах.
-A, --append chain rule-specification
Append one or more rules to the end of the selected chain.
- , тогда у вас есть правила ПРИНЯТЬ только те адреса MA C, которые вы хотите, и УДАЛИТЬ все остальные.
iptables manual