Домашняя сеть должна принимать только определенные MAC-адреса из локальной сети

Домашняя сеть должна принимать только определенные MAC-адреса из локальной сети

У меня Ubuntu 10 в качестве маршрутизатора с WAN(eth0) и LAN(eth1). Как мне ограничить eth1, чтобы он принимал только пакеты с определенных MAC-адресов и отбрасывал остальные? Я также собираюсь настроить DHCP на определенные MAC-адреса, однако любой может вручную задать IP-адрес. У меня есть около 4-6 собственных устройств, которые могут использовать сеть.

решение1

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

/sbin/iptables -A INPUT -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:XX -j ACCEPT

Конечно, если ваша политика по умолчанию — DROP.

решение2

Вот вам начало:

iptables -P FORWARD DROP
iptables -I FORWARD -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:XX -j ACCEPT
iptables -I FORWARD -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:BB -j ACCEPT
iptables -P INPUT DROP
iptables -I INPUT -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:XX -j ACCEPT
iptables -I INPUT -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:BB -j ACCEPT

Все MAC-адреса, отличные от XX:XX:XX:XX:XX:XXи , XX:XX:XX:XX:XX:BBне смогут получить доступ к вашему маршрутизатору или Интернету.

решение3

( Япользователь63709; каким-то образом мой логин Google OpenID и логин MyOpenID разделились, хотя на самом деле в Stack Overflow это одно и то же)

arptablesимеет свою собственную политику.нетпутайте это с iptablesполитикой.

Поскольку вы хотите «ограничить [так в оригинале] eth1 принимать пакеты только с определенных MAC-адресов и отбрасывать остальные", выхотетьполитика DROP по умолчанию.

(Кстати, я допустил небольшую ошибку в правилах arptables выше. Они должны быть такими:)

arptables -P IN DROP
arptables -A IN -i eth1 --source-mac <allowed_mac_address> -j ACCEPT
arptables -A IN -i eth1 --source-mac <allowed_mac_address> -j ACCEPT
... and so on ...

(Еще раз обратите внимание, чтоINэто встроенная цепьконкретнонайдено только в arptables. ЧитатьСтраница руководства arptablesЧтобы получить больше информации).

решение4

Майкл, вы не можете указать более одного источника mac на правило, поэтому вам понадобится набор правил, подобных следующему (если вы собираетесь использовать iptables):

#Rules for allowing your mac addresses
/sbin/iptables -A FORWARD -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:11 -j ACCEPT
/sbin/iptables -A FORWARD -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:22 -j ACCEPT
/sbin/iptables -A FORWARD -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:33 -j ACCEPT
#One final rule to drop all packets which do not match one of the rules above (are not from one of your allowed macs)
/sbin/iptables -A FORWARD -i eth1 -j DROP

Обратите внимание, что они находятся в цепочке FORWARD инетцепочка INPUT. Имея эти правила в цепочке FORWARD, ваш маршрутизатор Linux не позволит никаким компьютерам Mac, кроме разрешенных вами, отправлять или получать трафик через маршрутизатор. Они по-прежнему смогут общаться с машинами в той же подсети, что и их собственная (потому что это не требует от них прохождения через маршрутизатор).

Вы также можете контролировать, кто может подключаться к вашему маршрутизатору, продублировав приведенные выше правила для входной цепочки.

#Rules for allowing your mac addresses
/sbin/iptables -A INPUT -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:11 -j ACCEPT
/sbin/iptables -A INPUT -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:22 -j ACCEPT
/sbin/iptables -A INPUT -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:33 -j ACCEPT
#One final rule to drop all packets which do not match one of the rules above (are not from one of your allowed macs)
/sbin/iptables -A INPUT -i eth1 -j DROP

Читая ваш комментарий к одному из более коротких ответов о том, в каких случаях работают FORWARD и INPUT, вот краткое объяснение.

ВПЕРЕДприменяется только к пакетам, идущимчерезвашего маршрутизатора к другим подсетям или к внешнему миру (через интерфейс WAN).ВХОДприменяется к пакетам, которые предназначены для завершения на самом маршрутизаторе (например, SSH-подключения к самому маршрутизатору/Linux-компьютеру).

Связанный контент