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.
Physical Ethernet
son 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
La interfaz Physical Ethernet
y Physical Ethernet 0
es pálida. El Physical Ethernet 1
es 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 1
y Virtuel Ethernet
, supongo que Physical Ethernet 1
tiene el nombre eth0 y el Virtuel Ethernet
nombre 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/