Configure o iptables para definir o gateway padrão para rede local

Configure o iptables para definir o gateway padrão para rede local

Eu tenho um roteador openwrt com ip 192.168.1.1. O que eu quero fazer é configurar um servidor proxy (192.168.1.249) na LAN e interceptar todas as comunicações de dois dispositivos (192.168.1.244, 192.168.1.131). O método que uso é definir o servidor proxy como gateway padrão e configurei o seguinte em meu roteador openwrt.

iptables -t mangle -A PREROUTING -j MARK --set-mark 3 -p tcp -s 192.168.1.131
iptables -t mangle -A PREROUTING -j MARK --set-mark 3 -p tcp -s 192.168.1.244
# Set default gateway as the proxy server in table 2
ip route add default via 192.168.1.249 table 2
# Forward traffic with mark 3 to table 2
ip rule add fwmark 3 table 2

Após meu teste, para todas as comunicações WAN dos dois dispositivos, o servidor proxy pode interceptá-las e encaminhá-las, isso é bom.No entanto, descobri que esses dois dispositivos também se comunicam e essas comunicações de LAN parecem não ser encaminhadas para o servidor proxy. Qual é a razão? Como posso encaminhar esse tráfego para o servidor proxy?

TESTE: Para descobrir se configurar o iptables é útil, adicionei uma regra para teste:

iptables -t mangle -A PREROUTING -j DROP -s 192.168.1.131

Na minha opinião, se esta regra funcionar, então o dispositivo com ip 244 não receberá nenhum tráfego do dispositivo com ip 131, e isso prova que o iptables pode funcionar para comunicação LAN. No entanto, usei o dispositivo 131 para enviar tráfego TCP para o dispositivo 244 e funcionou. Duvido que a configuração do iptables não possa me ajudar a encaminhar esse tráfego da LAN para o meu servidor proxy. Estou certo?

Responder1

Presumo que sua sub-rede IP seja 192.168.1.0/24, o que significa que todos os endereços IP começando com 192.168.1estão no mesmo domínio de transmissão L2, ou seja, conectados ao mesmo switch.

Dispositivos que estão na mesma sub-rede IP se comunicam diretamente entre si por meio da "conectividade" da camada 2; não há roteamento da camada 3 acontecendo.

IPTables é um mecanismo que executa firewall em pacotes roteados entre diferentes sub-redes. Ele não vê nenhum tráfego que os mesmos hosts de sub-rede enviam entre si.

Se você deseja instalar um firewall entre os dois hosts, existem algumas opções:

  1. Mova os hosts para sub-redes diferentes (por exemplo 192.168.1.0/24e 192.168.2.0/24) e faça a rota do roteador entre as duas sub-redes.
  2. Instale dois segmentos Ethernet diferentes e configure seu roteador como uma ponte entre os segmentos. Então pode-se configurar o IPTables para filtrar pacotes entre os dois segmentos Ethernet.

informação relacionada