Use conexão VPN apenas para aplicativos selecionados

30

Eu tenho acesso a uma VPN e quero usá-la apenas para alguns aplicativos, não para todos.

Por exemplo:
Se eu me conectar a uma VPN, quero apenas que os aplicativos Opera e Newsbin usem essa conexão VPN. Todas as outras aplicações, como f.e. Outlook, deve usar a conexão normal com a internet (enquanto a VPN estiver conectada / aberta).

Afaik isso não é possível, mas não tenho certeza. Portanto, minha pergunta: é factível?

    
por user 07.06.2011 / 14:51

7 respostas

0

Não, não é. Bem, não usando meios normais. Roteamento é roteamento. O roteamento opera mais abaixo no modelo OSI. O que você precisa fazer é estar ciente no nível de aplicação (mais alto) para que ele possa detectar qual programa você está usando, etc. Os roteadores NORMAL não permitem que você configure rotas com base em aplicativos ou números de porta.

Eu acho que é possível, no entanto. Os roteadores podem ver as portas para que você possa filtrá-las pelo número da porta e enviar o tráfego para diferentes rotas. Eu tenho certeza que li algo há um tempo atrás com roteadores Cisco que podem fazer isso. Eles não são baratos e são roteadores de negócios que exigem muito de configuração e eu acho que você quer algo simples para uso doméstico.

Em resumo, é o roteador que precisa desse recurso e dos seus padrões mais comuns para uso doméstico, e até mesmo os negócios não suportam esses recursos. Somente a linha avançada da Cisco e da Sonicwalls oferece esses recursos.

    
por 11.06.2011 / 00:32
29

É possível fazer isso, pelo menos no Linux (e também estou pensando no BSD e no OS X). Você pode fazer isso por:

  • Crie um usuário exra para todo o tráfego de VPN.
  • Crie uma tabela de roteamento adicional com uma rota padrão por meio da VPN.
  • Configure o Netfilter por meio do Iptables para usar a outra tabela de roteamento para todo o tráfego proveniente de um ID de usuário específico.
  • Execute os aplicativos que devem usar a VPN com o próprio usuário. Por exemplo, com 'sudo'.

Existem scripts para realizar as etapas acima aqui ou há outro guia aqui .

Aqui está um guia detalhado para rotear a Transmissão via VPN (usando um servidor VPN que você possui.

    
por 12.09.2013 / 03:28
14

Você pode usar o Firewall do Windows para fazer isso (desde que esteja usando o Win 7 ou o Vista) - Eu escrevi um guia sobre isso

  1. Connect to your VPN as you normally would.

  2. Open the Network and Sharing Center - right-click on the Internet connection icon in the taskbar and choose "Open Network and Sharing Center" (see below)

  3. You should see (at least) two networks listed under "View Your Active Networks" - your VPN connection and one called "Network" - a.k.a. your ISP Connection. Ensure that your VPN is a "Public Network", and your ISP connection is "Home Network". If you need to change either connection, click it and an option window will appear (see below).

  4. Go to the Control Panel and click System and Security (see below).

  5. In the resulting window, click Windows Firewall (see below).

  6. In the Windows Firewall window, click Advanced Settings on the left pane (see below). Note: You must be logged in as an Adminstrator to make changes to the Firewall Settings.

  7. You should see a window titled Windows Firewall with Advanced Security. In this window, click Inbound Rules (see below).

  8. On the right pane, you will see an option for a New Rule. Click it (see below).

  9. In the New Inbound Rule Wizard (which should appear), do the following:

    • Choose Program and click Next.

    • Choose the program you wish to block all traffic to except on the VPN connection, and click next.

    • Choose Block the Connection.

    • Tick Domain and Private. Make sure Public is left unticked.

  10. Repeat Step 9 for Outbound Rules.

    
por 07.07.2011 / 18:01
1

Se você está no linux e usa o openVPN, o VPNShift funciona lindamente.

    
por 12.07.2018 / 18:19
0

Eu fiz isso no Windows. A ideia é ligar os pacotes de rede de saída à interface da VPN. As pessoas sugerem ForceBindIP para isso, mas graças a isto answer Eu tenho uma ideia para usar o proxy. A desvantagem desse método é que seus aplicativos precisam ter suporte a proxy ou você terá que usar um proxy (consulte aqui e aqui ). A vantagem é que desta forma você será capaz de limitar o uso de VPN no navegador para domínios específicos usando o FoxyProxy ou add-ons similares.

Eu uso 3proxy no modo SOCKS e vinculo sua interface externa ao IP da VPN. O OpenVPN é usado para a conexão VPN.

No meu arquivo .ovpn ( client , dev tun ) eu 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 enviadas do servidor. No seu caso, você pode precisar comentar o redirecionamento do gateway.

route para adicionar uma rota a essa interface, sem essa linha ela não será usada, mesmo que o aplicativo esteja vinculado a ela.

pull-filter para preservar DNS que, caso contrário, será descartado por route-nopull junto com as rotas enviadas. Esta opção é suportada a partir do OpenVPN 2.4, se você tiver que ficar com o OpenVPN 2.3 (versão mais recente para o Windows XP), você terá que adicionar duas dhcp-option DNS x.x.x.x linhas com IPs codificados em vez disso.

script-security 2 para permitir a criação de scripts.

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 se conectar à VPN usando essa configuração, 3proxy.exe process será iniciado e um proxy SOCKS5 limitado localhost com capacidade de resolução de DNS será executado na 1080 port, agora basta configurar seu aplicativo para usar localhost:1080 De proxy SOCKS.

    
por 29.05.2017 / 09:03
0

Você pode fazer isso com namespaces de rede no GNU / Linux.

Veja como executar o OpenVPN e um único aplicativo em um namespace separado:

Crie o namespace de rede da rede:

ip netns add myvpn

Inicie a interface de loopback no namespace (caso contrário, muitas coisas não funcionarão 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

Crie interfaces de rede virtual que permitirão que o OpenVPN (no namespace) acesse a rede real e configure a interface no namespace (vpn1) para usar a interface fora do namespace (vpn0) como seu 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

Ative o roteamento IPv4 e o NAT para a interface no namespace. Como minha interface padrão é sem fio, eu uso o wl + (que pode corresponder a wlan0, wlp3s0, etc.) no iptables para a interface de saída; se você usar uma interface com fio, provavelmente deve 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

Configure o servidor de nomes 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 inicie o OpenVPN no namespace

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

Quando o tun0 estiver no namespace, você estará pronto para iniciar o programa que deseja!

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

artigo da SOURCE.

Além disso, há um script de wrapper no artigo de origem que você pode adaptar para suas necessidades.

    
por 25.10.2017 / 12:36
0

Basta acessar a VPN por meio de uma máquina virtual.

  1. Crie uma VM e, em seguida, a partir da VM ...
  2. Instale os aplicativos 'selecionados'
  3. Configurar a VPN

Use os aplicativos 'selecionados' da VM em vez de usá-los na máquina host.

P.S. Você precisa dar acesso à rede para a VM através da máquina host, é claro.

    
por 16.01.2018 / 02:54