В настоящее время я ограничиваю, какие клиенты могут получить доступ к моему серверу, используя 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**
сделано