Назад | Перейти на главную страницу

iptables, разрешить доступ с определенных MAC-адресов

В настоящее время я ограничиваю, какие клиенты могут получить доступ к моему серверу, используя IP-адреса через iptables, только утвержденные IP-адреса могут подключаться.

Однако проблема заключается в том, что если клиент находится на портативном компьютере и переходит в другое место, он больше не может подключиться, поскольку IP-адрес изменился.

По разным причинам аутентификация iptables - единственный вариант, который у меня есть.

Есть ли способ ограничить доступ по устройству вместо IP-адреса. Например, разрешить подключение к порту 5000 только определенному MAC-адресу.

Можно ли это сделать через iptables? Обратите внимание, что компьютеры не находятся в одной сети, они могут подключаться из любой точки мира.

Iptables имеет mac модуль. Вы можете использовать это так:

/sbin/iptables -A INPUT -m mac --mac-source 00:0F:EA:91:04:08 -j DROP

nixCraft имеет обширное руководство о том, как создавать правила фильтрации на основе MAC-адресов.

Но это работает только в той же сети, поскольку MAC-адресация зависит от уровня канала и не будет перенаправляться при использовании маршрутизации. Итак, пока устройства находятся в разных сетях, которым требуется маршрутизация, это не сработает.

Вы не можете этого сделать, потому что MAC-адреса недоступны для подключений через Интернет.

Чтобы делать то, что вы хотите, было бы гораздо безопаснее настроить VPN и разрешить подключение к вашей критически важной инфраструктуре только через него. Если вы не можете этого сделать, вы можете попробовать настроить какой-нибудь двухфакторная аутентификация.

Если вы действительно застряли только на iptables, вы можете обойтись стук порта. Похоже, что хороший учебник об этом в вики Arch Linux, но обратите внимание на предупреждение и не используйте пример портов / последовательности в своей среде.

Комбинация вышеперечисленных методов была бы еще лучше.

Для списка MAC-адресов, если они хранятся в файле построчно (mac_addresses_file), вы можете использовать:

Код:

for MAC in `cat mac_addresses_file`; do

  **iptables -A FORWARD -i eth0 -o eth1 -m mac --mac-source $MAC -j ACCEPT**

сделано