Mi ISP bloqueó un grupo de redes a las que necesito acceder. Instalé VPS (unix box) fuera de la red de mi ISP y ahora puedo crear una VPN entre el enrutador de mi casa y el VPS, pero quiero ocultarlo de mi ISP.
Aquí hay varios enfoques y sus debilidades, ¿podría revisar mis pensamientos?
VPNs que funcionan sobre IP. Sus protocolos son fáciles de detectar (es necesario verificar el campo "protocolo" en el encabezado de IP), aunque mi ISP no podrá descifrar los datos, sabrá con seguridad que estoy usando VPN.
- PPTP: utiliza GRE
- IPSec: utiliza el encabezado ESP
Parece que necesito una VPN de nivel de aplicación que funcione a través de TCP y use un puerto conocido para parecerse al tráfico válido. Conozco 2 de ellos:
-
OpenVPN: basado en TLS, por lo que puedo usar el modo TCP y el puerto 443 y hacer que mi ISP crea que estoy usando HTTPS. Pero mi ISP puede intentar abrir un sitio web y descubrir rápidamente que no es un sitio web en realidad. Para luchar contra eso, puedo usar destination nat en VPS para cambiar el destino. puerto para cualquier IP, excepto el mío y lanzar el servidor web en este puerto. Por lo tanto, cualquier acceso a MY_VPS: 443 desde cualquier lugar se verá como un sitio web normal. Pero para mi actuará como VPN. Veo un problema aquí: mantener la conexión permanente con el sitio web puede ser sospechoso para mi ISP. Puedo crear un sitio web que use websockets, cometas o alguna otra tecnología para mantener la conexión permanente (por ejemplo, para el webchat) y decirle a mi ISP que esta es la razón por la que tengo una conexión permanente.
-
Túnel SSH. No necesito DNAT nada aquí: mi ISP se conecta a OpenSSH que se ejecuta en mi VPS y ve el mensaje "login:" que es absolutamente legal. Puedo decir que estoy sentado en mi caja remota a través de SSH todo el tiempo. :) Sin embargo, los patrones de tráfico difieren mucho para SSH basado en caracteres (cuando simplemente escribo comandos) y para usarlo como VPN cuando descargo archivos grandes (archivos pequeños). Solicitud HTTP seguida de una gran respuesta HTTP). Mi ISP puede usar esta información. Puedo intentar decir que estoy descargando copias de seguridad de mi servidor a través de SCP o SFTP. También puedo decir que estoy ejecutando el cliente X11 allí (reenvío ssh X11) pero podría tratarse como una clase de VPN. Los patrones también podrían ser un problema para OpenVPN, pero puedo decir que mi sitio web tiene muchos datos para descargar.
¿Cuál es mejor? ¿Es posible que mi ISP use algún DPI para encontrar que estoy usando la conexión como VPN?