Redirecionando o tráfego de sub-rede para um gateway diferente

0

Eu tenho uma caixa Debian Jessie em 192.168.1.5 conectada ao roteador (em 192.168.1.1) rodando um cliente OpenVPN (na verdade é um Pi usando esta configuração . A única parte diferente é que o IP eth0 do Pi é estático por causa do roteador, ou seja, o Pi está usando o DHCP do roteador).

Quando os clientes da rede local estão configurados para usar 192.168.1.5 como seu gateway, eles estão na VPN, como pretendido.

O que eu preciso é que os clientes de rede local 192.168.1.128/25 tenham todo o seu tráfego redirecionado para 192.168.1.5, mesmo quando seu IP é configurado pelo DHCP do roteador e seu gateway se torne 192.168. 1.1. Em outras palavras, os clientes dentro de 192.168.1.128/25 devem funcionar como se seu gateway fosse 192.168.1.5.

Qual é a configuração de iptables e / ou route add que o roteador precisa fazer para fazer isso (o roteador executa o Tomato 3.4-138)? Estas são as configurações do roteador:

iptables -t nat -L -n

Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
WANPREROUTING  all  --  0.0.0.0/0            wan_ip
upnp       all  --  0.0.0.0/0            wan_ip

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
MASQUERADE  all  --  0.0.0.0/0            0.0.0.0/0
SNAT       all  --  192.168.1.0/24       192.168.1.0/24       to:192.168.1.1
SNAT       all  --  172.16.1.0/24        172.16.1.0/24        to:172.16.1.1

Chain WANPREROUTING (1 references)
target     prot opt source               destination
DNAT       icmp --  0.0.0.0/0            0.0.0.0/0            to:192.168.1.1
DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:443 to:192.168.1.1:443
DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:2222 to:192.168.1.5:22
DNAT       all  --  0.0.0.0/0            0.0.0.0/0            to:192.168.1.4

Chain pupnp (0 references)
target     prot opt source               destination

Chain upnp (1 references)
target     prot opt source               destination
DNAT       udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:55355 to:192.168.1.130:55355
DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:55355 to:192.168.1.130:55355
DNAT       udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:5353 to:192.168.1.48:5353
DNAT       udp  --  0.0.0.0/0            0.0.0.0/0            udp dpt:4500 to:192.168.1.48:4500

iptables -L

Chain INPUT (policy DROP)
target     prot opt source               destination
DROP       all  --  anywhere             anywhere             state INVALID
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
shlimit    tcp  --  anywhere             anywhere             tcp dpt:ssh state NEW
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:https

Chain FORWARD (policy DROP)
target     prot opt source               destination
           all  --  anywhere             anywhere            account: network/netmask: 192.168.1.0/255.255.255.0 name: lan
           all  --  anywhere             anywhere            account: network/netmask: 172.16.1.0/255.255.255.0 name: lan1
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
DROP       all  --  anywhere             anywhere             state INVALID
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
DROP       all  --  anywhere             anywhere
DROP       all  --  anywhere             anywhere
wanin      all  --  anywhere             anywhere
wanout     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
upnp       all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             SIP-Device

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain shlimit (1 references)
target     prot opt source               destination
           all  --  anywhere             anywhere             recent: SET name: shlimit side: source
DROP       all  --  anywhere             anywhere             recent: UPDATE seconds: 60 hit_count: 4 name: shlimit side: source

Chain upnp (1 references)
target     prot opt source               destination
ACCEPT     udp  --  anywhere             client-1                udp dpt:55355
ACCEPT     tcp  --  anywhere             client-1                tcp dpt:55355
ACCEPT     udp  --  anywhere             client-2          udp dpt:mdns
ACCEPT     udp  --  anywhere             client-2          udp dpt:4500

Chain wanin (1 references)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             *Pi*               tcp dpt:ssh

Chain wanout (1 references)
target     prot opt source               destination

route

(o roteador fica atrás do modem WAN)

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
modem.ip.0.1    *               255.255.255.255 UH    0      0        0 vlan2
192.168.1.0     *               255.255.255.0   U     0      0        0 br0
172.16.1.0      *               255.255.255.0   U     0      0        0 br1
modem.ip.0.0    *               255.255.224.0   U     0      0        0 vlan2
127.0.0.0       *               255.0.0.0       U     0      0        0 lo
default         modem.ip.0.1    0.0.0.0         UG    0      0        0 vlan2
    
por Gaia 11.04.2017 / 21:22

1 resposta

0

Você não pode de alguma forma conectar um roteador e o RaspPi ao mesmo segmento da LAN, e esperar que o RaspPi reescreva pacotes enviados por outros clientes para a LAN. Isto parece ser FAQ, as pessoas tentam com ARP spoofing e outros enfeites. Mas a rede não se destina a funcionar dessa maneira.

A solução limpa é colocar tudo por trás do RaspPi:

Router --- [eth0] RaspPi [eth1] --- Switch +--- Client1
                                           +--- Client2
                                           +--- Client3

Basicamente você quer atuar o seu RaspPi como um segundo roteador. Isso significa que precisa de uma segunda interface de LAN. Coloque um servidor DHCP no seu roteador, possivelmente habilite o NAT no RaspPi da VPN não pode manipular uma sub-rede, e está tudo pronto.

Uma alternativa é ativar VPN em o próprio roteador, se você puder obter acesso root ou flash OpenWRT, etc.

Outra alternativa é desativar o servidor DHCP no seu roteador, então você pode conectar o RaspPi e o Roteador ao mesmo segmento de LAN, e precisar de apenas uma interface LAN no RaspPi.

    
por 12.04.2017 / 09:14