Roteie todo o tráfego eth1 sobre VPN

0

Eu tenho 3 NIC no meu sistema: eth0 (192.168.1.54), eth1 (192.168.1.55), wg0 (VPN, 192.168.99.1)

Eu estou procurando uma maneira de rotear todo o tráfego de eth1 (tcp e udp) sobre wg0 (Wireguard VPN).

O que eu estou tentando alcançar é que no meu telefone / tablet / apple tv / etc eu defino o endereço eth1 como roteador, então todo o tráfego deve ser redirecionado através da VPN.

No lado remoto (é um VPS) eu tenho eth0 (internet principal) e wg0 (192.168.99.2).

Tudo o que eu fiz atualmente é que eu configurei interfaces Wireguard com sucesso em ambos os lados (eu posso pingar uns aos outros).

Tabela de rotas:

default via 192.168.1.1 dev eth0 onlink 
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.54 
192.168.1.0/24 dev eth1  proto kernel  scope link  src 192.168.1.55 
192.168.99.0/24 dev wg0  proto kernel  scope link  src 192.168.99.1 
    
por user66638 15.12.2017 / 16:23

1 resposta

0

Você não precisa de duas interfaces Ethernet. Defina uma rota de host via 192.168.1.1 para o IP público do servidor VPN e aponte a rota padrão para a extremidade remota do túnel ( 192.168.99.2 ). Faça a rota padrão nos outros dispositivos em sua LAN apontar para 192.168.1.54 . Lembre-se de ativar o encaminhamento de pacotes no seu PC ( sysctl net.ipv4.ip_forward net.ipv4.ip_forward = 1 ).

EDIT: Você não pode alcançar a solução que procura com o roteamento clássico do IPv4, já que o roteamento clássico se preocupa apenas com o destino de um pacote, não seu histórico, como qual interface foi recebida ou o endereço de origem. Você terá que usar o Policy Routing para poder classificar os pacotes com base na interface em que foram recebidos. Com base nessa classificação, você pode usar uma tabela de roteamento alternativa para roteamento, que, por exemplo, define uma rota padrão por meio do túnel VPN.

Para usar o roteamento de políticas, você deve adicionar uma entrada (vpn) a /etc/iproute2/rt_tables :

#
# reserved values
#
255     local
254     main
253     default
0       unspec
#
# local
#
1       vpn

Isso dá o nome vpn à tabela de roteamento número 1.

Em seguida, adicione a seguinte regra de política:

ip rule add unicast iif eth1 table vpn

Esta regra efetivamente diz "se o pacote chegar na interface eth1 , use a tabela de roteamento vpn ".

Você pode verificar as regras com ip rule show :

ip rule show
0:      from all lookup local 
32765:  from all iif eth1 lookup vpn 
32766:  from all lookup main 
32767:  from all lookup default

As regras são aplicadas em ordem crescente, até que uma regra corresponda. Se um pacote é recebido no interfave eth1 , a regra 32765 corresponde, senão as próximas regras são tentadas.

Agora você pode adicionar rotas à tabela de roteamento vpn . Por exemplo, para adicionar uma rota padrão ao seu túnel:

ip route add default dev wg0 via 192.168.99.2 table vpn

Para imprimir a tabela de roteamento vpn , use

ip route show table vpn

Agora, não consegui testar isso, então pode haver erros ou alguns detalhes faltando. Para mais informações sobre o encaminhamento de políticas, consulte o link ou o link .

    
por 15.12.2017 / 21:40