-[ 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  tnel de SSH es un camino seguro (conexin TCP) entre dos nodos en
   una red. Todo el trfico de la red enviado a travs del tnel 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  tnel  de  SSH toma todo el trfico enviado a un
   puerto  TCP  de  su  ordenador  (un extremo del tnel), lo cifra, y lo
   enva   a  el  ordenador  remoto  (el  otro  extremo  del  tnel).  La
   computadora  remota  desencripta el trfico y  lo reenvia a un  host y
   puerto especifico, a s mismo o a otra mquina.

                                                           .___.
                                                    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
   estn  algunos  ejemplos  de  cmo 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 informacin utilizando protocolos como el SMTP o
   el  telnet  que son protocolos que trabajan en texto plano (usuarios y
   contraseas 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 conexin 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 aadido 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 informacin:

   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  configuracin  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 contrasea, 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 contraseas 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  aadir  1 al puerto por defecto de modo que la informacin
   quedaria de la siguiente manera:

                 myport:             5901
                 target_address: 192.168.1.100
                 target_port:        5900
  

   O en la lnea 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 contrasea
   de la conexion VNC, o reciviras un error si existe algun problema.

   9  Paso: Introduzca  la contrasea. 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  pequeas 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 aadidos 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 aos. 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 trminos de la Licencia de Documentacin Libre (FDL) GNU, Versin 1.2 o
cualquier otra versin posterior publicada por la Free Software Foundation.
http://www.gnu.org/copyleft/fdl.txt

*EOF*