{"id":4751,"date":"2019-08-20T15:07:29","date_gmt":"2019-08-20T18:07:29","guid":{"rendered":"https:\/\/blog.clusterweb.com.br\/?p=4751"},"modified":"2019-08-20T15:07:29","modified_gmt":"2019-08-20T18:07:29","slug":"forcar-trafego-torrent-atraves-da-vpn-split-tunnel","status":"publish","type":"post","link":"https:\/\/blog.clusterweb.com.br\/?p=4751","title":{"rendered":"For\u00e7ar Tr\u00e1fego Torrent atrav\u00e9s da VPN Split Tunnel"},"content":{"rendered":"<p><span>N\u00f3s mostramos a voc\u00ea como configurar o\u00a0<\/span><span>Split Tunnel da VPN no Ubuntu Server 14.04 LTS<\/span><span>\u00a0, agora trazemos a pr\u00f3xima seq\u00fc\u00eancia nos guias do t\u00fanel dividido: o guia VPN Split Tunnel para sistemas systemd como o Debian 8 e o Ubuntu 16.04.\u00a0Neste guia, mostraremos como configurar o Split Tunnel no\u00a0<\/span><span>Ubuntu Server 16.04 LTS<\/span><span>\u00a0, Debian 8,\u00a0\u00a0<\/span><span>Minibian<\/span><span>\u00a0\u00a0e Raspbian Jessie (no Raspberry Pi).\u00a0Voc\u00ea poder\u00e1 rotear seu tr\u00e1fego de torrent pela sua conex\u00e3o VPN, enquanto o restante ter\u00e1 acesso direto, ignorando a VPN.\u00a0O tr\u00e1fego da rede ser\u00e1 separado de maneira elegante e segura.<\/span><\/p>\n<div class=\"bzidc5d5c2928c5e93\">\n<div id=\"div-gpt-ad-1551748320983-0\" data-google-query-id=\"CKTWm6n4keQCFUjG4wcdTg8DbQ\">\n<div id=\"google_ads_iframe_\/21722279357\/TA-336x280-DFP-RES_0__container__\">Voc\u00ea tem controle total sobre quais aplicativos deseja rotear pela VPN. Voc\u00ea ter\u00e1 um\u00a0<strong>Kill Switch Autom\u00e1tico<\/strong>\u00a0implementado (usando regras de firewall), ent\u00e3o se sua conex\u00e3o VPN falhar ou quebrar, seu endere\u00e7o IP real n\u00e3o ser\u00e1 revelado e o tr\u00e1fego de torrent ir\u00e1 parar.\u00a0Vazamentos de DNS tamb\u00e9m s\u00e3o evitados.\u00a0O acesso remoto ao seu cliente Torrent de escolha (Transmiss\u00e3o ou Dil\u00favio) \u00e9 poss\u00edvel com o proxy reverso nginx.<\/div>\n<\/div>\n<\/div>\n<p><span>\u00c9 muito importante proteger sua privacidade online.\u00a0N\u00f3s certamente recomendamos o uso de uma VPN (Virtual Private Network) com o OpenVPN.\u00a0Felizmente, existem muitos servidores VPN pagos com excelente desempenho e \u00f3timo pre\u00e7o.\u00a0Leia sempre a sua Pol\u00edtica de Privacidade, considere a qualidade do servi\u00e7o pelo pre\u00e7o e escolha um que voc\u00ea confia.\u00a0Neste guia, usaremos\u00a0<\/span><span>o acesso \u00e0 Internet privada<\/span><span>\u00a0(PIA) como o provedor de VPN. Na minha experi\u00eancia, configurar outros n\u00e3o ser\u00e1 muito diferente.<\/span><\/p>\n<p><strong><span>Importante:<\/span><\/strong><span>\u00a0Este guia foi escrito para sistemas Ubuntu Server 16.04 LTS e Debian 8 (como Minibian, Raspbian, Bananian) que usam servi\u00e7os systemd.\u00a0Ele pode funcionar em outras distribui\u00e7\u00f5es Linux, mas \u00e9 garantido que funcionar\u00e1 no Ubuntu Server 16.04 LTS e Debian 8. Para sistemas que usam script upstart (como o Ubuntu Server 14.04 LTS), os scripts upstart s\u00e3o necess\u00e1rios em vez do servi\u00e7o systemd.\u00a0Se voc\u00ea estiver usando o Ubuntu Server 14.04 LTS, v\u00e1 para o\u00a0guia\u00a0<\/span><span>Ubuntu 14.04 do Tunnel Dividir VPN<\/span><span>\u00a0do\u00a0Force Torrent Traffic\u00a0.<\/span><\/p>\n<p><span>As se\u00e7\u00f5es marcadas como Minibian s\u00e3o necess\u00e1rias apenas se voc\u00ea estiver executando o Minibian.\u00a0Usu\u00e1rios do Ubuntu Server 16.04 LTS devem ignorar essas partes (sempre ser\u00e1 indicado na se\u00e7\u00e3o relevante).<\/span><\/p>\n<p><!--more--><\/p>\n<h2><span>Por que dividir t\u00fanel VPN?<\/span><\/h2>\n<p><span>Se voc\u00ea estiver executando um servidor dom\u00e9stico baseado no Ubuntu Server e configurar seu cliente OpenVPN, ser\u00e1 completamente encapsulado pela conex\u00e3o VPN ativa.\u00a0Mas e se n\u00f3s gostar\u00edamos de encapsular apenas o tr\u00e1fego de poucos aplicativos sobre VPN (por exemplo, Transmiss\u00e3o ou Dil\u00favio) e permitir tudo o mais conex\u00e3o direta?\u00a0Isso \u00e9 chamado de divis\u00e3o de encapsulamento da conex\u00e3o VPN.\u00a0E se a sua conex\u00e3o VPN quebrar porque o servidor VPN est\u00e1 offline?\u00a0Sem regras de firewall adequadas, voc\u00ea voltar\u00e1 automaticamente para sua conex\u00e3o direta com a Internet e imediatamente expor\u00e1 seu endere\u00e7o IP real.\u00a0Isso coloca riscos de privacidade e anonimato!<\/span><\/p>\n<p><a class=\"gallery_colorbox cboxElement\" href=\"https:\/\/www.htpcguides.com\/wp-content\/uploads\/2016\/07\/torrent-split-tunnel-vpn-ubuntu.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-10877 size-full wp-bullet-lazy-loaded\" title=\"\" src=\"https:\/\/www.htpcguides.com\/wp-content\/uploads\/2016\/07\/torrent-split-tunnel-vpn-ubuntu.png\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" srcset=\"https:\/\/www.htpcguides.com\/wp-content\/uploads\/2016\/07\/torrent-split-tunnel-vpn-ubuntu.png 700w, https:\/\/www.htpcguides.com\/wp-content\/uploads\/2016\/07\/torrent-split-tunnel-vpn-ubuntu-150x77.png 150w, https:\/\/www.htpcguides.com\/wp-content\/uploads\/2016\/07\/torrent-split-tunnel-vpn-ubuntu-400x204.png 400w, https:\/\/www.htpcguides.com\/wp-content\/uploads\/2016\/07\/torrent-split-tunnel-vpn-ubuntu-600x306.png 600w, https:\/\/www.htpcguides.com\/wp-content\/uploads\/2016\/07\/torrent-split-tunnel-vpn-ubuntu-392x200.png 392w, https:\/\/www.htpcguides.com\/wp-content\/uploads\/2016\/07\/torrent-split-tunnel-vpn-ubuntu-200x102.png 200w\" alt=\"\" width=\"700\" height=\"357\" data-src=\"https:\/\/www.htpcguides.com\/wp-content\/uploads\/2016\/07\/torrent-split-tunnel-vpn-ubuntu.png\" data-srcset=\"https:\/\/www.htpcguides.com\/wp-content\/uploads\/2016\/07\/torrent-split-tunnel-vpn-ubuntu.png 700w, https:\/\/www.htpcguides.com\/wp-content\/uploads\/2016\/07\/torrent-split-tunnel-vpn-ubuntu-150x77.png 150w, https:\/\/www.htpcguides.com\/wp-content\/uploads\/2016\/07\/torrent-split-tunnel-vpn-ubuntu-400x204.png 400w, https:\/\/www.htpcguides.com\/wp-content\/uploads\/2016\/07\/torrent-split-tunnel-vpn-ubuntu-600x306.png 600w, https:\/\/www.htpcguides.com\/wp-content\/uploads\/2016\/07\/torrent-split-tunnel-vpn-ubuntu-392x200.png 392w, https:\/\/www.htpcguides.com\/wp-content\/uploads\/2016\/07\/torrent-split-tunnel-vpn-ubuntu-200x102.png 200w\" \/><\/a><\/p>\n<h2><span>Os benef\u00edcios do tunelamento de divis\u00e3o da VPN<\/span><\/h2>\n<h3><span>Ao controle<\/span><\/h3>\n<p><span>Voc\u00ea pode selecionar quais servi\u00e7os \/ aplicativos devem ser encapsulados pela conex\u00e3o VPN executando os servi\u00e7os \/ aplicativos selecionados como usu\u00e1rio vpn, portanto, voc\u00ea pode proteger sua identidade.<\/span><\/p>\n<h3><span>Automa\u00e7\u00e3o<\/span><\/h3>\n<p><span>A conex\u00e3o VPN com o Split Tunneling \u00e9 iniciada automaticamente em cada inicializa\u00e7\u00e3o do sistema, reiniciada automaticamente quando o provedor de VPN estiver on-line novamente.<\/span><\/p>\n<h3><span>Maior seguran\u00e7a<\/span><\/h3>\n<p><span>Se a conex\u00e3o VPN quebrar, o usu\u00e1rio vpn \u00e9 \u201cdesconectado\u201d da Internet (Automatic Kill Switch), se a conex\u00e3o VPN for estabelecida novamente, o usu\u00e1rio vpn ter\u00e1 acesso \u00e0 Internet novamente pela VPN.\u00a0Isso garante que o seu endere\u00e7o IP real nunca seja exposto publicamente, apenas o endere\u00e7o IP atribu\u00eddo pelo provedor de VPN \u00e9 vis\u00edvel.<\/span><\/p>\n<h3><span>Maior conveni\u00eancia<\/span><\/h3>\n<p><span>Voc\u00ea mant\u00e9m sua conex\u00e3o direta com a Internet para todos os outros usu\u00e1rios, ignorando a VPN para servi\u00e7os \/ aplicativos que n\u00e3o exigem que voc\u00ea esconda seu endere\u00e7o IP real<\/span><\/p>\n<h3><span>Mantenha o acesso remoto<\/span><\/h3>\n<p><span>Voc\u00ea ainda poder\u00e1\u00a0<\/span><strong><span>gerenciar remotamente<\/span><\/strong><span>\u00a0seus servi\u00e7os por meio de proxy reverso!<\/span><\/p>\n<h3><span>Vis\u00e3o Geral da Instala\u00e7\u00e3o<\/span><\/h3>\n<p><span>Este \u00e9 um guia avan\u00e7ado, mas todos os esfor\u00e7os foram feitos para torn\u00e1-lo amig\u00e1vel para novos usu\u00e1rios com conhecimentos b\u00e1sicos de Linux.\u00a0Se algo der errado, sinta-se \u00e0 vontade para comentar ou postar no\u00a0<\/span><span>F\u00f3rum<\/span><span>\u00a0, faremos o melhor para ajud\u00e1-lo.\u00a0Desde a publica\u00e7\u00e3o do guia VPN Split Tunnel para o Ubuntu Server 14.04 LTS, h\u00e1 muitos posts interessantes na se\u00e7\u00e3o do f\u00f3rum.<\/span><\/p>\n<p><span>Esta \u00e9 a\u00a0<\/span><strong><span>parte 1<\/span><\/strong><span>\u00a0do guia do t\u00fanel dividido.\u00a0Neste guia, voc\u00ea criar\u00e1 e configurar\u00e1 o usu\u00e1rio vpn.<\/span><\/p>\n<p><span>Na\u00a0<\/span><strong><span>Parte 2<\/span><\/strong><span>\u00a0das pr\u00f3ximas guias, voc\u00ea configurar\u00e1 seu cliente de torrent (Transmission or Deluge) para ser executado como o usu\u00e1rio da VPN.<\/span><\/p>\n<p><span>Aqui est\u00e1 uma vis\u00e3o geral de todas as etapas da\u00a0<\/span><strong><span>Parte 1<\/span><\/strong><span>\u00a0:<\/span><\/p>\n<ul>\n<li><span>Instalar e configurar o OpenVPN (incluindo conex\u00e3o autom\u00e1tica ao servidor VPN no in\u00edcio do sistema)<\/span><\/li>\n<li><span>Modifique o arquivo de configura\u00e7\u00e3o PIA para ajustar o T\u00fanel Dividido<\/span><\/li>\n<li><span>Configurar o servidor DNS para conex\u00e3o VPN para evitar vazamento de DNS<\/span><\/li>\n<li><span>Crie o usu\u00e1rio vpn que ser\u00e1 tunelado por VPN<\/span><\/li>\n<li><span>Use o iptables para marcar as regras de tr\u00e1fego e roteamento do usu\u00e1rio vpn para rotear os pacotes marcados pela conex\u00e3o VPN<\/span><\/li>\n<li><span>Verifique se tudo est\u00e1 configurado e funcionando corretamente<\/span><\/li>\n<\/ul>\n<h2><span>Instalar o OpenVPN<\/span><\/h2>\n<p><span>Infelizmente, os reposit\u00f3rios do Ubuntu e do Debian nem sempre est\u00e3o atualizados.\u00a0Recomenda-se usar a vers\u00e3o mais recente do OpenVPN para garantir que voc\u00ea tenha as \u00faltimas corre\u00e7\u00f5es de seguran\u00e7a (e poss\u00edveis atualiza\u00e7\u00f5es).\u00a0No caso do Ubuntu Server 16.04, o\u00a0<\/span><a href=\"https:\/\/community.openvpn.net\/openvpn\/wiki\/OpenvpnSoftwareRepos\" target=\"_blank\" rel=\"noopener noreferrer\"><span>reposit\u00f3rio oficial do OpenVPN<\/span><\/a><span>\u00a0sempre fornece a vers\u00e3o mais recente.\u00a0No caso de CPUs ARM, como o Rasperry Pi rodando Raspbian ou Minibian, precisamos construir a vers\u00e3o mais recente, j\u00e1 que o reposit\u00f3rio OpenVPN n\u00e3o fornece compila\u00e7\u00f5es para dispositivos baseados em ARM.\u00a0\u00c9 muito f\u00e1cil construir o OpenVPN a partir da fonte (fique atento ao guia), at\u00e9 ent\u00e3o, no Debian, Minibian e Raspbian voc\u00ea pode usar a vers\u00e3o dispon\u00edvel no reposit\u00f3rio Debian.<\/span><\/p>\n<h3><span>Instalar o OpenVPN no Ubuntu Server 16.04 LTS<\/span><\/h3>\n<p><span>Se voc\u00ea estiver usando o Ubuntu Server 16.04 LTS, instalaremos o OpenVPN a partir do reposit\u00f3rio oficial do OpenVPN.\u00a0Primeiro importe a chave GPG p\u00fablica usada para assinar os pacotes.<\/span><\/p>\n<pre><code>wget https:\/\/swupdate.openvpn.net\/repos\/repo-public.gpg -O - | sudo apt-key add -<\/code><\/pre>\n<p><span>Adicione o reposit\u00f3rio do OpenVPN<\/span><\/p>\n<pre><code>echo \"deb http:\/\/build.openvpn.net\/debian\/openvpn\/stable xenial main\" | sudo tee -a \/etc\/apt\/sources.list.d\/openvpn.list<\/code><\/pre>\n<p><span>Instalar o OpenVPN<\/span><\/p>\n<pre><code>sudo apt-get update\r\nsudo apt-get install openvpn -y<\/code><\/pre>\n<p><strong><span>Atualiza\u00e7\u00e3o:<\/span><\/strong><span>\u00a0OpenVPN apt repository foi alterado, o guia foi atualizado com o novo endere\u00e7o.<\/span><\/p>\n<h3><span>Instale o OpenVPN no Debian 8 (Minibian, Raspbian)<\/span><\/h3>\n<p><span>Como o reposit\u00f3rio OpenVPN n\u00e3o suporta dispositivos baseados em ARM, temos duas op\u00e7\u00f5es.\u00a0Use a vers\u00e3o OpenVPN dispon\u00edvel no reposit\u00f3rio Debian (provavelmente vers\u00e3o bastante desatualizada), ou\u00a0<\/span><span>construa a vers\u00e3o mais recente do OpenVPN a partir da fonte,<\/span><span>\u00a0seguindo o nosso guia.\u00a0Eu recomendo fortemente construir o OpenVPN para obter a vers\u00e3o mais recente.\u00a0Se voc\u00ea decidir criar o OpenVPN a partir da fonte, pule as duas linhas abaixo.<\/span><\/p>\n<p><span>Isto ir\u00e1 instalar o OpenVPN do reposit\u00f3rio Debian (necess\u00e1rio apenas se voc\u00ea n\u00e3o compilou o OpenVPN a partir do c\u00f3digo fonte)<\/span><\/p>\n<pre><code>apt-get update\r\napt-get install openvpn -y<\/code><\/pre>\n<h3><span>Crie o servi\u00e7o systemd para OpenVPN<\/span><\/h3>\n<p><span>O servi\u00e7o systemd \u00e9 id\u00eantico para o Ubuntu Server 16.04 LTS e o Debian 8 e posterior (inclui Raspbian, Bananian, Minibian)<\/span><\/p>\n<p><span>Nota: no Minibian voc\u00ea n\u00e3o precisa usar\u00a0<\/span><code>sudo<\/code><\/p>\n<p><span>Com a transi\u00e7\u00e3o para o systemd, o OpenVPN usa scripts de servi\u00e7o systemd individuais para cada conex\u00e3o, que podem ser iniciados e parados com o comando systemctl.\u00a0\u00c9 realmente uma \u00f3tima maneira de lidar com conex\u00f5es, voc\u00ea pode ler mais sobre este\u00a0<\/span><a href=\"http:\/\/fedoraproject.org\/wiki\/Openvpn\" target=\"_blank\" rel=\"noopener noreferrer\"><span>link<\/span><\/a><span>\u00a0.<\/span><\/p>\n<p><span>Crie o servi\u00e7o systemd que iniciar\u00e1 a configura\u00e7\u00e3o necess\u00e1ria do OpenVPN no in\u00edcio do sistema<\/span><\/p>\n<pre><code>sudo nano \/etc\/systemd\/system\/openvpn@openvpn.service<\/code><\/pre>\n<p><span>Este script tamb\u00e9m reiniciar\u00e1 o servi\u00e7o OpenVPN se o servi\u00e7o foi encerrado por algum motivo, os logs ser\u00e3o localizados no syslog (\u00a0<\/span><code>\/var\/log\/syslog<\/code><span>).<\/span><\/p>\n<p><span>Copie e cole o seguinte<\/span><\/p>\n<pre><code>[Unit]\r\n# HTPC Guides - www.htpcguides.com\r\nDescription=OpenVPN connection to %i\r\nDocumentation=man:openvpn(8)\r\nDocumentation=https:\/\/community.openvpn.net\/openvpn\/wiki\/Openvpn23ManPage\r\nDocumentation=https:\/\/community.openvpn.net\/openvpn\/wiki\/HOWTO\r\nAfter=network.target\r\n\r\n[Service]\r\nRuntimeDirectory=openvpn\r\nPrivateTmp=true\r\nKillMode=mixed\r\nType=forking\r\nExecStart=\/usr\/sbin\/openvpn --daemon ovpn-%i --status \/run\/openvpn\/%i.status 10 --cd \/etc\/openvpn --script-security 2 --config \/etc\/openvpn\/%i.conf --writepid \/run\/openvpn\/%i.pid\r\nPIDFile=\/run\/openvpn\/%i.pid\r\nExecReload=\/bin\/kill -HUP $MAINPID\r\nWorkingDirectory=\/etc\/openvpn\r\nRestart=on-failure\r\nRestartSec=3\r\nProtectSystem=yes\r\nLimitNPROC=10\r\nDeviceAllow=\/dev\/null rw\r\nDeviceAllow=\/dev\/net\/tun rw\r\n\r\n[Install]\r\nWantedBy=multi-user.target<\/code><\/pre>\n<p><span>Pressione Ctrl + X, Y e Enter para salvar.<\/span><\/p>\n<p><span>Agora habilite o openvpn@openvpn.service que acabamos de criar<\/span><\/p>\n<pre><code>sudo systemctl enable openvpn@openvpn.service<\/code><\/pre>\n<h2><span>Pacotes de Verifica\u00e7\u00e3o Dupla para Distros Debian Minimais<\/span><\/h2>\n<p><span>No Debian 8, Raspbian e Minibian o procedimento \u00e9 exatamente o mesmo que no Ubuntu Server 16.04 LTS, exceto que precisamos instalar alguns pacotes adicionais.\u00a0Se voc\u00ea estiver usando o Ubuntu Server 16.04 LTS, apenas pule esta parte Minibiana do guia e prossiga para a pr\u00f3xima se\u00e7\u00e3o Criar Arquivo de Configura\u00e7\u00e3o PIA para Split Tunneling.<\/span><\/p>\n<p><span>Primeiro, recomendo atualizar o firmware RPi para a vers\u00e3o mais recente executando<\/span><\/p>\n<pre><code>apt-get update\r\napt-get install rpi-update<\/code><\/pre>\n<p><span>Em seguida, atualize o firmware<\/span><\/p>\n<pre><code>rpi-update<\/code><\/pre>\n<p><span>seguido por um reboot<\/span><\/p>\n<pre><code>reboot<\/code><\/pre>\n<p><span>Em seguida, verifique se o Minibian est\u00e1 atualizado, execute<\/span><\/p>\n<pre><code>apt-get upgrade -y\r\napt-get dist-upgrade -y<\/code><\/pre>\n<p><span>Dependendo da sua instala\u00e7\u00e3o atual do Debian ou Minibian, alguns dos pacotes abaixo podem j\u00e1 estar dispon\u00edveis.\u00a0Nesse caso, voc\u00ea ainda pode emitir com seguran\u00e7a os comandos de instala\u00e7\u00e3o abaixo.<\/span><\/p>\n<pre><code>apt-get install nano sudo apt-utils iptables curl resolvconf<\/code><\/pre>\n<p><span>Agora sua instala\u00e7\u00e3o m\u00ednima do Debian est\u00e1 pronta para prosseguir com a configura\u00e7\u00e3o do Split Tunnel da VPN.<\/span><\/p>\n<h2><span>Criar arquivo de configura\u00e7\u00e3o PIA para t\u00fanel de divis\u00e3o<\/span><\/h2>\n<p><span>O pr\u00f3ximo passo \u00e9 modificar o arquivo de configura\u00e7\u00e3o fornecido pela PIA para ajust\u00e1-lo para o Split Tunneling.\u00a0Neste guia, usaremos o servidor VPN da Su\u00e9cia, mas voc\u00ea poder\u00e1 usar qualquer um dos servidores dispon\u00edveis &#8211; mais sobre isso depois.\u00a0Para melhor desempenho de VPN (especialmente para torrents), eu recomendo fortemente o uso do protocolo UDP e n\u00e3o do TCP.<\/span><\/p>\n<h3><span>Obtenha os certificados necess\u00e1rios para PIA<\/span><\/h3>\n<p><span>Se o unzip n\u00e3o estiver instalado no seu servidor, basta instalar com<\/span><\/p>\n<pre><code>sudo apt-get install unzip -y<\/code><\/pre>\n<p><span>Baixe o arquivo da PIA, vamos precisar apenas dos certificados<\/span><\/p>\n<pre><code>cd \/tmp\r\nsudo wget https:\/\/www.privateinternetaccess.com\/openvpn\/openvpn.zip\r\nsudo unzip openvpn.zip<\/code><\/pre>\n<p><span>Copie os certificados PIA necess\u00e1rios<\/span><\/p>\n<pre><code>sudo cp crl.rsa.2048.pem ca.rsa.2048.crt \/etc\/openvpn\/<\/code><\/pre>\n<h3><span>Criar arquivo de configura\u00e7\u00e3o PIA modificado para t\u00fanel de divis\u00e3o<\/span><\/h3>\n<p><span>Fazemos as seguintes altera\u00e7\u00f5es no arquivo de configura\u00e7\u00e3o PIA padr\u00e3o:<\/span><\/p>\n<ul>\n<li><span>Adicione route-noexec para evitar que o servidor envie &#8220;redirecionamento de gateway&#8221; e fa\u00e7a o cliente enviar todo o tr\u00e1fego pela VPN por padr\u00e3o.<\/span>\n<ul>\n<li><span>Isso\u00a0<\/span><strong><span>\u00e9 necess\u00e1rio<\/span><\/strong><span>\u00a0para o Split Tunneling funcionar.<\/span><\/li>\n<\/ul>\n<\/li>\n<li><span>Adicione auth-nocache para evitar a coloca\u00e7\u00e3o de senhas em cache na mem\u00f3ria.<\/span><\/li>\n<li><span>Adicione a chamada para o arquivo login.txt com o nome de usu\u00e1rio e senha para possibilitar o login autom\u00e1tico.<\/span><\/li>\n<li><span>Adicione script-security 2 para permitir que o cliente chame scripts externos (para cima e para baixo).<\/span><\/li>\n<li><span>Chame o primeiro script, iptables.sh, para marcar os pacotes para o usu\u00e1rio da VPN (o OpenVPN permite apenas uma liga\u00e7\u00e3o).<\/span><\/li>\n<li><span>Adicione script, update-resolv-conf, para restaurar servidores DNS ao desconectar da VPN.<\/span><\/li>\n<\/ul>\n<p><span>Voc\u00ea pode alterar o nome do host destacado em vermelho para o servidor de sua escolha.\u00a0Para obter a lista de locais e nomes de host dispon\u00edveis, consulte\u00a0<\/span><a href=\"https:\/\/www.privateinternetaccess.com\/pages\/network\/\" target=\"_blank\" rel=\"noopener noreferrer\"><span>o site da PIA<\/span><\/a><span>\u00a0e selecione o nome de host de sua escolha.<\/span><\/p>\n<p><span>Estamos editando o arquivo openvpn.conf, que \u00e9 iniciado pelo servi\u00e7o systemd que criamos anteriormente (openvpn@openvpn.service).\u00a0Desta forma n\u00f3s garantimos que os scripts up e down que fizemos tamb\u00e9m s\u00e3o executados com o servi\u00e7o systemd do OpenVPN que \u00e9 reiniciado.<\/span><\/p>\n<p><span>Crie o arquivo de configura\u00e7\u00e3o do OpenVPN<\/span><\/p>\n<pre><code>sudo nano \/etc\/openvpn\/openvpn.conf<\/code><\/pre>\n<p><span>Copie e cole o seguinte, ajuste o pa\u00eds que deseja usar substituindo\u00a0<\/span><code>sweden.privateinternetaccess.com<\/code><\/p>\n<pre><code>client\r\ndev tun\r\nproto udp\r\nremote sweden.privateinternetaccess.com 1198\r\nresolv-retry infinite\r\nnobind\r\npersist-key\r\npersist-tun\r\ncipher aes-128-cbc\r\nauth sha1\r\ntls-client\r\nremote-cert-tls server\r\nauth-user-pass \/etc\/openvpn\/login.txt\r\nauth-nocache\r\ncomp-lzo\r\nverb 1\r\nreneg-sec 0\r\ncrl-verify \/etc\/openvpn\/crl.rsa.2048.pem\r\nca \/etc\/openvpn\/ca.rsa.2048.crt\r\ndisable-occ\r\nscript-security 2\r\nroute-noexec\r\n\r\n#up and down scripts to be executed when VPN starts or stops\r\nup \/etc\/openvpn\/iptables.sh\r\ndown \/etc\/openvpn\/update-resolv-conf<\/code><\/pre>\n<p><span>Pressione Ctrl + X, Y e Enter para salvar e sair.<\/span><\/p>\n<h3><span>Fa\u00e7a o Login Autom\u00e1tico do OpenVPN no Servi\u00e7o Iniciar<\/span><\/h3>\n<p><span>O nome de usu\u00e1rio e a senha do PIA ser\u00e3o armazenados em um arquivo login.txt, assim o OpenVPN pode se conectar automaticamente no in\u00edcio do servi\u00e7o.\u00a0Crie o arquivo txt<\/span><\/p>\n<pre><code>sudo nano \/etc\/openvpn\/login.txt<\/code><\/pre>\n<p><span>Digite seu nome de usu\u00e1rio e senha PIA<\/span><\/p>\n<pre><code>USERNAME\r\nPASSWORD<\/code><\/pre>\n<p><span>Pressione Ctrl + X, Y para salvar e sair.<\/span><\/p>\n<h3><span>Configurar servidores DNS de VPN para impedir vazamentos de DNS<\/span><\/h3>\n<p><span>Em seguida, vamos impedir o vazamento de DNS.\u00a0Os vazamentos de DNS geralmente s\u00e3o a principal raz\u00e3o pela qual sua identidade real \u00e9 exposta, mesmo se estiver usando uma VPN.\u00a0Voc\u00ea pode ler mais sobre vazamentos de DNS\u00a0<\/span><a href=\"https:\/\/www.cloudwards.net\/what-are-dns-leaks\/\" target=\"_blank\" rel=\"noopener noreferrer\"><span>aqui<\/span><\/a><span>\u00a0e test\u00e1-los\u00a0\u00a0<\/span><a href=\"https:\/\/www.dnsleaktest.com\/what-is-a-dns-leak.html\" target=\"_blank\" rel=\"noopener noreferrer\"><span>aqui<\/span><\/a><span>\u00a0.\u00a0O script update-resolv-conf que acompanha o OpenVPN aplicar\u00e1 automaticamente os servidores DNS preferidos quando o OpenVPN se conectar.<\/span><\/p>\n<p><span>Esse script garantir\u00e1 que, ao usar o OpenVPN, voc\u00ea n\u00e3o esteja sujeito a vazamentos de DNS.\u00a0Usaremos os Servidores DNS da PIA (209.222.18.222 e 209.222.18.218) e os do Google (8.8.8.8) como uma terceira op\u00e7\u00e3o.\u00a0Voc\u00ea est\u00e1 livre para usar os servidores DNS que voc\u00ea confia e prefere.\u00a0\u00c9 aconselh\u00e1vel alterar o DNS local para um p\u00fablico, mesmo se voc\u00ea n\u00e3o estiver usando VPN.\u00a0Se voc\u00ea estiver atr\u00e1s de um roteador (e provavelmente o \u00e9), tamb\u00e9m \u00e9 uma boa pr\u00e1tica configurar o endere\u00e7o DNS p\u00fablico no roteador tamb\u00e9m.<\/span><\/p>\n<p><strong><span>Nota:<\/span><\/strong><span>\u00a0verifique se voc\u00ea est\u00e1 usando um IP est\u00e1tico em sua m\u00e1quina ou DHCP reservado, tamb\u00e9m conhecido como DHCP est\u00e1tico.\u00a0N\u00e3o configure o IP est\u00e1tico em seu servidor, pois o resolvconf n\u00e3o funcionar\u00e1.\u00a0Voc\u00ea deve definir o IP est\u00e1tico do seu roteador!<\/span><\/p>\n<p><span>Abra o arquivo update-resolv-conf<\/span><\/p>\n<pre><code>sudo nano \/etc\/openvpn\/update-resolv-conf<\/code><\/pre>\n<p><span>Localize esta parte<\/span><\/p>\n<pre><code># foreign_option_1='dhcp-option DNS 193.43.27.132'\r\n# foreign_option_2='dhcp-option DNS 193.43.27.133'\r\n# foreign_option_3='dhcp-option DOMAIN be.bnc.ch'<\/code><\/pre>\n<p><span>Substitua a pe\u00e7a destacada em vermelho, certifique-se de descomentar (remova o # do come\u00e7o) estas 3 linhas, e preste aten\u00e7\u00e3o na terceira linha onde voc\u00ea precisa substituir DOMAIN pelo DNS.<\/span><\/p>\n<p><span>Deve ser exatamente assim<\/span><\/p>\n<pre><code>foreign_option_1='dhcp-option DNS 209.222.18.222'\r\nforeign_option_2='dhcp-option DNS 209.222.18.218'\r\nforeign_option_3='dhcp-option DNS 8.8.8.8'<\/code><\/pre>\n<p><span>Pressione Ctrl + X, Y e Enter para salvar.<\/span><\/p>\n<p><span>Seu DNS est\u00e1 configurado para o OpenVPN para evitar vazamentos de DNS.<\/span><\/p>\n<h2><span>Split Tunneling com iptables e tabelas de roteamento<\/span><\/h2>\n<p><span>Usaremos o iptables para marcar pacotes de um usu\u00e1rio (no nosso caso, o usu\u00e1rio vpn) e, em seguida, usar tabelas de roteamento para rotear esses pacotes marcados atrav\u00e9s da interface OpenVPN, enquanto permitir que os pacotes n\u00e3o marcados acessem diretamente a Internet.<\/span><\/p>\n<h3><span>Criar usu\u00e1rio vpn<\/span><\/h3>\n<p><span>Crie o usu\u00e1rio vpn.\u00a0Todos os aplicativos que voc\u00ea deseja encapsular pela VPN ser\u00e3o executados como este usu\u00e1rio, especialmente o cliente de torrent escolhido (Transmiss\u00e3o ou Dil\u00favio).\u00a0No final deste guia, voc\u00ea ver\u00e1 os links para os nossos guias sobre como configurar a Transmiss\u00e3o e o Dil\u00favio com o Split Tunneling.<\/span><\/p>\n<p><span>Crie um usu\u00e1rio vpn sem op\u00e7\u00e3o de login<\/span><\/p>\n<pre><code>sudo adduser --disabled-login vpn<\/code><\/pre>\n<p><span>Sugiro deixar em branco os dados pessoais, basta prosseguir com Enter e finalmente responder Y para criar o usu\u00e1rio vpn.\u00a0N\u00f3s desativamos o login para o usu\u00e1rio vpn por raz\u00f5es de seguran\u00e7a, n\u00e3o h\u00e1 necessidade de fazer login no sistema como o usu\u00e1rio vpn.<\/span><\/p>\n<p><span>N\u00f3s vamos usar o usu\u00e1rio vpn para executar servi\u00e7os (como o cliente Torrent), \u00e9 recomendado adicionar seu usu\u00e1rio regular ao grupo vpn e o usu\u00e1rio vpn ao grupo do usu\u00e1rio regular para evitar quaisquer problemas de permiss\u00e3o.<\/span><\/p>\n<p><span>Substitua\u00a0<\/span><code>username<\/code><span>pelo usu\u00e1rio que voc\u00ea gostaria de adicionar ao grupo vpn<\/span><\/p>\n<pre><code>sudo usermod -aG vpn username\r\n<\/code><\/pre>\n<p><span>Substitua\u00a0<\/span><code>group<\/code><span>com o nome do grupo do seu usu\u00e1rio regular que voc\u00ea gostaria de adicionar o usu\u00e1rio vpn para<\/span><\/p>\n<pre><code>sudo usermod -aG group vpn<\/code><\/pre>\n<h3><span>Obter informa\u00e7\u00f5es de roteamento para o script iptables<\/span><\/h3>\n<p><span>Precisamos do IP local e do nome da interface de rede.\u00a0Novamente, verifique se voc\u00ea est\u00e1 usando um IP est\u00e1tico em sua m\u00e1quina ou DHCP reservado, tamb\u00e9m conhecido como DHCP est\u00e1tico, mas configurado em seu roteador!<\/span><\/p>\n<pre><code>ip route list<\/code><\/pre>\n<p><span>A sa\u00edda ser\u00e1 semelhante a esta<\/span><\/p>\n<pre><code>default via 192.168.1.1 dev eth0\r\n192.168.1.0\/24 dev eth0 proto kernel scope link src 192.168.1.110<\/code><\/pre>\n<p><code>eth0<\/code><span>\u00e9 a interface de rede (NETIF) e\u00a0<\/span><code>192.168.1.110<\/code><span>\u00e9 o endere\u00e7o IP local (LOCALIP).\u00a0Voc\u00ea precisar\u00e1 inserir esses dois no seguinte script, que vamos criar agora.<\/span><\/p>\n<p><strong><span>ATUALIZA\u00c7\u00c3O (8 de novembro de 2016):<\/span><\/strong><span>\u00a0gra\u00e7as a um feedback do nosso membro Jesus, estamos agora abordando uma vulnerabilidade relacionada \u00e0 implementa\u00e7\u00e3o do Split Tunnel da VPN.\u00a0Se as credenciais de login PIA n\u00e3o estiverem corretas, o OpenVPN n\u00e3o estabelecer\u00e1 a conex\u00e3o VPN, portanto as regras de firewall n\u00e3o ser\u00e3o aplicadas (j\u00e1 que o OpenVPN executar\u00e1 scripts somente em uma conex\u00e3o bem-sucedida).\u00a0O resultado \u00e9 n\u00e3o ter o kill switch ativado (regras iptables carregadas) e o usu\u00e1rio vpn tem acesso direto \u00e0 Internet.\u00a0Para evitar esse cen\u00e1rio, implementaremos uma regra de firewall permanente para bloquear o acesso do usu\u00e1rio da vpn \u00e0 Internet at\u00e9 que o t\u00fanel OpenVPN esteja ativo e funcionando, e os scripts necess\u00e1rios sejam iniciados.\u00a0Isso impedir\u00e1 qualquer vazamento de IP, mesmo que nenhuma conex\u00e3o ao PIA seja poss\u00edvel por qualquer motivo.<\/span><\/p>\n<p><span>Flush current iptables rules<\/span><\/p>\n<pre><code>sudo iptables -F<\/code><\/pre>\n<p><span>Adicione a seguinte regra, que bloquear\u00e1 o acesso do usu\u00e1rio da vpn \u00e0 Internet (exceto o dispositivo de loopback).\u00a0Observe que, se voc\u00ea configurou o Split Tunnel com um usu\u00e1rio diferente, em seguida, vpn, altere a\u00a0<\/span><span>vpn<\/span><span>\u00a0marcada em vermelho para o usu\u00e1rio que voc\u00ea usou.<\/span><\/p>\n<pre><code>sudo iptables -A OUTPUT ! -o lo -m owner --uid-owner vpn -j DROP<\/code><\/pre>\n<p><span>Agora instale o iptables-persistent para salvar esta regra \u00fanica que ser\u00e1 sempre aplicada no in\u00edcio de cada sistema.<\/span><\/p>\n<pre><code>sudo apt-get install iptables-persistent -y<\/code><\/pre>\n<p><span>Durante a instala\u00e7\u00e3o, o iptables-persistent solicitar\u00e1 que voc\u00ea salve as regras atuais do iptables\u00a0<\/span><code>\/etc\/iptables\/rules.v4<\/code><span>como visto na imagem, aceite isso com\u00a0<\/span><strong><span>YES<\/span><\/strong><\/p>\n<p><a class=\"gallery_colorbox cboxElement\" href=\"https:\/\/www.htpcguides.com\/wp-content\/uploads\/2016\/09\/iptables_persistent_split_tunnel-min.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-11362 size-full wp-bullet-lazy-loaded\" src=\"https:\/\/www.htpcguides.com\/wp-content\/uploads\/2016\/09\/iptables_persistent_split_tunnel-min.png\" sizes=\"auto, (max-width: 981px) 100vw, 981px\" srcset=\"https:\/\/www.htpcguides.com\/wp-content\/uploads\/2016\/09\/iptables_persistent_split_tunnel-min.png 981w, https:\/\/www.htpcguides.com\/wp-content\/uploads\/2016\/09\/iptables_persistent_split_tunnel-min-150x22.png 150w, https:\/\/www.htpcguides.com\/wp-content\/uploads\/2016\/09\/iptables_persistent_split_tunnel-min-400x58.png 400w, https:\/\/www.htpcguides.com\/wp-content\/uploads\/2016\/09\/iptables_persistent_split_tunnel-min-768x112.png 768w, https:\/\/www.htpcguides.com\/wp-content\/uploads\/2016\/09\/iptables_persistent_split_tunnel-min-600x87.png 600w, https:\/\/www.htpcguides.com\/wp-content\/uploads\/2016\/09\/iptables_persistent_split_tunnel-min-200x29.png 200w\" alt=\"iptables_persistent_split_tunnel-min\" width=\"981\" height=\"143\" data-src=\"https:\/\/www.htpcguides.com\/wp-content\/uploads\/2016\/09\/iptables_persistent_split_tunnel-min.png\" data-srcset=\"https:\/\/www.htpcguides.com\/wp-content\/uploads\/2016\/09\/iptables_persistent_split_tunnel-min.png 981w, https:\/\/www.htpcguides.com\/wp-content\/uploads\/2016\/09\/iptables_persistent_split_tunnel-min-150x22.png 150w, https:\/\/www.htpcguides.com\/wp-content\/uploads\/2016\/09\/iptables_persistent_split_tunnel-min-400x58.png 400w, https:\/\/www.htpcguides.com\/wp-content\/uploads\/2016\/09\/iptables_persistent_split_tunnel-min-768x112.png 768w, https:\/\/www.htpcguides.com\/wp-content\/uploads\/2016\/09\/iptables_persistent_split_tunnel-min-600x87.png 600w, https:\/\/www.htpcguides.com\/wp-content\/uploads\/2016\/09\/iptables_persistent_split_tunnel-min-200x29.png 200w\" \/><\/a><\/p>\n<p><span>Agora, quando o sistema \u00e9 iniciado, o usu\u00e1rio vpn n\u00e3o consegue acessar a Internet.\u00a0Se o servi\u00e7o OpenVPN for iniciado com \u00eaxito, essa regra ser\u00e1 limpa (somente at\u00e9 a pr\u00f3xima reinicializa\u00e7\u00e3o do sistema) e as regras do T\u00fanel de Divis\u00e3o ser\u00e3o aplicadas.<\/span><\/p>\n<h3><span>iptables Script para vpn User<\/span><\/h3>\n<p><span>O primeiro script marcar\u00e1 os pacotes para o usu\u00e1rio vpn, o segundo script cuidar\u00e1 do roteamento adequado.<\/span><\/p>\n<p><span>Crie o script iptables<\/span><\/p>\n<pre><code>sudo nano \/etc\/openvpn\/iptables.sh<\/code><\/pre>\n<p><span>Copie o seguinte no script iptables.sh e certifique-se de inserir a interface de rede e o IP local que identificamos e marcamos com vermelho e azul, respectivamente.<\/span><\/p>\n<p><span>Voc\u00ea pode ver os coment\u00e1rios de cada se\u00e7\u00e3o sobre a fun\u00e7\u00e3o da parte espec\u00edfica do script.\u00a0Se voc\u00ea estiver interessado em mais detalhes sobre o iptables, um bom ponto de partida \u00e9 a\u00a0<\/span><a href=\"https:\/\/help.ubuntu.com\/community\/IptablesHowTo\" target=\"_blank\" rel=\"noopener noreferrer\"><span>Documenta\u00e7\u00e3o Oficial do Ubuntu<\/span><\/a><span>\u00a0.<\/span><\/p>\n<p><span>Lembre-se, este script ir\u00e1 liberar suas regras existentes do iptables (incluindo o UFW), portanto, voc\u00ea precisa anexar suas pr\u00f3prias regras a este script se precisar de regras de firewall adicionais.<\/span><\/p>\n<pre><code>#! \/bin\/bash\r\n# Niftiest Software \u2013 www.niftiestsoftware.com\r\n# Modified version by HTPC Guides \u2013 www.htpcguides.com\r\n\r\nexport INTERFACE=\"tun0\"\r\nexport VPNUSER=\"vpn\"\r\nexport LOCALIP=\"192.168.1.110\"\r\nexport NETIF=\"eth0\"\r\n\r\n# flushes all the iptables rules, if you have other rules to use then add them into the script\r\niptables -F -t nat\r\niptables -F -t mangle\r\niptables -F -t filter\r\n\r\n# mark packets from $VPNUSER\r\niptables -t mangle -A OUTPUT -j CONNMARK --restore-mark\r\niptables -t mangle -A OUTPUT ! --dest $LOCALIP -m owner --uid-owner $VPNUSER -j MARK --set-mark 0x1\r\niptables -t mangle -A OUTPUT --dest $LOCALIP -p udp --dport 53 -m owner --uid-owner $VPNUSER -j MARK --set-mark 0x1\r\niptables -t mangle -A OUTPUT --dest $LOCALIP -p tcp --dport 53 -m owner --uid-owner $VPNUSER -j MARK --set-mark 0x1\r\niptables -t mangle -A OUTPUT ! --src $LOCALIP -j MARK --set-mark 0x1\r\niptables -t mangle -A OUTPUT -j CONNMARK --save-mark\r\n\r\n# allow responses\r\niptables -A INPUT -i $INTERFACE -m conntrack --ctstate ESTABLISHED -j ACCEPT\r\n\r\n# block everything incoming on $INTERFACE to prevent accidental exposing of ports\r\niptables -A INPUT -i $INTERFACE -j REJECT\r\n\r\n# let $VPNUSER access lo and $INTERFACE\r\niptables -A OUTPUT -o lo -m owner --uid-owner $VPNUSER -j ACCEPT\r\niptables -A OUTPUT -o $INTERFACE -m owner --uid-owner $VPNUSER -j ACCEPT\r\n\r\n# all packets on $INTERFACE needs to be masqueraded\r\niptables -t nat -A POSTROUTING -o $INTERFACE -j MASQUERADE\r\n\r\n# reject connections from predator IP going over $NETIF\r\niptables -A OUTPUT ! --src $LOCALIP -o $NETIF -j REJECT\r\n\r\n# Start routing script\r\n\/etc\/openvpn\/routing.sh\r\n\r\nexit 0\r\n<\/code><\/pre>\n<p><span>Pressione Ctrl + X, Y e Enter para salvar e sair.<\/span><\/p>\n<p><span>Fa\u00e7a o execut\u00e1vel do script iptables<\/span><\/p>\n<pre><code>sudo chmod +x \/etc\/openvpn\/iptables.sh<\/code><\/pre>\n<h3><span>Script de Regras de Roteamento para os Pacotes Marcados<\/span><\/h3>\n<p><span>Com as regras de roteamento, configuramos a rota para os pacotes que acabamos de marcar com o primeiro script.\u00a0Voc\u00ea pode ler mais sobre as tabelas de roteamento no seguinte\u00a0<\/span><a href=\"http:\/\/linux-ip.net\/html\/routing-tables.html\" target=\"_blank\" rel=\"noopener noreferrer\"><span>link<\/span><\/a><span>\u00a0.<\/span><\/p>\n<p><span>Crie o script de roteamento<\/span><\/p>\n<pre><code>sudo nano \/etc\/openvpn\/routing.sh<\/code><\/pre>\n<p><span>Cole o seguinte script que torna a rota padr\u00e3o ap\u00f3s a VPN a interface de loopback, efetivamente anulando o tr\u00e1fego se a conex\u00e3o VPN cair.<\/span><\/p>\n<pre><code>#! \/bin\/bash\r\n# Niftiest Software \u2013 www.niftiestsoftware.com\r\n# Modified version by HTPC Guides \u2013 www.htpcguides.com\r\n\r\nVPNIF=\"tun0\"\r\nVPNUSER=\"vpn\"\r\nGATEWAYIP=$(ifconfig $VPNIF | egrep -o '([0-9]{1,3}\\.){3}[0-9]{1,3}' | egrep -v '255|(127\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3})' | tail -n1)\r\nif [[ `ip rule list | grep -c 0x1` == 0 ]]; then\r\nip rule add from all fwmark 0x1 lookup $VPNUSER\r\nfi\r\nip route replace default via $GATEWAYIP table $VPNUSER\r\nip route append default via 127.0.0.1 dev lo table $VPNUSER\r\nip route flush cache\r\n\r\n# run update-resolv-conf script to set VPN DNS\r\n\/etc\/openvpn\/update-resolv-conf\r\n\r\nexit 0\r\n<\/code><\/pre>\n<p><span>Pressione Ctrl + X, Y e Enter para salvar e sair.<\/span><\/p>\n<p><span>Finalmente, torne o script execut\u00e1vel<\/span><\/p>\n<pre><code>sudo chmod +x \/etc\/openvpn\/routing.sh<\/code><\/pre>\n<h3><span>Configurar roteamento VPN de t\u00fanel dividido<\/span><\/h3>\n<p><span>Vamos precisar de uma tabela de roteamento adicionando o nome da tabela ao arquivo rt_tables (no nosso caso \u00e9 vpn).\u00a0Abra rt_tables<\/span><\/p>\n<pre><code>sudo nano \/etc\/iproute2\/rt_tables<\/code><\/pre>\n<p><span>Adicione a tabela de usu\u00e1rios vpn na parte inferior do arquivo<\/span><\/p>\n<pre><code>200     vpn<\/code><\/pre>\n<p><span>Deve ser semelhante a isto:<\/span><\/p>\n<pre><code>#\r\n# reserved values\r\n#\r\n255     local\r\n254     main\r\n253     default\r\n0       unspec\r\n#\r\n# local\r\n#\r\n#1      inr.ruhep\r\n200     vpn<\/code><\/pre>\n<p><span>Pressione Ctrl + X, Y e Enter para salvar e sair.<\/span><\/p>\n<h3><span>Alterar filtragem de caminho inverso<\/span><\/h3>\n<p><span>Por fim, precisamos alterar o n\u00edvel padr\u00e3o de filtragem de caminho reverso para garantir que o kernel direcione o tr\u00e1fego corretamente.\u00a0Por padr\u00e3o, ele \u00e9 configurado para o valor 1, que \u00e9 \u201cmodo estrito\u201d.\u00a0N\u00e3o \u00e9 necess\u00e1rio desabilitar completamente o filtro de caminho reverso (ajuste para \u201c0\u201d), mas precisamos ajust\u00e1-lo para o n\u00edvel 2, \u201cmodo solto\u201d.<\/span><\/p>\n<p><span>Crie um arquivo de filtro de caminho reverso para o usu\u00e1rio vpn<\/span><\/p>\n<pre><code>sudo nano \/etc\/sysctl.d\/9999-vpn.conf<\/code><\/pre>\n<p><span>Copie o seguinte, certifique-se de usar o nome correto da interface de rede na terceira linha marcada com vermelho (lembre-se do comando ip route list de antes e da sa\u00edda, no nosso caso foi\u00a0<\/span><code>eth0<\/code><span>)<\/span><\/p>\n<pre><code>net.ipv4.conf.all.rp_filter = 2\r\nnet.ipv4.conf.default.rp_filter = 2\r\nnet.ipv4.conf.eth0.rp_filter = 2<\/code><\/pre>\n<p><span>Pressione Ctrl + X, Y e Enter para salvar e sair.<\/span><\/p>\n<p><span>Para aplicar as novas regras sysctl, execute:<\/span><\/p>\n<pre><code>sudo sysctl --system<\/code><\/pre>\n<h2><span>Testando o t\u00fanel de divis\u00e3o da VPN<\/span><\/h2>\n<p><span>Eu recomendo uma reinicializa\u00e7\u00e3o do sistema, e se tudo foi configurado corretamente, voc\u00ea deve ter um servi\u00e7o OpenVPN em execu\u00e7\u00e3o habilitado para o usu\u00e1rio vpn e todos os outros usu\u00e1rios em seu servidor devem ter acesso direto \u00e0 Internet.\u00a0Agora vamos verificar se tudo est\u00e1 correto.<\/span><\/p>\n<h3><span>Teste o servi\u00e7o OpenVPN<\/span><\/h3>\n<p><span>Entre como seu usu\u00e1rio regular atrav\u00e9s do SSH, e verifique o status do servi\u00e7o OpenVPN<\/span><\/p>\n<pre><code>sudo systemctl status openvpn@openvpn.service<\/code><\/pre>\n<p><span>Isso deve retornar algo assim<\/span><\/p>\n<pre><code>openvpn@openvpn.service - OpenVPN connection to client\r\n Loaded: loaded (\/etc\/systemd\/system\/openvpn@openvpn.service; enabled; vendor preset: enabled)\r\n Active: active (running) since Mon 2016-09-05 11:25:18 CEST; 1 day 4h ago\r\n Docs: man:openvpn(8)\r\n https:\/\/community.openvpn.net\/openvpn\/wiki\/Openvpn23ManPage\r\n https:\/\/community.openvpn.net\/openvpn\/wiki\/HOWTO\r\n Process: 3223 ExecStart=\/usr\/sbin\/openvpn --daemon ovpn-%i --status \/run\/openvpn\/%i.status 10 --cd \/etc\/openvpn\r\n Main PID: 3266 (openvpn)\r\n CGroup: \/system.slice\/system-openvpn.slice\/openvpn@openvpn.service\r\n \u2514\u25003266 \/usr\/sbin\/openvpn --daemon ovpn-client --status \/run\/openvpn\/client.status 10 --cd \/etc\/openvpn\r\n\r\nSep 05 11:25:21 server ovpn-client[3266]: OPTIONS IMPORT: route options modified\r\nSep 05 11:25:21 server ovpn-client[3266]: OPTIONS IMPORT: --ip-win32 and\/or --dhcp-option options modified<\/code><\/pre>\n<p><span>O Systemd fornece uma vis\u00e3o geral muito boa sobre o estado do servi\u00e7o.\u00a0No exemplo acima, voc\u00ea pode ver que o servi\u00e7o est\u00e1 ativo (em execu\u00e7\u00e3o), exatamente como precisamos.<\/span><\/p>\n<p><span>Se o servi\u00e7o n\u00e3o estiver em execu\u00e7\u00e3o, voc\u00ea poder\u00e1 verificar se h\u00e1 um log do erro\u00a0<\/span><code>\/var\/log\/syslog<\/code><span>\u00a0.\u00a0Para solucionar problemas, voc\u00ea pode definir o detalhamento de sa\u00edda no arquivo openvpn.conf para um n\u00edvel superior.\u00a0Defina-o como 3 e verifique o syslog novamente.\u00a0Voc\u00ea sempre pode pedir ajuda na\u00a0<\/span><span>se\u00e7\u00e3o<\/span><span>\u00a0do\u00a0f\u00f3rum\u00a0.\u00a0Lembre-se de definir o n\u00edvel de verbosidade de volta para 1 se voc\u00ea n\u00e3o precisar mais de logs detalhados.<\/span><\/p>\n<h3><span>Verifique o endere\u00e7o IP<\/span><\/h3>\n<p><span>Usando a sess\u00e3o SSH para o usu\u00e1rio regular, verifique o endere\u00e7o IP<\/span><\/p>\n<pre><code>curl ipinfo.io<\/code><\/pre>\n<p><span>Ele retornar\u00e1 seu IP e, dependendo da quantidade de informa\u00e7\u00e3o fornecida, o pa\u00eds dever\u00e1 ser listado em cada caso.\u00a0Obviamente, deve ser o seu ISP agora e sua localiza\u00e7\u00e3o.<\/span><\/p>\n<p><span>Agora verifique o endere\u00e7o IP do usu\u00e1rio vpn com<\/span><\/p>\n<pre><code>sudo -u vpn -i -- curl ipinfo.io<\/code><\/pre>\n<p><span>Se tudo correu bem, deve retornar o endere\u00e7o IP e o pa\u00eds do servidor VPN selecionado.\u00a0Se voc\u00ea usou o servidor da Su\u00e9cia, o pa\u00eds deve ser &#8220;SE&#8221;.\u00a0\u00c9 muito importante que o endere\u00e7o IP para o usu\u00e1rio vpn seja diferente do IP do seu usu\u00e1rio regular.<\/span><\/p>\n<p><span>No meu caso para o usu\u00e1rio vpn e usando o servidor da Su\u00e9cia PIA eu tenho a seguinte sa\u00edda<\/span><\/p>\n<pre><code>{\r\n  \"ip\": \"X.XXX.XXX.XX\",\r\n  \"hostname\": \"No Hostname\",\r\n  \"city\": \"\",\r\n  \"region\": \"\",\r\n  \"country\": \"SE\",\r\n  \"loc\": \"59.3294,18.0686\",\r\n  \"org\": \"AS57858 Inter Connects Inc\"<\/code><\/pre>\n<p><span>Obviamente, a parte \u201cx.xxx.xxx.xx\u201d \u00e9 o meu endere\u00e7o IP da VPN atribu\u00eddo, que \u00e9 diferente do meu IP p\u00fablico, e voc\u00ea pode ver o pa\u00eds como SE, que \u00e9 a Su\u00e9cia.<\/span><\/p>\n<h3><span>Verifique o servidor DNS<\/span><\/h3>\n<p><span>Finalmente, verifique se o DNS para VPN est\u00e1 configurado corretamente, digite<\/span><\/p>\n<pre><code>sudo -u vpn -i -- cat \/etc\/resolv.conf<\/code><\/pre>\n<p><span>A sa\u00edda deve ser<\/span><\/p>\n<pre><code># Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)\r\n# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN\r\nnameserver 209.222.18.222\r\nnameserver 209.222.18.218\r\nnameserver 8.8.8.8<\/code><\/pre>\n<p><span>Se voc\u00ea vir os servidores DNS acima, seu DNS para VPN est\u00e1 configurado corretamente.<\/span><\/p>\n<h3><span>ATUALIZA\u00c7\u00c3O (15 de julho de 2019): como configurar com IP est\u00e1tico<\/span><\/h3>\n<p><span>Muitos usu\u00e1rios relataram problemas ao usar o Split Tunnel ao usar o IP est\u00e1tico configurado no Ubuntu Server 16.04 ou no Debian 8. Fiz alguns testes e, para sistemas IP est\u00e1ticos, eu recomendaria usar a seguinte configura\u00e7\u00e3o.<\/span><\/p>\n<p><span>Uma nota sobre IP est\u00e1tico e esta atualiza\u00e7\u00e3o \u00e9 necess\u00e1ria para sua configura\u00e7\u00e3o: por IP est\u00e1tico quero dizer se a instala\u00e7\u00e3o do Ubuntu Server ou Debian est\u00e1 configurada com IP est\u00e1tico em interfaces de rede (como alguns dos provedores VPS), e N\u00c3O que voc\u00ea tenha definido um IP est\u00e1tico do seu roteador para o seu servidor!\u00a0O \u00faltimo \u00e9 chamado de\u00a0<em>reserva DHCP<\/em>\u00a0ou\u00a0<\/span><em><span>DHCP est\u00e1tica<\/span><\/em><span>\u00a0, quando o servidor est\u00e1 configurado como DHCP;\u00a0seu roteador sempre atribui o mesmo endere\u00e7o IP a um computador espec\u00edfico em sua LAN (simplesmente: a fun\u00e7\u00e3o DHCP do roteador atribui o IP est\u00e1tico ao endere\u00e7o MAC exclusivo da NIC do servidor).\u00a0Se voc\u00ea estiver usando uma reserva DHCP ou DHCP est\u00e1tica, dever\u00e1 concluir as etapas do guia e n\u00e3o usar a solu\u00e7\u00e3o alternativa abaixo.<\/span><\/p>\n<p><span>Se voc\u00ea precisar inserir IP, Netmask e Gateway em seu servidor, precisar\u00e1 usar esse m\u00e9todo descrito nesta se\u00e7\u00e3o.\u00a0A principal diferen\u00e7a em rela\u00e7\u00e3o ao m\u00e9todo descrito no guia \u00e9 que n\u00e3o usaremos\u00a0<\/span><code>update-resolv-conf<\/code><span>para DNS, mas configuramos os dois servidores DNS prim\u00e1rios do PIA, e o terceiro servidor DNS do Google nas interfaces de rede.\u00a0Proceda da seguinte forma:<\/span><\/p>\n<p><span>Editar\u00a0<\/span><code>openvpn.conf<\/code><span>para remover\u00a0<\/span><code>update-resolv-conf<\/code><span>da chamada<\/span><\/p>\n<pre><code>sudo nano \/etc\/openvpn\/openvpn.conf<\/code><\/pre>\n<p><span>Localize a linha\u00a0\u00a0<\/span><code>down \/etc\/openvpn\/update-resolv-conf<\/code><span>e desative esta linha colocando um\u00a0<\/span><code>#<\/code><span>no in\u00edcio.\u00a0Deve ficar assim:<\/span><\/p>\n<pre><code># down \/etc\/openvpn\/update-resolv-conf<\/code><\/pre>\n<p><span>Pressione Ctrl + X, Y e Enter para salvar e sair.<\/span><\/p>\n<p><span>Pr\u00f3ximo\u00a0<\/span><code>routing.sh<\/code><span>script de\u00a0edi\u00e7\u00e3o\u00a0, onde desabilitaremos a chamada para<\/span><code>update-resolv-conf<\/code><\/p>\n<pre><code>sudo nano \/etc\/openvpn\/routing.sh<\/code><\/pre>\n<p><span>Localize a linha (deve estar no final do script):\u00a0<\/span><code>\/etc\/openvpn\/update-resolv-conf<\/code><span>e coloque um\u00a0<\/span><code>#<\/code><span>no in\u00edcio da linha.\u00a0Deve ficar assim:<\/span><\/p>\n<pre><code># run update-resolv-conf script to set VPN DNS\r\n# \/etc\/openvpn\/update-resolv-conf<\/code><\/pre>\n<p><span>Pressione Ctrl + X, Y e Enter para salvar e sair.<\/span><\/p>\n<p><span>Voc\u00ea pode deixar de fora a se\u00e7\u00e3o\u00a0<\/span><strong><span>Configurar servidores DNS de VPN para interromper o DNS<\/span><\/strong><span>\u00a0, se voc\u00ea ainda n\u00e3o tiver conclu\u00eddo.\u00a0Se sim, n\u00e3o h\u00e1 problema, pois n\u00e3o usaremos\u00a0<\/span><code>update-resolv-conf<\/code><span>nada, apenas desativamos a chamada do script.<\/span><\/p>\n<h3><span>Configurar IP est\u00e1tico para o seu servidor<\/span><\/h3>\n<p><span>Esta parte \u00e9 realmente algo que voc\u00ea j\u00e1 deveria ter configurado quando instalou seu servidor, j\u00e1 que voc\u00ea precisa configurar o endere\u00e7o IP, a m\u00e1scara de rede e o gateway aqui.\u00a0Por favor, use as instru\u00e7\u00f5es do seu provedor de VPS ou ISP sobre como fazer isso (se n\u00e3o for feito automaticamente para voc\u00ea, como acontece com muitos VPS).<\/span><\/p>\n<p><span>O que precisamos fazer aqui \u00e9 adicionar uma entrada DNS para garantir que o sistema esteja usando os servidores DNS PIA e o terceiro servidor do Google.\u00a0Lembre-se, \u00e9 muito importante usar um servidor DNS em que voc\u00ea confia, e eu sugiro n\u00e3o usar os servidores DNS do seu ISP.<\/span><\/p>\n<p><span>Editar interfaces<\/span><\/p>\n<pre><code>sudo nano\u00a0\/etc\/network\/interfaces<\/code><\/pre>\n<p><span>Voc\u00ea deve ver algo como este, onde\u00a0<\/span><code>address<\/code><span>,\u00a0<\/span><code>netmask<\/code><span>e\u00a0<\/span><code>gateway<\/code><span>j\u00e1 deve estar preenchido.<\/span><\/p>\n<pre><code># Loopback device:\r\nauto lo\r\niface lo inet loopback\r\niface lo inet6 loopback\r\n\r\n# device: eth0\r\nauto  eth0\r\niface eth0 inet static\r\n address   5.X.XXX.XXX \r\n netmask   255.255.255.224\r\n gateway   5.X.XXX.XXX <\/code><\/pre>\n<p><span>Aqui voc\u00ea precisa adicionar a linha do servidor DNS ap\u00f3s a entrada do gateway, deve ficar assim (n\u00e3o mude mais nada).\u00a0Lembre-se, voc\u00ea pode usar outros servidores DNS, mas certifique-se de usar um que voc\u00ea confia.<\/span><\/p>\n<pre><code># Loopback device:\r\nauto lo\r\niface lo inet loopback\r\niface lo inet6 loopback\r\n\r\n# device: eth0\r\nauto  eth0\r\niface eth0 inet static\r\n address   5.X.XXX.XXX \r\n netmask   255.255.255.224\r\n gateway   5.X.XXX.XXX\r\n dns-nameservers 209.222.18.222 209.222.18.218 8.8.8.8<\/code><\/pre>\n<p><span>Pressione Ctrl + X, Y e Enter para salvar e sair.<\/span><\/p>\n<p><span>\u00c9 isso a\u00ed, agora reinicie o sistema e o Split Tunnel deve funcionar com a resolu\u00e7\u00e3o de nomes DNS usando servidores DNS seguros.<\/span><\/p>\n<h2><span>Conclus\u00e3o<\/span><\/h2>\n<p><span>Parab\u00e9ns, agora voc\u00ea configurou seu Ubuntu Server 16.04 LTS ou Debian 8 para VPN com Split Tunneling.\u00a0<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>N\u00f3s mostramos a voc\u00ea como configurar o\u00a0Split Tunnel da VPN no Ubuntu Server 14.04 LTS\u00a0, agora trazemos a pr\u00f3xima seq\u00fc\u00eancia nos guias do t\u00fanel dividido: o guia VPN Split Tunnel para sistemas systemd como o Debian 8 e o Ubuntu 16.04.\u00a0Neste guia, mostraremos como configurar o Split Tunnel no\u00a0Ubuntu Server 16.04 LTS\u00a0, Debian 8,\u00a0\u00a0Minibian\u00a0\u00a0e Raspbian [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1082,1,730,830,79,42,51,495,68,271,1389,548,512],"tags":[1280,877,1398,965,1363,1399,1400,164],"class_list":["post-4751","post","type-post","status-publish","format-standard","hentry","category-centos-7-rhel-7","category-viazap","category-clusterweb","category-debian","category-firewall","category-leitura-recomendada","category-linux-linuxrs","category-profissional-de-ti","category-redes-2","category-seguranca-2","category-torrent","category-ubuntu-2","category-vpn-2","tag-atraves","tag-da","tag-forcar","tag-split","tag-torrent","tag-trafego","tag-tunnel","tag-vpn"],"_links":{"self":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/4751","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4751"}],"version-history":[{"count":1,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/4751\/revisions"}],"predecessor-version":[{"id":4752,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/4751\/revisions\/4752"}],"wp:attachment":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4751"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4751"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4751"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}