it-swarm.dev

Como rotear seletivamente o tráfego de rede através de VPN no Mac OS X Leopard?

Não quero enviar todo o tráfego da minha rede para VPN quando estou conectado à rede da minha empresa (via VPN) de casa. Por exemplo, quando estou trabalhando em casa, gostaria de poder fazer backup de todos os meus arquivos no Time Capsule em casa e ainda conseguir acessar a rede interna da empresa.

Estou usando o cliente VPN integrado do Leopard. Eu tentei desmarcar "Enviar todo o tráfego através de conexão VPN". Se eu fizer isso, perderei o acesso aos sites internos da minha empresa, seja pelo curl ou pelo navegador da Web (embora os IPs internos ainda estejam acessíveis). Seria ideal se eu pudesse escolher seletivamente um conjunto de IPs ou domínios a serem roteados por meio de VPN e manter o restante em minha própria rede. Isso é possível com o cliente VPN integrado do Leopard? Se você tem alguma recomendação de software, eu gostaria de ouvi-las também.

93
newtonapple

Crie o arquivo / etc/ppp/ip-up com o seguinte conteúdo:

#!/bin/sh
/sbin/route add <SUBNET> -interface $1 

substituindo <SUBNET> por sub-rede, você deseja rotear por VPN (por exemplo, 192.168.0.0/16)

executar como root:

chmod 0755 /etc/ppp/ip-up

Este arquivo será executado toda vez que você se conectar à VPN.

Os parâmetros fornecidos para o script:

  • $1: a interface da VPN (por exemplo, ppp0)
  • $2: Desconhecido, foi 0 no meu caso
  • $3: IP do servidor VPN
  • $4: endereço do gateway da VPN
  • $5: gateway regular (não vpn) para suas conexões de lan
82
Aleksei Balandin

Eu queria fazer algo parecido. Conecte a VPN e, em seguida, direcione uma rede adicional através dessa VPN. Acabei com o seguinte bit de Applescript:

-- Connect Work VPN

tell application "System Events"
    tell network preferences
        tell current location
            tell service "Work"
                connect
                tell current configuration
                    repeat until get connected = true
                        delay 1
                    end repeat
                end tell
            end tell
        end tell
    end tell
end tell

set gateway to "192.168.1.1"

do Shell script "route add 172.16.0.0/16 " & gateway with administrator privileges

Você precisa alterar "Work" para o nome de sua conexão VPN, 192.168.1.1 para seu endereço de gateway e 172.16.0.0/16 para o endereço da rede para a qual você deseja rotear. Redes adicionais podem ser adicionadas repetindo a linha final com endereços diferentes.

11
Martin Hilton

Há um recurso oculto em Preferências de Rede no MacOS: você pode classificar interfaces .

Abra as Preferências do Sistema -> Rede -> Clique no gear canto inferior esquerdo -> Set service Order...

<code>Set service Order...</code>VPN Ordering

É fundamental que você tenha suas interfaces de rede classificadas na ordem que você deseja que elas sejam usadas. Se você quiser que todos os dados não-LAN sigam para a VPN, coloque a interface VPN no topo. Ordenar como este

  1. VPN
  2. Ethernet
  3. Aeroporto

Assim não:

  1. Aeroporto
  2. Ethernet
  3. VPN

Desta forma, não há necessidade de verificar a seguinte configuração em Session Options:

Envie todo o tráfego pela conexão VPN

✅ Testado na conexão L2TP VPN

8
user31513

Eu tive uma olhada on-line para ver se eu posso encontrar qualquer coisa, e tanto quanto eu posso entender você parece querer ser capaz de usar seu computador como normal, além de ser capaz de se conectar a sites internos da empresa, então, você pode precisa configurar uma tabela de roteamento personalizada.

Este link aparentemente só se aplica a 10.4, mas o material da linha de comando ainda pode funcionar.

1
Alexis Hirst