Домашняя сеть для принятия только определенных MAC-адресов от LAN

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

3
задан 08.03.2011, 06:23

5 ответов

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

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

Предположение, конечно, что политика по умолчанию является ОТБРАСЫВАНИЕМ.

2
ответ дан 08.12.2019, 00:04

Вот запуск для Вас:

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 не сможет получить доступ к Вашему маршрутизатору или Интернету.

2
ответ дан 08.12.2019, 00:04

(Я - user63709; так или иначе мой вход в систему Google OpenID и вход в систему MyOpenID были разделены, когда это - на самом деле то же в Переполнении стека),

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

Так как Вы хотите к "restric [так] eth1 принять только пакеты от определенных MAC-адресов и отбросить остальных", Вы захотите политику ОТБРАСЫВАНИЯ по умолчанию.

(BTW, я сделал небольшую ошибку в правилах 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. Прочитайте страницу справочника arptable для получения дополнительной информации).

1
ответ дан 08.12.2019, 00:04

Вы могли бы интересоваться arptables.

Это - вид iptables, но специально для уровня 2. Хотя это может также 'посмотреть' в некоторую информацию L3.

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

Каждый раз, когда существует новый MAC-адрес, Вы хотите позволить, просто сделать arptables -A IN --source-hw <address> -j ACCEPT. Политика ОТБРАСЫВАНИЯ гарантирует, что другие адреса будут, мм, отброшены.

0
ответ дан 08.12.2019, 00:04

Michael, Вы не можете указать больше чем один источник 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

Обратите внимание, что они находятся во ВПЕРЕД цепочка а не ВХОДНАЯ цепочка. При наличии этих правил во ВПЕРЕД объединяют Ваш маршрутизатор 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

Чтение комментария к одному из других более коротких ответов, о которых случаях ВПЕРЕД и ВХОДНОЙ работе с, вот короткое объяснение.

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

0
ответ дан 08.12.2019, 00:04

Теги

Похожие вопросы