Copy Link
Add to Bookmark
Report

SET 031 0x0D

  

-[ 0x0D ]--------------------------------------------------------------------
-[ Building SSH ]------------------------------------------------------------
-[ by SeSox ]--------------------------------------------------------SET-31--

***************************************
* Creando y Utilizando tuneles SSH *
***************************************


1.- Que son los tuneles SSH?
2.- Por que necesitamos los tuneles SSH?
3.- Que necesito para empezar?
4.- Client? Server? Significa lo mismo que siempre?
5.- Procedimiento
6.- Ejemplo
7.- Tenga presente...
8.- Recursos


1.- Que son los tuneles SSH?
------------------------

Un túnel de SSH es un camino seguro (conexión TCP) entre dos nodos en
una red. Todo el tráfico de la red enviado a través del túnel se cifra
-- cualquier paquete interceptado a lo largo de la conexion es
ininteligible para cualquier persona que no posea la clave apropiada
para descifrarlo.
Hablando claro, un túnel de SSH toma todo el tráfico enviado a un
puerto TCP de su ordenador (un extremo del túnel), lo cifra, y lo
envía a el ordenador remoto (el otro extremo del túnel). La
computadora remota desencripta el tráfico y lo reenvia a un host y
puerto especifico, a sí mismo o a otra máquina.

.___.
APP | |
Server |___|
Home PC Internet gw Router \____\
.___. _____ .____. .
| | / \ | | /|\
|___|::::::> | | ::::::::> | | ::::::: |
\____\ \_____/ |____| :: .___.
:: | |
:::::::> |___|
\____\

SSH Server

NOTA: El tunel es la flecha "::::::>" que va desde el pc de casa hasta
el servidor SSH. Lo que hay a partir del gw Router es una red
privada. El pc de casa podra acceder al servidor de aplicacion
dentro de la red privada. Todo lo que tiene que hacer el router
es permitir la entrada/salida del trafico ssh.


2.- Por que necesitamos los tuneles SSH?
------------------------------------

La respuesta a esto está en gran parte influenciada por usted. Aquí
están algunos ejemplos de cómo se puede dar un buen uso a un tunel
SSH:

* Esta usted en un entorno restringido por un firewall o router que no
permite las conexion del tipo que necesita. Si se permiten las
conexiones por SSH atraves del router, puede usted utilizar un tunel
para pasar atraves del router y utilizar los servicios de red que
precise al otro extremo de la red.

* Usted desea enviar información utilizando protocolos como el SMTP o
el telnet que son protocolos que trabajan en texto plano (usuarios y
contraseñas incluidos).

* Si cree usted que el gran hermano / el FBI / la Interpol/ Echelon /
Bavarian Illuminati estan fisgoneando en el trafico de su red, y
quiere desbaratar sus intentos y reirse en su cara.


3.- Que necesito para empezar?
--------------------------

Este articulo asume que tiene usted conocimientos basicos sobre lo que
es SSH, y como usar este para realizar una conexión con un servidor.
Si le gustaria practicar con SSH, aqui tiene varios proveedores de
cuentas shell gratuitas que le permiten utilizar SSH para conectar.

Usted necesitara tener un cliente y un servidor SSH funcionando para
construir y probar su tunnel. He añadido unos enlaces al final de este
articulo a sitios que contienen informacion sobre SSH y posibilidad de
descargar programas cliente y servidor.


4.- Cliente? Servidor? Significa lo mismo que siempre?
--------------------------------------------------

Si tiene usted conocimientos sobre los mecanismos de redes,
probablemente entendera estos terminos. Para aclarar estos terminos,
aqui tiene algunas definiciones que seran utilizadas en este articulo:

Cliente: El ordenador del cliente es desde el que realizara usted la
conexion SSH. Normalmente suele ser su computadora de casa o pc
personal.

Servidor: El servidor es el ordenador al que esta conectando mediante
el tunel SSH. Es ordenador podria estar dentro de una red privada o
puede ser una cuenta shell en internet.

Destino: El destino (Target) es el ordenador que esta en el estremo
final y que recivira el trafico de red enviados a traves del tunnel.
Este ordenador puede ser igual que el servidor aunque no tiene por que
serlo.

Con propositos de estudio, usted puede utilizar el mismo ordenados en
forma de cliente, servidor y destino -- La conexion sigue el mismo
camino que tendria que hacer por diferentes ordenadores.


5.- Procedimiento
-------------

Siga estos pasos para construir y probar su tunel. Estos pasos asumen
que esta usted sentado frente a un ordenador cliente:

1. Primero realice una conexion normal al servidor SSH, para así
verificar que todo esta funcionando correctamente.

2. Si el servidor y el destino no son el mismo ordenador, compruebe
que el servidor puede acceder adecuadamente al puerto especifico del
ordenador destino.

3. Configure su cliente SSH para habilitar la opcion de forwarding
(reenvio) -- Este es el paso clave en la construccion del tunnel. Para
esto, necesitara especificar tres bloques de información:

1. El puerto TCP en el ordenador del cliente que será utilizado como
primer salto del tunel. Cuando el forwarding (reenvio) este activado,
SSH estará escuchando en este puerto a la espera de trafico.

2. El nombre de host o direccion IP del ordenador destino (ultimo
destinatario del trafico que circule atraves del tunel). Este sera
resuelto por el servidor; Si el servidor y el destino son el mismo
ordenador, usted podrá utilizar 'localhost' o '127.0.0.1'.

3. El puerto de la computadora destino que recibira el trafico que
pase atraves del tunel desde el cliente y pasando por el servidor.

La configuración del cliente cambiará segun el software que utilice.
PuTTY es un excelente cliente de SSH/telnet para windows -- si esta
utilizando PuTTY, puede usted habilitar el forwarding (reenvio) desde
Connection -> SSH -> Tunnels y una vez estemos ahí, introduciremos el
puerto local y el host y puerto remotos (host:port) en la seccion de
port forwarding. Si esta usted utilizando un cliente ssh de linea de
comandos, podra usted especificarlo de la siguiente manera:

# ssh -L myport:target_address:target_port server

...rellenando correctamente con los siguientes datos: servidor,
puerto, direccion de destino (target_address) y puerto de destino
(target_port).

4. Por fin se ha realizado esta primera conexion SSH entre cliente y
servidor , verifique que myport este escuchando en el ordenador
cliente. Para esto puede utilizar el comando netstat -ntl, le tendra
que aparecer el puerto con estado LISTEN o LISTENING. Si ve usted el
puerto en esta lista, quiere decir que su tunel esta creado y
funcionando.

5. Configure la aplicacion que utiliza usted para enviar datos atraves
del tunel; Debe usted asegurarse de que cualquier campo 'server name',
'nombre del servidor' o similar contenga 'localhost y que la
informacion del puerto contenga el especificado por usted como myport.
Por ejemplo, si esta utilizando el tunel para enviar un correo atraves
de un SMTP, debera poner como servidor SMTP localhost (127.0.0.1) y
usar el puerto especificado en myport.

6. Listo! Usted ahora tendria que poder usar su tunel SSH. Note que
tiene que dejar la sesion SSH habierta mientras utiliza el tunel --
cierre la sesion cuando haya terminado y el tunel se cerrara sin
problemas.


6.- Ejemplo
-------

Fijese en la siguiente situacion y vaya paso a paso configurando El
tunel SSH: Usted es un administrador de sistemas en Initech, y
necesita configurar el ordenador de su casa para acceder al servidor
de dominio de la empresa utilizando VNC cuando este fuera de la
oficina. El personal de seguridad no permite entradas ni salidas
inseguras por el router -- por lo que habrir puertos para VNC no es
una opcion. Utilizando SSH puede usted crear un tunel que pase la
conexion de VNC atraves del servidor de dominio y el ordenador de su
casa.

1º Paso: Solicite que el router (router1.example.com) permita
conexiones SSH desde internet. Estas conexiones deberan ser enrutadas
o reenviadas al ordenador de su oficina dependiendo de la
configuracion de la red.

2º Paso: Instale VNC en el servidor de dominio (192.168.1.100) y
ejecute este como un servicio del sistema. Yo personalmente prefiero
el UltraVNC, pero si usted no esta en un entorno 100% windows,
necesitara usar el cliente y servidor de VNC para su configuracion
concreta. Asegurese de que VNC le pide la contraseña, y pruebe a
conectarse para comprobar que funciona correctamente. Ahora, el
servidor de dominio es el ordenador destino, con el VNC escuchando en
el puerto 5900.

3º Paso: Instale un servidor de SSH en el ordenador de su oficina, por
ejemplo (192.168.1.139). Ponga este como un servicio del sistema, y
asegurese de tener permiso para tener el ordenador encendido por la
noche y fines de semana. Este ordenador sera el servidor, el cual
tendra el servidor SSH escuchando en el puerto 22.

4º Paso: Instale un cliente de SSH en el ordeandor de su casa. Si
tiene configurado el servidor para utilizar autentificacion por clave
publica o basada en host, asegurese de que tiene el nombre de host
correctamente establecido o que tiene una copia de la clave en el
ordenador. (Para una seguridad extraordinaria, necesita
autentificacion por clave publica o basada en host y desabilitar la
autentificacion por contraseñas de SSH. Consulta la documentacion para
mas informacion.) El ordenador de su casa es ahora el ordenador
cliente.

5º Paso: Verifique que puede realizar una conexion SSH desde el
ordenador de su casa al servidor SSH. Si esto funciona, usted ya sabra
que el router deja pasar el trafico correctamente.

6º Paso: Construya su tunel SSH. Escoja un puerto para que el
ordenador de su casa se quede a la escucha entre el 1 y el 65535. VNC
utiliza el puerto 5900 por defecto, pero tambien puede utilizar 5900
si lo desea. Sin embargo, si da la casualidad de que esta ejecutando
VNC en su ordenador, el puerto 5900 ya estara en uso. Yo en este caso
recomiendo añadir 1 al puerto por defecto de modo que la información
quedaria de la siguiente manera:

myport: 5901
target_address: 192.168.1.100
target_port: 5900


O en la línea de comandos:

# ssh -L 5901:192.168.1.100:5900 route1.example.com

(Nota: Si el ordenador de su oficina tiene una ip publica, deberá ser
capaz de conectar directamente a este ordenador. En nuestro ejemplo
necesitamos especificar el nombre (hostname) del router para la
conexion ssh por que utilizamos una direccion ip privada que no puede
ser enrutada, por eso enviamos la solicitud al router el cual si que
nos puede reenviar el trafico asta la direccion ip especificada. Si
esto te confunde, no te preocupes -- lo unico que pretendemos es que
pongas la direccion IP del ordenador de la oficina en el comando SSH.)

7º Paso: Si se crea la conexion SSH con exito, utilice el comando
netstat para verificar que el ordenador de su casa esta escuchando en
el puerto 5901. Si es asi, esta usted listo para hacerlo funcionar.

8º Paso: Ejecute VNC Viewer en el ordenador de su casa. Para obtener
informacion de la conexion, usted necesitara proporcionar el string:
localhost:5901 -- Esto le indica al visor que realice una conexion a
'localhost' (su ordenador) en el puerto 5901 (final del tunel SSHH).
Llegados a este punto, te saldra un cuadro solicitando la contraseña
de la conexion VNC, o reciviras un error si existe algun problema.

9º Paso: Introduzca la contraseña. Dele uno o dos minutos y deberia
ver el mensaje "Please Wait" mientras VNC carga el escritorio remoto
Dependiendo de la velocidad de su conexion, usted querra especificar
una compresion, colores y otras configuraciones de VNC para que la
aplicacion funcione algo mas rapido en conexiones lentas. ( Nota:
UltraVNC procura detectar la velocidad de la conexion automaticamente;
puesto que el destino esta reciviendo los datos desde el servidor, la
velocidad utilizada sera la que hay entre ellos dos. Si el ordenador
de su casa tiene una conexion mas lenta hacia el servidor, necesitara
ponerlo para una velocidad mas lenta.)

10º Paso: Ya lo ha conseguido! La sesion que esta utilizando esta
enviando datos atraves de un tunel SSH. Recuerde cerrar la conexion
del VNC antes de cerrar el tunel SSH -- sino, la conexion VNC no se
cerrara conrrectamente.


7.- Tenga presente...
-----------------

* Cualquier cosa que quiera enviar atraves del tunel debe ser enviada
a localhost:myport. Si no esta usted seguro de como redireccionar
servidores/puertos en la aplicacion que esta utilizando, mire en la
documentacion.

* Cerciorese de que el puerto local que ha especificado para el tunel
no tenga conflictos con otros puertos que esten abiertos en el pc
cliente. Es por eso que yo he utilizado el puerto 5901 para la
conexion VNC, en vez de usar el puerto por defecto 5900.

* El trafico solo se encripta entre el pc CLIENTE y el pc SERVIDOR. Si
el servidor y el destino no son los mismos, el trafico redireccionado
desde el servidor asta el destino NO SERA ENCRIPTADO.
(miren la Figura 2)

._____. ._____. No ._____.
| | Encriptado | | Encriptado | |
| C | <------------> | S | <------------> | T |
|_____| Tunel SSH |_____| |_____|

FIGURA2: Es importante recordar que si el servidor (S) y el destino
(T) no son la misma maquina el trafico entre ellos no
estara encriptado.

* Si ha seguido usted estas instrucciones y todavia tiene dificultades
para crear una conexion SSH, mire la documentacion para la version
especifica de SSH que este utilizando ya que existen pequeñas pero
importantes diferencias en la forma de configurar por ejemplo en linux
y windows.


8.- Recursos
--------

Esto es simplemente una lista de enlaces para especificar el software
y la informacion a la que nos referimos en este articulo:

* [1]OpenSSH: Un cliente/servidor de SSH disponible para varios
sistemas operativos. Este software ha sido desarrollado por el mismo
equipo que ha echo OpenBSD.

* [2]OpenSSH para Windows: Es un port para windows del paquete
OpenSSH.

* [3]PuTTY: Es un cliente GUI de ssh para usuarios de windows, es el
mejor cliente de ssh freeware que conozco.

* [4]VNC: Ahora conocido como RealVNC, este sitio contiene muy buena
documentacion para esta util herramienta.

* [5]UltraVNC: Esta es una version de VNC que solo funciona en
sistemas Windows. Esta version tiene añadidos muy utiles que no tiene
el VNC estandar, como puede ser la transferencia de ficheros,
posibilidad de chat entre servidor y cliente, y Autentificacion
mediante Active Directory en dominios NT.

* [6]Freeshell.org: Este es un buen servicio de cuentas shell que
llevo utilizando durante un par de años. Se que tienen funcionando
NetBSD y no consideran linux como una eleccion viable. Sin embargo,
tu opinion puede ser distinta (YMMV).

References

1. http://www.openssh.com/
2. http://sshwindows.sourceforge.net/
3. http://www.chiark.greenend.org.uk/~sgtatham/putty/
4. http://www.realvnc.com/
5. http://ultravnc.sourceforge.net/
6. http://www.freeshell.org/


Nota del traductor
------------------

Puede consultar el original de este articulo en el siguiente enlace:
http://www.neworder.box.sk/newsread.php?newsid=12498



Copyright (c) 2005 SeSoX.
Se otorga permiso para copiar, distribuir y/o modificar esta traduccion bajo
los términos de la Licencia de Documentación Libre (FDL) GNU, Versión 1.2 o
cualquier otra versión posterior publicada por la Free Software Foundation.
http://www.gnu.org/copyleft/fdl.txt

*EOF*

← previous
next →
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT