В этой статье я покажу примеры блокировки MAC адресов в IPTables.
Допустим необходимо заблокировать входящие подключения к серверу для определенного MAC адреса, приведу пример правила:
iptables -A INPUT -m mac --mac-source 04:18:d6:52:1d:71 -m comment --comment "Example_ixnfo_com" -j DROP
Если сервер используется как сервер доступа, например для NAT и т.д., то можно запретить пропускать пакеты с определенным MAC адресом:
iptables -A FORWARD -m mac --mac-source 04:18:d6:52:1d:71 -m comment --comment "Example_ixnfo_com" -j DROP
Чтобы удалить правило, достаточно заменить -A на -D, например:
iptables -D FORWARD -m mac --mac-source 04:18:d6:52:1d:71 -m comment --comment "Example_ixnfo_com" -j DROP
Аналогично можно не блокировать, а разрешать доступ, приведу примеры как разрешить доступ к SSH для определенного MAC адреса:
/sbin/iptables -A INPUT -p tcp --destination-port 22 -m mac --mac-source 04:18:d6:52:1d:71 -j ACCEPT
/sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 22 -m mac --mac-source 04:18:d6:52:1d:71 -j ACCEPT
В этом случае имеется ввиду что политика для всех входящих соединений по умолчанию DROP (при первоначальной удаленной настройке необходимо написать все правила в скрипт и потом выполнить его, чтобы не потерять доступ к серверу):
iptables -P INPUT DROP
Либо нужно после разрешающих правил добавить запрещающее, при добавлении новых разрешающих правил необходимо удалить запрещающее и добавить чтобы оно снова было последним, например:
/sbin/iptables -A INPUT -p tcp --destination-port 22 -m mac --mac-source 04:18:d6:52:1d:71 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --destination-port 22 -j DROP
Смотрите также мои статью:
Настройка IPTables
Скрипт быстрой настройки IPTables
Как запретить всех кто хочет подключиться и разрешить только некоторых МАС адресов?
Добавил пример в конце статьи