Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
1
Manual para tunneling por medio de
SSH.
Autor: Gerardo Flores Petlacalco.
2
Contenido
Introducción .................................................................................................................................. 1
Requerimientos ............................................................................................................................. 3
Túnel SSH ..................................................................................................................................... 3
Sobre Windows ......................................................................................................................... 3
Creando el Tunel SSH ........................................................................................................... 3
Conexión hacia el servidor remoto, mediante el túnel SSH y su localhost para intercambio
de archivos ............................................................................................................................ 6
Sobre Linux ............................................................................................................................... 8
Creando el túnel SSH ............................................................................................................ 8
Conexión hacia el servidor remoto, mediante el túnel SSH y su localhost para intercambio
de archivos .......................................................................................................................... 12
Referencias .................................................................................................................................. 14
1
Introducción
El Port Forwarding es un mecanismo de SSH para tunelizar puertos desde una maquina cliente a
un servidor o de forma inversa. Esto se puede usar para agregar seguridad a aplicaciones antiguas,
saltarse firewalls, los administradores y profesionales IT los usan para abrir puertas traseras dentro
a la red interna desde sus máquinas domésticas. Lamentablemente esta característica puede usarse
por Hackers para inyectar malware y abrir un acceso directo desde la Internet hasta la red interna.
El local forwarding es usado para reenviar un puerto de la maquina cliente a un servidor.
Básicamente, el cliente SSH escucha las conexiones en un puerto configurado para recibir
conexiones, en forma básica el túnel es una conexión a un servidor SSH. El servidor de conecta
a un puerto destinado configurado, posiblemente a una maquina diferente al servidor SSH.
Los usos típicos de un Local Forwarding incluye:
• Túnel de sesiones y transferencia de archivos a través de servidores de salto
• Conexión a un servicio de una red interna desde el exterior
• Conexión a un recurso compartido remoto a través de Internet
En el LNS se requiere primero pasar por el servidor UI y desde ahí crear la comunicación al nodo
Login del clúster, este paso tiene como objetivo crear una barrera desde Internet a la red interna
para prevenir ataques desde el exterior por parte de personas que quieran realizar un uno
inadecuado del poder de computo que se ofrece.
Entre los inconvenientes que tiene este proceso, aparte del engorroso tiempo que toma conectarse
al clúster para enviar las tareas mediante SCRUM, es el intercambio de archivos desde la máquina
local al servidor pues es casi el mismo proceso que se requiere para conectarse, primero debes
subir tus archivos al UI y de ahí pasarlos al servidor.
El objetivo de este manual es crear un local forwarding usando el protocolo SSH, con el objetivo
de hacer una conexión directa desde la maquina local hacia el servidor para agilizar el intercambio
de archivos pues nos evita el paso de subir el archivo al UI para pasarlo a la cuenta dentro de
Login.
2
Todo esto usando solamente un comando SSH que nos asociará a un puerto la conexión hacia el
clúster, este puerto permite la comunicación para un intercambio de archivos. Además, la
conexión creada permitirá mandar las tareas a SCRUM, pues nos dejará un prompt listo para usar.
3
Requerimientos
Cliente SSH que permita realizar una conexión mediante línea de comandos
• En SO Windows se puede usar MobaXterm
• En SO Linux se puede hacer directamente en la terminal.
Administrador de archivos que permita la conexión a un servidor remoto vía SFTP
• Windows, puede usarse WinSCP
• Linux, puede realizarse directamente desde el manejador de archivos nativo de la
distribución.
Túnel SSH
Crear el túnel SSH para un intercambio directo de archivos sin necesidad de pasar por el nodo UI,
se describe a continuación para ambos sistemas operativos. Los pasos son similares entre ambos
sistemas operativos.
Sobre Windows
Los pasos para sistemas operativos Windows, se dividirán en dos partes. La primera, crear el túnel
SSH usando “MobaXterm, la segunda parte es conectar un administrador de archivos usando el
protocolo SFTP.
Creando el Túnel SSH
Se usa el software MobaXterm para conectarse al servidor interno del LNS, los pasos a seguir son
similares a una conexión simple, primero conectarse al servidor intermedio UI y posteriormente
hacer un SSH normal hacia el clúster.
Los pasos a seguir son los siguientes:
1. Con el programa Xterm abierto, tecleamos el siguiente comando dentro del prompt
Nota. El puerto local donde se asocia una conexión puede ser cualquier puerto otro puerto aparte
del 8080 que este habilitado para admitir conexiones.
Nota. La dirección del servidor remoto, siempre debe ir acompañado del puerto asociado al
protocolo SSH. En el LNS es el 22.
4
El comando a teclear se muestra abajo, si lo usa la conexión estará asociada al puerto 8080 de su
localhost y reemplace la parte la cadena “nombre_de_usuario” con sus credenciales para
loggearse al nodo UI.
ssh -L 8080:192.168.170.213:22 [email protected]
Nos pedirá la contraseña de nuestro UI, la proporcionamos y estaremos dentro de ese nodo
intermedio.
2. Una vez dentro del nodo UI, hacemos establecemos una conexión SSH hacia el clúster
del LNS con el comando
donde debes reemplazar la parte “nombre_de_usuario” con las credenciales que fueron
proporcionadas
5
Para acceder se le pedirá introduzca la contraseña proporcionada y si la conexión se realizó
correctamente, tendrá la siguiente leyenda del prompt del servidor remoto.
Ahora, el último paso es comprobar que el túnel se hizo de manera correcta y está asociado al
puerto proporcionado del su localhost. Para ello, debe acceder a su navegador Web preferido y en
la barra de direcciones, colocar lo siguiente:
http://localhost:Puerto
En el ejemplo presentado en este manual, se usa el puerto 8080, por lo que nos quedaría la
dirección como:
http://localhost:8080
Si al entrar a esa dirección nos aparece a leyenda como se muestra en la captura de abajo, el túnel
SSH ha sido creado y estas ahora conectado con el servidor remoto a través del puerto 8080 de su
localhost.
Nota. En algunos navegadores puede no aparecer este mensaje, en lugar de eso puede aparecer
como “No se puede reconocer la respuesta del servidor” de ser ese el caso, el túnel ya está hecho
solamente es un error del navegador para mostrar los datos.
6
Con el túnel creado, se procede a realizar la siguiente sección.
Conexión hacia el servidor remoto, mediante el túnel SSH y su localhost para intercambio
de archivos
En este paso conectaremos un manejador de archivos que soporte el protocolo SFTP para realizar
una transferencia y gestión de datos entre la maquina local y el servidor remoto. Usaremos el
software WinSCP. Sin embargo, los pasos serán muy generales por lo que en cualquier otra
aplicación parecida pueden funcionar.
Para opciones de descarga e instalación puede visitar el siguiente enlace a la página oficial.
https://winscp.net/eng/docs/guide_install
1. Abrimos WinSCP y nos aparecerá la siguiente ventana de configuración
Y lo llenamos de la siguiente manera:
En Nombre o IP del servidor, se coloca: localhost
En puerto, colocar el puerto al que se asoció el túnel SSH: 8080 (En nuestro ejemplo)
7
Es probable que el protocolo cambie, por lo que nos debemos asegurar que este seleccionado el
protocolo SFTP
En usuario y contraseña van las credenciales proporcionadas por el LNS para conectarse al clúster
desde UI, las colocamos con se muestran y damos click a “Conectar” para iniciar la conexión.
Al terminar, nos aparece una pantalla como la siguiente. Del lado izquierdo estarán nuestros datos
almacenados localmente, mientras que del lado derecho los archivos que tenemos alojados en el
clúster del LNS
Desde esta ventana podrás cargar tus archivos y manipularlos, localmente para conocer más
funcionalidades de este software, por favor visite la página oficial con su documentación.
https://winscp.net/eng/docs/start
8
Sobre Linux
En Linux la conexión se realiza directamente desde la Terminal y el túnel se puede realizar desde
el administrador de archivos ya que por defecto se acepta el protocolo SFTP. En este manual se
usó la distribución Linux Mint 18.1 por lo que pueden existir ciertas diferencias en el proceso
debido a los cambios entre las distribuciones y sus administradores de archivos. Sin embargo, los
pasos son similares.
Creando el túnel SSH
1. Abrimos una terminal en nuestra distribución y tecleamos el siguiente comando
Nota. El puerto local donde se asocia una conexión puede ser cualquier puerto otro puerto aparte
del 8080 que este habilitado para admitir conexiones.
Nota. La dirección del servidor remoto, siempre debe ir acompañado del puerto asociado al
protocolo SSH. En el LNS es el 22.
El comando a teclear se muestra abajo, si lo usa la conexión estará asociada al puerto 8080 de su
localhost y reemplace la parte la cadena “nombre_de_usuario” con sus credenciales para
loggearse al nodo UI.
ssh -L 8080:192.168.170.213:22 [email protected]
9
2.
Se le pedirá la contraseña de acceso para el nodo UI
10
3. Una vez dentro del nodo UI, hacemos establecemos una conexión SSH hacia el clúster
del LNS con el comando
donde debes reemplazar la parte “nombre_de_usuario” con las credenciales que fueron
proporcionadas
Del mismo modo se pedirá la contraseña de acceso para el clúster del LNS, una vez proporcionada
nos aparecerá el prompt del clúster y la advertencia de seguridad que confirma la conexión.
11
Ahora, el último paso es comprobar que el túnel se hizo de manera correcta y está asociado al
puerto proporcionado del su localhost. Para ello, debe acceder a su navegador Web preferido y en
la barra de direcciones, colocar lo siguiente:
http://localhost:Puerto
En el ejemplo presentado en este manual, se usa el puerto 8080, por lo que nos quedaría la
dirección como:
http://localhost:8080
Nota. Nos puede aparecer esta leyenda en el navegador, pero el túnel ya está realizado y se puede
usar mediante el administrador de archivos.
12
Conexión hacia el servidor remoto, mediante el túnel SSH y su localhost para intercambio
de archivos
Abrimos un administrador de archivos dentro de Linux y en la barra de direcciones tecleamos la
siguiente dirección
Donde reemplazamos el nombre de usuario, con el nombre de tu cuenta dentro del LNS y el puerto
debe ser el mismo del paso “Creando túnel SSH”.
Nota. Con esta dirección, te conectarás directamente a tu carpeta personal dentro del LNS, donde
podrá visualizar sus archivos.
13
Nos pide el password de nuestra cuenta del clúster.
De esta forma podrás administrar tus archivos directamente desde tu administrador de archivos
Linux, como si fuera una carpeta más del sistema.
14
Referencias
Martin. (16 de Enero de 2017). Connect to FTP server or SFTP server. Obtenido de WinSCP:
https://winscp.net/eng/docs/guide_connect
SSH PORT FORWARDING EXAMPLE - HOW TO TUNNEL APPLICATIONS? (2017). Obtenido
de SSH Communications Security, Inc.: https://www.ssh.com/ssh/tunneling/example
Usar Nautilus como cliente de FTP. (8 de Agosto de 2009). Obtenido de Paraiso Linux:
https://paraisolinux.com/usar-nautilus-como-cliente-de-ftp/