Me he encontrado con un poco de rompecabezas y no he tenido mucha suerte en encontrar una solución. En este momento estoy (lamentablemente) conectado a la red a través de Verizon 3G. Filtran todo el tráfico entrante, por lo que me es imposible abrir puertos para aceptar conexiones.
Actualmente tengo una máquina virtual Linux en linode.com, y se me ocurrió la idea de instalar pptpd
e intentar hacer un iptables
reenvío de puertos. He pptpd
instalado y mi máquina doméstica se conecta felizmente. Dicho esto, aquí hay información general:
Servidor (Debian) IP WAN: xxxx en eth0 - pptpd IP: aaa1 en ppp0 - Cliente VPN IP: aaa100
Para verificar que no me estaba volviendo loco, intenté algunas conexiones desde el servidor a los puertos abiertos del cliente, y el cliente acepta las conexiones a través de la VPN IP.
Lo que quiero lograr es esto:
Internet -> WAN IP: Puerto -> Reenviar al cliente VPN IP: Puerto
Entonces, por ejemplo, si tuviera el puerto 6000 abierto en mi cliente, una persona podría hacer telnet en xxxx: 6000, y el servidor lo detectaría y lo reenviaría a 192.168.3.100:6000.
He probado al menos 20 iptables
configuraciones diferentes de Google y ninguna ha funcionado todavía. ¿Alguien tiene alguna idea, o tal vez incluso un enfoque totalmente diferente que no conozco? El objetivo aquí es escuchar a través de una conexión horriblemente cortafuegos, preferiblemente tráfico TCP y UDP.
fuente
iptables-save
para mostrar mis reglas de iptables, aunque el resultado no está destinado al consumo humano, todavía es legible y muestra todas sus reglas de iptables). No, desafortunadamente no puede usar "all" allí, porque--dport
solo funciona con protocolos que realmente tienen puertos ("todos" incluirían, por ejemplo, ICMP, que no tiene noción de puertos). Necesitará reglas separadas para TCP y UDP.También tuve este problema e intenté resolverlo durante horas. Aquí está mi solución:
VPNClient
con lo mismoIPAddress
. Así que les di a cada uno una estáticaIPAddress
http://www.yougetsignal.com/tools/open-ports/ y http://canyouseeme.org/ no detectaron correctamente los puertos. Además, tuve que iniciar mi aplicación en el cliente, para que los sitios web pudieran ver estos puertos.
No hay necesidad de
SNAT
reglas adicionales . Solo se necesitaban estas reglas:fuente
La mayoría de los servidores tienen el reenvío de IP deshabilitado en la configuración predeterminada. Debe habilitarlo si desea redirigir las conexiones entrantes a través de su VPN.
Prueba esto:
Me refiero además de la configuración de iptables.
fuente
Lo que desea lograr es (probablemente) muy posible con
pptpd
OpenVPN e iptables, sin embargo, es posible que encuentre un mejor candidato para este caso de uso. Acabo de leer esto, que describe cómo configurar tinc exactamente para este caso de uso. Es una alternativa (potencialmente más simple) a la partepptdp
o OpenVPN. Entonces necesitarías exactamente las mismas reglas para iptables.fuente