¿Cómo reenviar el puerto tun0 a la dirección local a través de eth0?

¿Cómo reenviar el puerto tun0 a la dirección local a través de eth0?

IPTABLES

Yo 10.8.0.7 Debian

Servidor Linux cent8 eth0 192.168.88.11 tun0 10.8.0.6

¿Cómo conectar el reenvío de puertos 10.8.0.6:8888 a la máquina local 192.168.88.10:443?

Habilitar reenvío

echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
sudo sysctl -w net.ipv4.ip_forward=1
echo '1' | sudo tee /proc/sys/net/ipv4/conf/eth0/forwarding ;
echo '1' | sudo tee /proc/sys/net/ipv4/conf/tun0/forwarding
sudo iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT

# forward 10.8.0.6:8888 to local 192.168.88.10:443 
sudo iptables -t nat -A PREROUTING -p tcp -d 10.8.0.6 --dport 8888-j DNAT --to-destination 192.168.88.10:443
#  return
sudo iptables -t nat -A POSTROUTING -p tcp --dst 192.168.88.10 -j SNAT --to-source 10.8.0.6:8888

# remove
sudo iptables -t nat -D PREROUTING 2
sudo iptables -t nat -D POSTROUTING 2

¿Qué es eso que no funciona?

Respuesta1

Si necesita reenviar solo un puerto, no activaría el reenvío de IP en el kernel ni me metería con iptables, sino que usaría un programa especializado comosocatpara hacer el reenvío de puertos (en la página vinculada tienes un ejemplo de cómo hacer el reenvío de puertos socat). Mi herramienta de reenvío de puertos favorita estcppmdesde el3proxypaquete.

información relacionada