iptables impede o acesso de lan de outro roteador

2

Eu tenho dois setups de roteadores de firmware Tomato. O roteador X está conectado à internet através da sua porta WAN. A WAN do roteador Y está conectada à porta LAN1 do roteador X. Eu gostaria de restringir o roteador Y para que ele só possa se conectar à Internet e não acessar a rede local no roteador X. Eu tentei usar esses iptables no roteador 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

Eu tentei ambas as regras separadamente e juntas (no roteador X) e ainda consigo acessar a lan no roteador X enquanto conectada ao roteador Y? (1.18 é o endereço WAN do roteador Y e roda sua própria rede NAT)

Eu tentei TCPDUMP no roteador X e nem mesmo ver o acesso de tráfego para a LAN, mas ele se conecta?

    
por Leo 24.06.2016 / 18:00

2 respostas

1

Como você não menciona a marca e o modelo de seu roteador, segue a ideia geral: um roteador de nível de consumidor geralmente consiste em uma porta "WAN" e várias portas "LAN". A maioria dos roteadores SoCs baratos tem duas interfaces de rede integradas, uma para WAN e outra para LAN. É claro que isso não corresponde ao número de portas LAN - há um switch integrado.

Na maioria dos roteadores, esses switches são de fato programáveis. Eles podem fazer VLANs baseadas em portas e marcação de VLAN. Isso significa que você pode criar uma interface de rede "fisicamente separada".

Normalmente é assim:

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

O que estiver conectado na LAN1 (onde o roteador Y está conectado) tem acesso total à LAN2 e LAN3.

No entanto, podemos reconfigurar o switch e criar duas VLANs:

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

Após configurar tudo, cada VLAN aparecerá como uma interface de rede separada para o sistema. Como a LAN1 não está mais no mesmo domínio de broadcast com LAN2 / 3, o sistema operacional recebe o tráfego e pode decidir se encaminha os pacotes da VLAN1 para a VLAN2.

Para evitar confusão, você normalmente escolheria uma sub-rede diferente para diferentes VLANs, por isso o roteador precisa realmente ser encaminhado. :)

Se o tomate pode fazer isso, eu não sei. OpenWrt pode, e IIRC assim pode DD-WRT. É essencialmente uma rede de convidados com fio.

Se você não puder fornecer esse nível de isolamento, precisará tentar filtrar no roteador Y, usando regras como estas:

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

Isso, claro, depende do roteador Y para reforçar a política que você deseja.

    
por 01.07.2016 / 18:26
-1

O problema é que o roteador Y não precisa da cadeia FORWARD para acessar sua rede interna. Sua interface WAN é 192.168.1.18 e, portanto, todos os pacotes com destino a 192.168.1.0/24 que atingiram essa interface serão roteados localmente sem precisar avançar FORWARD.

Espero que, se você alterar FORWARD para INPUT em sua segunda regra, as coisas começarão a funcionar como você pretende:

iptables -I INPUT -s 192.168.1.18 -d 192.168.1.0/24 -j DROP
    
por 24.06.2016 / 21:52