Como usar o OpenVPN através de um firewall restritivo?

13

Atualmente estou na situação de tentar configurar o OpenVPN em um VPS pessoal, para conexão principalmente através de um firewall excessivamente restritivo. Todas as configurações mencionadas abaixo funcionam quando usadas através de uma conexão razoavelmente protegida por firewall.

Eu tentei:

  1. OpenVPN em execução na porta padrão
  2. OpenVPN em execução na porta 443 (inicio o OpenVPN manualmente a partir da linha de comando no VPS e vejo que o servidor informa que a conexão está sendo fechada quase imediatamente, presumo que seja resultado de DPI no firewall)
  3. O STUNnel é executado na porta 443 para acessar o OpenVPN e escapar do DPI. Este é o mais bem sucedido e permite uma conexão e acesso à Internet através da VPN por ~ 10-20 segundos, antes que a conexão seja forçosamente fechada.

Existe mais alguma coisa que eu possa tentar?

    
por R.L. Stine 25.09.2012 / 22:24

4 respostas

9

As conexões cortadas após um período de tempo, às vezes, indicam um limite de bytes por segundo. Tente ver se a lentidão da sua conexão VPN funciona. Além disso, se você tiver o OpenVPN configurado para UDP, tente TCP (443 UDP pode ser bloqueado, enquanto 443 TCP pode passar despercebido).

Visite um site bem conhecido que use SSL e verifique o certificado. Então faça o mesmo em casa. Se eles não corresponderem, a sua localização está usando um proxy SSL HTTPS transparente e pode realmente ver seu tráfego HTTPS.

É possível que algo que não seja a porta 443 não seja visto tão de perto. Tente 22.

Pode parecer estúpido, mas tente fazê-lo pela porta 80 e veja o que você obtém. Você também pode tentar configurar um túnel HTTP entre você e o VPS para fazer com que o tráfego pareça com solicitações HTTP.

Se você está se sentindo insano, tente iodo .

    
por 22.03.2013 / 22:53
4

Eu acho que sei por que o método stunnel se comporta assim. É porque você net para definir uma "rota estática" para stunnel server. Deixe-me explicar isso. Quando você se conecta a um servidor openvpn, ele altera sua tabela de roteamento e rotear todos os seus pacotes através da VPN, exceto os pacotes openvpn. Realmente openvpn irá adicionar uma rota para o endereço IP do seu servidor. Mas quando você usa stunnel para se conectar ao seu servidor openvpn, você conecta o openvpn a uma interface de loopback e não há nenhuma rota para o seu servidor fora do seu vpn, então pacotes stunnel querem ir para o servidor e eles vão para o seu vpn e seus pacotes vpn para stunnel:)

Então você precisa adicionar uma rota ao seu servidor ip que vai para fora do seu vpn (seu roteador doméstico).

E por problema com a porta 443 do método eu vou dizer que talvez o seu firewall usando SPI ou DPI e o possa facilmente fazer pacotes openvpn diferentes a partir de pacotes https (ssl). Portanto, a melhor maneira é usar o stunnel, ou se o firewall bloquear os pacotes ssl, é melhor usar o obfsproxy ou o fteproxy para contorná-lo.

(Eu sei que o post é antigo, mas eu estava procurando respostas sobre o mesmo problema por semanas, então eu queria compartilhar o que eu sei sobre isso)

    
por 01.09.2015 / 13:43
3

A resposta de Reza Askari foi exatamente a resposta para a terceira questão. Isso vem acontecendo no meu computador com Linux e no Android.

No computador, antes de se conectar ao OpenVPN através de

sudo openvpn --config configFile.ovpn

Você deve adicionar uma regra para remover o servidor stunnel do túnel OpenVPN.

sudo /sbin/ip route add stunnel_ip via default_gateway_ip

Em seguida, conecte-se ao seu servidor OpenVPN. Quando terminar, você pode remover essa regra:

sudo /sbin/ip route del stunnel_ip

Para facilitar as coisas para que você não esqueça, crie um script de shell que adicione a regra e execute o OpenVPN, quando o OpenVPN sair, a regra será excluída:

sudo /sbin/ip route add stunnel_ip via default_gateway_ip

sudo openvpn --config configFile.ovpn

sudo /sbin/ip route del stunnel_ip

No Android, use o cliente "OpenVPN for Android" por "Arne Schwabe" e "SSLDroid" por "Balint Kovacs".

Em seguida, no cliente OpenVPN, exclua "SSLDroid" do perfil de VPN que passa pelo stunnel.

Eu adoraria rever a resposta ou comentar de Reza, mas essa regra de pontuação de reputação me impediu.

    
por 22.08.2016 / 02:17
1

Eu nunca tentei (por isso deixe-me saber se funciona!), mas dê uma chance @ usando o tunelamento ssh em 443 e execute o seu OpenVPN através do túnel. Você pode precisar de um host remoto extra para escutar 443 se você não tiver um, mas há um exemplo aqui link para usando seu serviço de proxy [Nota do editor: este link Wayback Machine pode ser mais seguro], mas isso também é Googlable:

link .

Também sei que as pessoas usam essa abordagem como proxy porque o empregador bloqueou o acesso a sites de emprego, como o dice.com, quando eram populares.

    
por 16.01.2013 / 16:55