¿Cómo reenvío un puerto entrante a un servidor VPN a un cliente en el cliente VPN?

¿Cómo reenvío un puerto entrante a un servidor VPN a un cliente en el cliente VPN?

Aquí está la configuración básica de lo que estoy tratando de hacer:

Cliente (cualquier máquina) ---> Cliente VPN (Raspberry Pi) ---> Servidor OpenVPN ---> Internet

Es posible que el cliente VPN (Rpi) esté utilizando una red que no es de confianza, pero en este caso, me gustaría reenviar todo el tráfico de Internet en el puerto 4443 al cliente para que responda.

Todo lo demás funciona correctamente: el cliente se conecta al pi y parece ser parte de la VPN que he creado con éxito, pero no puedo determinar la ruta de regreso de ninguna manera.

¡Gracias!

Respuesta1

Me falta información para poder responder específicamente a tu pregunta, pero intentaré aclarar algunas cosas para ayudarte más.

[...] Me gustaría reenviar todo el tráfico de Internet en el puerto 4443 al cliente para que el cliente responda.

No se pueden reenviar otros datos a un puerto que no tenga un servicio adecuado para los datos.

VPN funciona creando una red virtual, que incluye interfaces de red virtuales. Para que la interfaz de red virtual funcione, debe estar ejecutándose un software VPN (cliente o servidor). Cuando el software VPN recibe datos/paquetes desde la interfaz de red virtual, los datos se reempaquetan y tradicionalmente se cifran y luego se transfieren mediante la red física, y viceversa cuando se reciben los datos.

VPN funciona creando una red virtual Physical Ethernetson interfaces pálidas.

Debido a las características de VPN, tienes dos redes. Un físico y un virtual con cada uno su dirección ip. Con estas redes puedes hacer todas las cosas comunes que puedes hacer con una red.

Cliente (cualquier máquina) ---> Cliente VPN (Raspberry Pi) ---> Servidor OpenVPN ---> Internet

vpn La interfaz Physical Ethernety Physical Ethernet 0es pálida. El Physical Ethernet 1es conectarse con el Client (machine).

Supongo que estás usando un cable Ethernet para conectarte Client (machine)y VPN Client (Raspberry Pi)tienes iptables en la Raspberry Pi...

Para configurar el reenvío NAT entre las dos redes Physical Ethernet 1y Virtuel Ethernet, supongo que Physical Ethernet 1tiene el nombre eth0 y el Virtuel Ethernetnombre tun0.

# Set default policies
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

# NAT
iptables -A POSTROUTING -o tun0 -j MASQUERADE # Enable NAT

# Forwarding
iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT # Allow forwarding from client to vpn
iptables -A FORWARD -i eth0 -o eth0 -j ACCEPT # Allow forwarding from client to client
iptables -A FORWARD -i tun0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT # Allow forwarding from vpn to client, for already established connections

Ver tambiénCómo configurar un enrutador simple con iptables en Ubuntu

No sé qué sistema operativo utilizas en la máquina con el servidor VPN. Por lo tanto, no puedo entrar en detalles sobre cómo reenviar NAT...

Respuesta2

¡De hecho lo descubrí!

Escribí una publicación completa sobre cómo hacer esto.https://virtualprivatepi.com/diy/

información relacionada