2011-06-07 12:51:27 +0000 2011-06-07 12:51:27 +0000
44
44

Utilizar a ligação VPN apenas para aplicações seleccionadas

Tenho acesso a uma VPN e quero utilizá-la apenas para algumas aplicações, não para todas.

Por exemplo: Se me ligar a uma VPN, quero que apenas as aplicações Opera e Newsbin utilizem essa ligação VPN. Todas as outras aplicações, como por exemplo o Outlook, devem utilizar a ligação normal à Internet (enquanto a VPN está ligada/aberta).

Afaik isto não é possível, mas não tenho a certeza absoluta. Portanto, a minha pergunta: é possível?

Respostas (8)

37
37
37
2013-09-12 01:28:23 +0000

É possível conseguir isto, pelo menos no Linux (e estou a pensar no BSD e no OS X também). Pode fazê-lo por:

  • Criar um utilizador exra para todo o tráfego VPN.
  • Criar uma tabela de roteamento extra com 1 rota padrão através da VPN.
  • Configurar Netfilter através de Iptables para utilizar a outra tabela de roteamento para todo o tráfego proveniente de um ID de utilizador específico. & - Executar as aplicações que devem utilizar a VPN sob o seu próprio utilizador. Por exemplo, com ‘sudo’.

Existem scripts para realizar os passos acima aqui ou existe outro guia aqui .

Aqui está um guia detalhado para o encaminhamento Transmissão via VPN (utilizando um servidor VPN que possui.

14
14
14
2011-07-07 16:01:13 +0000

Poderia usar a Firewall do Windows para o conseguir (desde que esteja a usar Win 7 ou Vista) - Escrevi um guia sobre isto

  1. Ligue-se à sua VPN como normalmente o faria.

& > 2. Abra a Rede e Centro de Partilha - clique com o botão direito do rato no ícone de ligação à Internet na barra de tarefas e escolha “Open Network and Sharing Center” (ver abaixo)

& > 3. Deverá ver (pelo menos) duas redes listadas em “View Your Active Networks” - a sua ligação VPN e uma chamada “Network” - também conhecida como a sua ligação ISP. Certifique-se de que a sua VPN é uma “Rede Pública”, e a sua ligação ao ISP é “Rede Doméstica”. Se precisar de alterar qualquer uma das ligações, clique nela e aparecerá uma janela de opções (ver abaixo).

& > 4. Vá para o Painel de Controlo e clique em Sistema e Segurança (ver abaixo).

& > 5. Na janela resultante, clicar em Windows Firewall (ver abaixo).

& > 6. Na janela Firewall do Windows, clicar em Definições Avançadas no painel da esquerda (ver abaixo). Nota: Tem de estar ligado como Administrador para fazer alterações às Definições de Firewall.

  1. Deverá ver uma janela intitulada Windows Firewall com Segurança Avançada. Nesta janela, clicar em Inbound Rules (ver abaixo).

& > 8. No painel da direita, verá uma opção para uma Nova Regra. Clique nela (ver abaixo).

  1. No Assistente de Nova Regra de Entrada (que deve aparecer), faça o seguinte:

& > 10. Repita o passo 9 para as Regras de Saída.

5
5
5
2017-05-29 07:03:30 +0000

Já fiz isto no Windows. A ideia é ligar os pacotes de saída da rede à interface VPN. As pessoas sugerem ForceBindIP para isto, mas graças a esta resposta tenho uma ideia para usar proxy. O lado negativo deste método é que ou as suas aplicações têm de ter suporte de proxy ou terá de usar um proxificador (ver aqui e aqui ). O lado positivo é que desta forma poderá limitar o uso de VPN no navegador a domínios específicos usando FoxyProxy ou add-ons semelhantes.

Eu uso 3proxy em modo SOCKS e ligo a sua interface externa ao IP da VPN. O OpenVPN é utilizado para a ligação VPN.

No meu ficheiro .ovpn (client, dev tun) adicionei estas linhas:

route-nopull
route 0.0.0.0 0.0.0.0 vpn_gateway
pull-filter ignore "dhcp-option DNS "
script-security 2
up 'c:\path\to\up.cmd'
down 'c:\path\to\down.cmd'

route-nopull para ignorar rotas empurradas a partir do servidor. No seu caso, poderá ter de comentar o redireccionamento do portal.

route para adicionar uma rota para esta interface, sem esta linha não será utilizada, mesmo que a aplicação esteja vinculada a ela.

pull-filter para preservar o DNS empurrado que, caso contrário, será abandonado por route-nopull juntamente com as rotas empurradas. Esta opção é suportada a partir de OpenVPN 2.4, se tiver de ficar com OpenVPN 2.3 (último lançamento para Windows XP), terá de adicionar duas linhas dhcp-option DNS x.x.x.x com IPs hardcoded.

script-security 2 para permitir o scripting.

up script:

cd %~dp0
echo auth none> 3proxy-openvpn.conf
echo internal 127.0.0.1>> 3proxy-openvpn.conf
echo external %4>> 3proxy-openvpn.conf
echo socks>> 3proxy-openvpn.conf
start /b 3proxy.exe 3proxy-openvpn.conf

down script:

taskkill /f /im 3proxy.exe

Assim, depois de ligar à VPN usando esta configuração, 3proxy.exe processo será iniciado e um proxy SOCKS5 local com capacidade de resolução DNS será executado na porta 1080, agora basta configurar a sua aplicação para usar o proxy localhost:1080 SOCKS.

4
4
4
2017-10-25 10:36:54 +0000

Pode fazê-lo com espaços de nomes de rede no GNU/Linux.

Aqui está como executar OpenVPN e uma única aplicação num namespace separado:

Criar o namespace da rede:

ip netns add myvpn

Iniciar a interface de loopback no namespace (caso contrário muitas coisas não funcionam como esperado…)

ip netns exec myvpn ip addr add 127.0.0.1/8 dev lo
ip netns exec myvpn ip link set lo up

Criar interfaces de rede virtuais que permitirão ao OpenVPN (no namespace) aceder à rede real, e configurar a interface no namespace (vpn1) para utilizar a interface fora do namespace (vpn0) como a sua gateway padrão

ip link add vpn0 type veth peer name vpn1
ip link set vpn0 up
ip link set vpn1 netns myvpn up
ip addr add 10.200.200.1/24 dev vpn0
ip netns exec myvpn ip addr add 10.200.200.2/24 dev vpn1
ip netns exec myvpn ip route add default via 10.200.200.1 dev vpn1

Permitir o encaminhamento IPv4 e NAT para a interface no namespace. Como a minha interface padrão é sem fios, utilizo wl+ (que pode corresponder a wlan0, wlp3s0, etc.). ) em iptables para a interface de saída; se usar uma interface com fios, deverá provavelmente usar en+ (ou br+ para uma interface em ponte)

iptables -A INPUT \! -i vpn0 -s 10.200.200.0/24 -j DROP
iptables -t nat -A POSTROUTING -s 10.200.200.0/24 -o wl+ -j MASQUERADE
sysctl -q net.ipv4.ip_forward=1

Configurar o nameserver para usar dentro do namespace

mkdir -p /etc/netns/myvpn
echo 'nameserver 8.8.8.8' > /etc/netns/myvpn/resolv.conf

Quase pronto, agora devemos ter acesso total à rede no namespace

ip netns exec myvpn ping www.google.com

Finalmente iniciar o OpenVPN no namespace

ip netns exec myvpn openvpn --config /etc/openvpn/myvpn.conf

Uma vez que o tun0 esteja no namespace, está pronto para iniciar o programa que queria!

while ! ip netns exec myvpn ip a show dev tun0 up; do sleep .5; done
ip netns exec myvpn sudo -u $MYSELF popcorntime

artigo FONTE

Também existe um guião de embrulho no artigo de origem que pode adaptar às suas necessidades.

1
1
1
2018-07-12 16:19:29 +0000

Se estiver em linux, e usar o openVPN, VPNShift funciona lindamente.

0
0
0
2019-09-12 14:47:21 +0000

Sei que esta é uma resposta tardia que acabei de encontrar, mas no caso de ser relevante para alguém, tive a mesma circunstância em que queria passar o meu tráfego de trabalho através da VPN mas não queria que o meu tráfego pessoal fosse encaminhado através dos seus servidores proxy e afins. Então eu estava a correr Win7 na altura, mas eles ainda estavam a correr WinXP em muitos dos seus sistemas. Acabaram por me dar um 2º PC para correr para o trabalho que resolvia o problema (uma switchbox ligada a ambos os PCs, podia simplesmente saltar para trás e para a frente), mas antes disso, corri uma XP Virtual que configurei como o meu SO de trabalho… Eu ligava VPN a partir do referido VM para me ligar ao trabalho, o que deixaria o meu tráfego pessoal de SO livre das restrições de trabalho e espionagem.

0
0
0
2018-01-16 01:54:06 +0000

Basta aceder à VPN através de uma máquina virtual.

  1. criar uma VM, depois a partir do interior da VM.
  2. Instalar as aplicações ‘seleccionadas’
  3. Configurar a VPN

Utilizar as aplicações ‘seleccionadas’ da VM em vez de as utilizar a partir da máquina anfitriã.

P.S. É necessário dar acesso à rede do VM através da máquina anfitriã, claro.

-1
-1
-1
2011-06-10 22:32:46 +0000

Não, não é. Bem não está a usar meios normais. O encaminhamento é o encaminhamento. O roteamento opera mais abaixo no modelo OSI. O que precisa de acontecer é que ele esteja atento ao nível de aplicação (mais acima) para poder detectar que programa está a utilizar, etc. Os routers NORMAL não lhe permitem configurar rotas com base em aplicações ou números de porta.

penso que é possível, no entanto. Os routers podem ver portas para que possa filtrá-las por número de porta e enviar o tráfego por diferentes rotas. tenho a certeza de ter lido algo há algum tempo com routers Cisco que podem fazer isto. No entanto, eles não são baratos e são routers de negócios que requerem muita configuração e suponho que se queira algo simples para uso doméstico.

Em resumo, é o router que precisaria desta funcionalidade e dos seus routers padrão de pântano para uso doméstico, mesmo os negócios não suportam estas funcionalidades. Apenas a linha avançada da Cisco e Sonicwalls oferece estas capacidades.