Encaminhando todo o tráfego pela VPN no Ubuntu Linux

9

Depois de ter passado horas resolvendo problemas, vasculhando potenciais soluções neste site e em outros, e estou resignado a implorar o conselho dos meus melhores. Eu estou trabalhando para rotear todo o tráfego de rede em uma instância do Ubuntu através de uma VPN da Cisco em uma universidade. Usando o gerenciador de rede interno ou vpnc, posso estabelecer com êxito uma conexão com a VPN e posso rotear com êxito o tráfego para qualquer IP da universidade pela VPN. No entanto, além desses intervalos de IP específicos, não consigo conjurar nenhuma rota que mapeie com êxito todo o tráfego de rede pela VPN.

Até agora, eu tentei:

route add -net 0.0.0.0 gw homeportal dev tun0
route add -net 0.0.0.0 tun0
route add -net 0.0.0.0 gw 128.122.252.77 dev tun0
route add -net 0.0.0.0 gw 128.122.252.77 dev eth0
iptables -A FORWARD -o tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -j ACCEPT
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

E muitas outras coisas bobas e ineficazes que não consigo lembrar bem o suficiente para transcrever com precisão.

Além disso, tentei rotear intervalos de IP menores e IPs específicos, cada um em vão. Não sei ao certo o que está errado, já que a extensão dos efeitos que consegui observar são falhas na resolução de nomes e falhas no roteamento do tráfego pela VPN. O que estou fazendo errado aqui?

Editar -

Aqui está a saída de ip route show depois de iniciar a conexão VPN com o VPNC:

default via 192.168.1.254 dev eth0  proto static 
10.0.0.0/8 dev tun0  scope link 
91.230.41.0/24 dev tun0  scope link 
128.122.0.0/16 dev tun0  scope link 
128.122.252.68 via 192.168.1.254 dev eth0  src 192.168.1.32 
128.122.253.46 dev tun0  scope link 
128.122.253.79 dev tun0  scope link 
172.16.0.0/12 dev tun0  scope link 
192.168.0.0/16 dev tun0  scope link 
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.32  metric 1 
193.175.54.0/24 dev tun0  scope link 
193.205.158.0/25 dev tun0  scope link 
193.206.104.0/24 dev tun0  scope link 
195.113.94.0/24 dev tun0  scope link 
203.126.200.0/24 dev tun0  scope link 
203.174.165.128/25 dev tun0  scope link 
212.219.93.0/24 dev tun0  scope link 
216.165.0.0/17 dev tun0  scope link

Mais informações -

Transmiti com êxito o tráfego arbitrário sobre essa VPN no MS Windows por meio do cliente Cisco AnyConnect com configuração padrão. Aqui está o que a tabela de roteamento parece quando o cliente AnyConnect está funcionando (este é um computador diferente por trás do mesmo roteador em 192.168.1.254).

IPv4 Route Table
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0    192.168.1.254     192.168.1.13     30
         10.0.0.0        255.0.0.0    192.168.128.1  192.168.128.197      2
      91.230.41.0    255.255.255.0    192.168.128.1  192.168.128.197      2
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    306
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    306
  127.255.255.255  255.255.255.255         On-link         127.0.0.1    306
      128.122.0.0      255.255.0.0    192.168.128.1  192.168.128.197      2
   128.122.252.68  255.255.255.255    192.168.1.254     192.168.1.13     31
       172.16.0.0      255.240.0.0    192.168.128.1  192.168.128.197      2
      192.168.0.0      255.255.0.0    192.168.128.1  192.168.128.197      2
      192.168.1.0    255.255.255.0         On-link      192.168.1.13    286
     192.168.1.13  255.255.255.255         On-link      192.168.1.13    286
    192.168.1.254  255.255.255.255         On-link      192.168.1.13     31
    192.168.1.255  255.255.255.255         On-link      192.168.1.13    286
     192.168.31.0    255.255.255.0         On-link      192.168.31.1    276
     192.168.31.1  255.255.255.255         On-link      192.168.31.1    276
   192.168.31.255  255.255.255.255         On-link      192.168.31.1    276
    192.168.128.0    255.255.255.0         On-link   192.168.128.197    257
  192.168.128.197  255.255.255.255         On-link   192.168.128.197    257
  192.168.128.255  255.255.255.255         On-link   192.168.128.197    257
    192.168.203.0    255.255.255.0         On-link     192.168.203.1    276
    192.168.203.1  255.255.255.255         On-link     192.168.203.1    276
  192.168.203.255  255.255.255.255         On-link     192.168.203.1    276
     193.175.54.0    255.255.255.0    192.168.128.1  192.168.128.197      2
    193.205.158.0  255.255.255.128    192.168.128.1  192.168.128.197      2
    193.206.104.0    255.255.255.0    192.168.128.1  192.168.128.197      2
     195.113.94.0    255.255.255.0    192.168.128.1  192.168.128.197      2
    203.126.200.0    255.255.255.0    192.168.128.1  192.168.128.197      2
  203.174.165.128  255.255.255.128    192.168.128.1  192.168.128.197      2
     212.219.93.0    255.255.255.0    192.168.128.1  192.168.128.197      2
      216.165.0.0    255.255.128.0    192.168.128.1  192.168.128.197      2
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    306
        224.0.0.0        240.0.0.0         On-link      192.168.1.13    286
        224.0.0.0        240.0.0.0         On-link     192.168.203.1    276
        224.0.0.0        240.0.0.0         On-link      192.168.31.1    276
        224.0.0.0        240.0.0.0         On-link   192.168.128.197  10000
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    306
  255.255.255.255  255.255.255.255         On-link      192.168.1.13    286
  255.255.255.255  255.255.255.255         On-link     192.168.203.1    276
  255.255.255.255  255.255.255.255         On-link      192.168.31.1    276
  255.255.255.255  255.255.255.255         On-link   192.168.128.197  10000
===========================================================================
    
por deftfyodor 10.08.2014 / 10:42

2 respostas

1

Sua rede local é 192.168.1.0/24, conforme mostrado por esta linha em sua tabela de roteamento:

 192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.32  metric 1

Sua rede VPN é 10.0.0.0/8, conforme mostrado nesta linha:

 10.0.0.0/8 dev tun0  scope link 

Atualmente, seu roteador padrão é:

 default via 192.168.1.254 dev eth0  proto static 

que é claro o que você faz não deseja, porque ele pertence à sua LAN local: assim todas as suas coisas são roteadas através do seu gateway local, como se a VPN não existisse.

 You do have however, the all-important statement

 128.122.252.68 via 192.168.1.254 dev eth0  src 192.168.1.32  

qual é o caminho para o seu provedor de VPN.

EDITAR:

Eu não tinha percebido que a tabela de roteamento é simplesmente aquela que é obtida da sua VPN, sem a sua intervenção. Isso pode indicar (indiretamente) que o seu provedor de serviços está disposto a encaminhar apenas o tráfego explicitamente permitido em sua tabela através da interface tun0, e pode ter tomado outras medidas para bloquear todo o outro tráfego, caso em que seus esforços serão inúteis. p>

No entanto, supondo que o seu fornecedor esteja disposto a encaminhar todo o tráfego, o que você precisa fazer é o seguinte.

Primeiro, você precisa descobrir se há um gateway disposto a aceitar sua conexão do outro lado, porque precisamos do endereço IP dele. Eu vou te dar quatro métodos para fazer isso.

1) Com o pc conectado à VPN, tente o seguinte comando:

   sudo dhclient -v tun0

Se tudo correr bem, você verá uma resposta contendo esta linha:

 DHCPOFFER of a.b.c.d from x.y.w.z

x.y.w.z é o endereço IP do gateway local. Você pode ter que desligar sua VPN após este teste, e talvez até mesmo reiniciar o seu PC, porque teremos acabado de estragar bem a tabela de roteamento.

2) Alternativamente, você pode tentar navegar para um dos sites permitidos (aqueles que aparecem em sua tabela de roteamento passando pela interface tun0 ), e então emitir o comando:

  ip neigh show

Você deve obter uma lista de PCs contatados através do protocolo ARP, com MAC e endereço IP; muito provavelmente, você receberá zero ou uma resposta. Se você receber uma única resposta, esse é o seu roteador.

3) Se você não receber tal resposta, então você pode tentar com

  sudo nmap -sn 10.0.0.0/8

(que vai ser muito lento). O seu gateway será um dos computadores listados, provavelmente aquele com o endereço que termina em .1 ou em .254, se existir algum deles.

4) Use o comando tcpdump:

  sudo tcpdump -n -i tun0

e veja os endereços IP expelidos pelo comando.

Se você não receber uma resposta adequada para este teste, significa que alguém realmente apertou os parafusos em sua rede.

Mas sejamos otimistas e suponhamos que agora você tenha um endereço IP candidato x.w.y.z para o roteador remoto. Você precisará excluir o gateway padrão, (como sudo!):

  ip route del default via 192.168.1.254

adicione o novo:

  ip route add default via x.w.y.z 

e tente navegar.

Deixe-me repetir: como o seu provedor permitiu o tráfego apenas para alguns endereços IP selecionados através de sua VPN, é possível que ele tenha tomado medidas extras (= firewall) para impedir que um usuário inteligente force seu tráfego genérico por meio de sua VPN . Neste caso, não há nada que você possa fazer. Mas se ele não o fez, os passos acima devem ajudá-lo a encontrar uma solução.

    
por 10.08.2014 / 15:14
2

Todos os seus comandos route estão com falta de máscaras de rede, portanto, eles correspondem apenas ao endereço 0.0.0.0 específico e não à Internet inteira. Então, substitua 0.0.0.0 por 0.0.0.0/0 no primeiro comando que você tentou:

ip route add -net 0.0.0.0/0 gw homeportal dev tun0

Pode haver uma ressalva que não tenho certeza se seu cliente VPN resolve sozinho: o endpoint de túnel precisa ser excluído do roteamento via VPN, ele precisa ser roteado por meio da interface eth0 . Portanto, se adicionar essa rota padrão interromper sua VPN, adicione uma rota específica para seu endpoint VPN:

ip route add <ENDPOINT>/32 dev eth0

    
por 10.08.2014 / 12:06