La idea de usar redireccion es para que unicamente abras en el router el puerto 22 y lo redirijas a tu servidor. Todos los demas puertos cerrados. Y si quieres acceder a cualquier otro servicio del servidor, pues creas un tunel. O tambien puedes crearlo para acceder a otro equipo.
Por ejemplo ... suponemos:
IPs privadas:
router: 192.168.1.1 (con el 80 abierto para la red privada y el 22 redirigido al servidor)
servidor: 192.168.1.20 (con linux y el 22 y el 80 abierto)
pc: 192.168.1.100 (con windows y el 139 abierto)
IP publica del router:
195.195.195.195
Nuestros accesos son todos DESDE FUERA DE LA RED PRIVADA y a traves de Internet.
Para acceder por ssh al servidor:
ssh 195.195.195.195
Seria una conexion SSH normal y corriente
Para acceder a la web del router, como si estuvieras dentro de la red:
ssh -L 8080:192.168.1.1:80 195.195.195.195
Accederias como
http://localhost:8080 y lo que hacemos es crear un tunel con el servidor
Para acceder a la web del servidor, como si estuvieras dentro de la red:
ssh -L 8080:192.168.1.20:80 195.195.195.195
Accederias como
http://localhost:8080 y lo que hacemos es crear un tunel con el servidor
Para acceder al 139 del pc con windows:
ssh -L 139:192.168.1.1:139 195.195.195.195
con samba podremos acceder a localhost y en realidad estaremos en el PC con windows de la red privada
Para aclarar como funciona:
X:IP_PRIVADA:Y
X es el puerto virtual que crearemos en localhost
IP_PRIVADA es a la que queremos acceder
Y: es el puerto abierto en la IP_PRIVADA
Lo que hace esto es que conectandonos a localhost:X en realidad accedemos a IP_PRIVADA:Y
Y para acceder nos connectamos, autenticamos y creamos un tunes a traves de 195.195.195.195 que es la IP publica del router que nos lleva al servidor (dado que el puerto 22 del router esta redirigido al servidor.