2

У меня есть два маршрутизатора прошивки Tomato. Маршрутизатор X подключен к Интернету через порт WAN. WAN маршрутизатора Y подключен к порту LAN1 маршрутизатора X. Я хотел бы ограничить маршрутизатор Y, чтобы он мог подключаться только к Интернету и не иметь доступа к локальной сети на маршрутизаторе X. Я попытался использовать эти iptables на маршрутизаторе X:

iptables -I FORWARD -m mac --mac-source XX:XX:XX:XX:XX -d 192.168.1.0/24 -j DROP
iptables -I FORWARD -s 192.168.1.18 -d 192.168.1.0/24 -j DROP

Я пробовал оба эти правила по отдельности и вместе (на маршрутизаторе X), и все же я все еще могу получить доступ к локальной сети на маршрутизаторе X при подключении к маршрутизатору Y? (1.18 - это адрес WAN маршрутизатора Y, и он запускает свою собственную сеть NAT)

Я пробовал TCPDUMP на маршрутизаторе X и даже не вижу доступа к локальной сети, но он подключается?

схема сети

2 ответа2

1

Поскольку вы не упоминаете марку и модель своего маршрутизатора, вот основная идея: потребительский маршрутизатор обычно состоит из порта «WAN» и нескольких портов «LAN». Большинство дешевых маршрутизаторов SoC имеют два встроенных сетевых интерфейса: один для глобальной сети и один для локальной сети. Конечно, это не соответствует количеству портов LAN - есть встроенный коммутатор.

В большинстве маршрутизаторов эти коммутаторы фактически программируются. Они могут выполнять VLAN на основе портов и маркировку VLAN. Это означает, что вы можете создать «физически разделенный» сетевой интерфейс.

Обычно это так:

   +-------------+  +--------------+
   |     CPU     |  |         LAN1 |--
 --| WAN     LAN |--| Switch  LAN2 |--
   +-------------+  |         LAN3 |--
                    +--------------+

Все, что подключено к LAN1 (к которому подключен маршрутизатор Y), имеет полный доступ к LAN2 и LAN3.

Однако мы можем перенастроить коммутатор и создать две VLAN:

   +---------------+  +--------------+
   |     CPU       |  |    Switch    |
   |         LAN.1 |--| VLAN1   LAN1 |--
 --| WAN           |  +--------------+
   |         LAN.2 |--| VLAN2   LAN2 |--
   +---------------+  |         LAN3 |--
                      +--------------+

После настройки все VLAN будут отображаться как отдельный сетевой интерфейс системы. Поскольку LAN1 больше не находится в одном широковещательном домене с LAN2/3, ОС получает трафик и может решить, следует ли пересылать пакеты из VLAN1 в VLAN2.

Чтобы избежать путаницы, вы обычно выбираете другую подсеть для разных VLAN, поэтому маршрутизатор действительно должен маршрутизировать. :)

Может ли томат сделать это, я не знаю. OpenWrt может, а IIRC так может DD-WRT. По сути, это проводная гостевая сеть.

Если вы не можете обеспечить такой уровень изоляции, вам нужно попробовать отфильтровать на маршрутизаторе Y, используя правила, примерно такие:

iptables -A FORWARD -d 192.168.0.0/16 -j DROP
iptables -A FORWARD -d 172.16.0.0/12 -j DROP
iptables -A FORWARD -d 10.0.0.0/8 -j DROP

Это, конечно, полагается на маршрутизатор Y для обеспечения желаемой политики.

-1

Проблема в том, что маршрутизатору Y не нужна цепочка FORWARD для доступа к вашей внутренней сети. Его интерфейс WAN - 192.168.1.18, и поэтому любые пакеты, предназначенные для 192.168.1.0/24, которые попадают на этот интерфейс, будут маршрутизироваться локально, никогда не нажимая FORWARD.

Я ожидаю, что если вы измените FORWARD на INPUT для второго правила, все начнет работать так, как вы намереваетесь:

iptables -I INPUT -s 192.168.1.18 -d 192.168.1.0/24 -j DROP

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .