IPTables. Блокировка по MAC адресу

В этой статье я покажу примеры блокировки 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

Вливайтесь в общение

2 комментария

Добавить комментарий

  1. Как запретить всех кто хочет подключиться и разрешить только некоторых МАС адресов?

    1. Добавил пример в конце статьи