Use o iptables nat para redirecionar o gateway para os PCs da LAN

4

Eu tenho um servidor Linux que funciona como o gateway da minha rede doméstica. Tem dois dispositivos ethernet:

  • p3p1 : WAN, endereço IP público a.b.c.d
  • p2p1 : LAN, endereço IP privado 10.0.3.1/24

Ele também se conecta através de um túnel OpenVPN ponto-a-ponto a um servidor Linux remoto (que eu também administro). Isso adiciona o dispositivo

  • tun2 : VPN, endereço IP privado 10.2.0.2/32

A pergunta é: como eu faço todo o tráfego de clientes na LAN redirecionar através do túnel OpenVPN?

Posso redirecionar o tráfego all (incluindo o originado no servidor de gateway) usando a opção de configuração do cliente VPN redirect-gateway def1 . Mas isso não é o que eu quero.

Haveria uma maneira de fazer isso usando o NAT IPTables?

Obrigado!

    
por felamaslen 18.08.2017 / 19:39

2 respostas

1

Eu consegui fazer isso usando o roteamento IP baseado em políticas, como A. Fendt mencionou em um comentário:

  1. Inserir uma nova tabela de roteamento IP:

$ echo "200 vpndef1" | sudo tee -a /etc/iproute2/rt_tables

  1. Adicione rotas para o redirecionamento da VPN:

$ sudo ip route add 10.0.3.0/24 via 10.0.3.1 dev p2p1 table vpndef1 $ sudo ip route add default via 10.2.0.1 dev tun2 table vpndef1

  1. Insira uma nova regra para direcionar o tráfego da LAN para a nova tabela de roteamento:

$ sudo ip rule add from 10.0.3.0/24 lookup vpndef1

    
por 22.08.2017 / 17:37
1

Aqui estão os passos que você deve fazer:

  1. Na primeira etapa, o servidor DHCP local deve configurar o gateway padrão do cliente para o endereço do servidor 10.0.3.1
  2. Em seguida, use o banco de dados de políticas de roteamento para rotear sua rede local trafegar para o gateway padrão da VPN atrás de p2p1 e direcionar o tráfego de seus servidores para o gateway padrão atrás de p3p1
  3. Depois disso, você precisa MASQUERADE do tráfego proveniente de sua rede local e acessar a VPN:
# enable ip forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward

# configure iptables
iptables -t nat -A POSTROUTING -s 10.0.3.0/24 -d 10.2.0.2/32 -j MASQUERADE
iptables -P FORWARD DROP
iptables -A FORWARD -i p2p1 -o tun2 -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED -j ACCEPT
    
por 18.08.2017 / 21:39