SSH a través del enrutador al server de files interno

Esta es una verdadera pregunta para principiantes, lo sé. Pero realmente no soy capaz de entender la terminología para get lo que quiero que funcione.

Y como quiero hacer esto en un enrutador en el que confíen 40-50 personas para internet, mi enfoque habitual de romper cosas hasta que funcione tampoco va a funcionar.

Así que esto es lo que quiero hacer. Tengo un enrutador (una caja Debian con shorewall ) con un cable.example.com IP cable.example.com . Tengo un server de files interno asignado 192.168.0.3 . Actualmente puedo ingresar al enrutador y desde allí ssh a los files. Sin embargo, quiero que el server de files esté disponible externamente tanto para mí como para otros con un cliente sftp típico.

¿Alguien podría al less darme una idea de lo que estoy buscando? Túneles, tunelización, reenvío de puertos, iptables: todos parecen describir lo que quiero hacer, pero no puedo tener una idea clara de cómo hacerlo funcionar.

Puede hacerlo a través de la function ProxyCommand de ssh. Agregue lo siguiente a su file $HOME/.ssh/config . Créelo si no existe solo con este contenido:

 Host remoteserverX User userint ProxyCommand ssh userext@externalserver nc remoteserverX %p Host remoteserverY User userint ProxyCommand ssh userext@externalserver nc remoteserverY %p 

A continuación, se conecta a los diferentes serveres remotos internos como este:

 $ ssh remoteserverX -or- $ ssh remoteserverY 

Esta es la punta del iceberg en lo que respecta a esta característica. Consulte esta sección de preguntas y respuestas de U & L titulada: túnel SSH a través del server intermediario: ¿cómo conectarse en un solo paso (utilizando el par de keys)? , para más detalles.

NOTA: El método anterior está haciendo uso de una herramienta llamada nc (netcat) que debe estar en los repositorys de las principales distribuciones.

Esto no es exactamente lo mismo que la networkingirección de Nginx, estás haciendo un túnel a través del sistema externo para llegar al sistema interno, pero tiene un efecto similar.

Ejemplos complejos

  1. Una stanza Host , muchos hosts.

     Host *.mydom.com * ProxyCommand ssh externalserver nc %h %p 
  2. One `Hosts stanza, para muchos usuarios.

    Agregue la /etc/ssh/ssh_config file /etc/ssh/ssh_config sistema para que cualquier persona que inicie session en el cuadro pueda hacer uso de esta.

Habrá varios enfoques dependiendo de cómo quiera conectarse al server de files.
Una opción es reenviar el tráfico FTP de manera que cuando transfiera el FTP a su "enrutador" lo pase al server de files. Los documentos shorewall pueden ser útiles aquí.
http://articles.slicehost.com/2007/10/10/rsync-exclude-files-and-folders
El único problema es que expone su server de files al tráfico externo. En ese caso, puede cambiar el puerto que usa en el enrutador para conectarse, por ejemplo
Use el puerto 2121 en el enrutador y haga que se reenvíe al puerto 21 del server de files y luego cambie el puerto en su cliente FTP para reflejar esto.