Como encaminhar apenas determinados pedidos de http / s através de VPN

1

Estou tentando criar um serviço VPN capaz de filtrar apenas determinados tráfegos da Web HTTP / S por meio da VPN, e outro tráfego que não corresponda a meu critério de filtro dinâmico deve ser enviado por meio do gateway padrão.

Se eu usar o OpenVPN, posso rotear o tráfego (Camada 2 e 3) de determinados IPs através da VPN e outros através do gateway padrão. Mas eu preciso filtrar o tráfego de forma semelhante a como um proxy HTTP funciona. Na verdade, estou tentando criar meu próprio Web Proxy Server , mas que funciona em um nível de sistema, e não no nível do navegador. Portanto, mesmo que os usuários criem seu próprio cliente de navegador e tentem acessar determinadas URLs, esse tráfego pode ser roteado pela VPN. Assim, por que pensei em criar uma VPN capaz de capturar todo o tráfego originado no host, em vez de um simples proxy HTTP. Mas agora o problema está em como eu posso filtrar apenas o tráfego que eu preciso para ser enviado através da VPN, verificando as solicitações HTTP GET / POST. Como para isso, a VPN precisa acessar os dados da Camada de Aplicação, em vez da Camada 2 ou Camada 3.

Portanto, se eu resumir minha exigência, estou tentando desenvolver meu próprio híbrido entre o dispositivo proxy da Web + VPN (TUN / TAP) .

  1. Esta aplicação / serviço que o usuário instala em sua máquina deve ser capaz de interceptar todo o tráfego proveniente do host.
  2. Ele deve ser capaz de verificar as solicitações HTTP / HTTPS feitas em qualquer navegador ou cliente personalizado e somente quando essas solicitações corresponderem a determinados nomes de URL (ou seja, www.facebook.com/*, www.linkedin.com/*, *. js, * .swf), esse tráfego será roteado através da VPN.
  3. Se as solicitações não atenderem às condições correspondentes, elas serão enviadas pelo gateway da Internet padrão do usuário.
  4. As condições de correspondência de URL podem ser muitas e alteradas a qualquer momento, por isso não são codificadas.

Quaisquer boas dicas (código, documentação para plugins do OpenVPN que eu possa escrever, etc) sobre como eu posso conseguir isso, ou conselhos Se eu estou tentando fazer isso de uma maneira errada são muito apreciados.

    
por Neo 28.08.2015 / 19:20

0 respostas