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) .
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.