09 de Febrero de 2010

  Secure Shell
docpdf tutorial

Herramieta para acceso remoto seguro en entornos unix y windows, proporciona un canal cifrado para evitar ataques de robo de password en claro

 

1. Introducción


Actualmente las Redes de Computadoras son los medios digitales más usados en todos los ámbitos de la sociedad para la transferencia de información. Normalmente estos medios se encuentran en redes públicas, por lo cual están expuestas a intervenciones de una u otra forma.

Cuando se realiza una conexión a un servidor remoto usando por ejemplo el comando telnet o ftp, el login(usuario) y password(contraseña) son transmitidos en la red de forma clara, lo cual representa un gran riesgo si llega a existir sobre la red un programa que capture la información, basándose en el modo promiscuo de las redes ethernet (comúnmente llamado sniffer), ocasionado obtener tanto el login como el password y pudiendo posteriormente irrumpir en el servidor con esta información.

Este tipo de comunicación en claro se muestra en la siguiente ilustración:



Este tipo de problemáticas ha llevado al diseñode herramientas que permitan evitar estas situaciones siendo el caso de Secure Shell (ssh), desarrollado por Tatu Ylonen en la Universidad Tecnológica de Helsinki en Finlandia y OpenSSH, que nace del proyecto de un sistema operativo orientado con la filosofía de la seguridad en mente como lo es OpenBSD.

Secure Shell y OpenSSH permiten realizar la comunicación y transferencia de información de forma cifrada proporcionando fuerte autenticación sobre el medio inseguro. Este tipo de conexión se muestra en la ilustración siguiente:


2. ¿Qué es Secure Shell?


Secure Shell (ssh) es un programa que permite realizar conexiones entre máquinas a través de una red abierta de forma segura, así como ejecutar programas en una máquina remota y copiar archivos de una máquina a otra. Tal y como se explica en el RFC de Secure Shell:

"SSH(Secure Shell) es un programa para conectarse a otros equipos a través de una red, para ejecutar comandos en una máquina remota y para mover archivos de una máquina a otra. Proporciona una exhaustiva autenticación y comunicaciones seguras en redes no seguras"

Ssh provee fuerte autenticación y comunicación segura sobre un canal inseguro y nace como un reemplazo a los comandos telnet, ftp, rlogin, rsh, y rcp, los cuales proporcionan gran flexibilidad en la administración de una red, pero sin embargo, presenta grandes riesgos en la seguridad de un sistema. Adicionalmente, ssh provee seguridad para conexiones de servicios X Windows y envío seguro de conexiones arbitrarias TCP.

Secure Shell admite varios algoritmos de cifrado entre los cuales se incluyen:

  • Blowfish
  • 3DES
  • IDEA
  • RSA

La ventaja más significativa de ssh es que no modifica mucho las rutinas. En todos los aspectos, iniciar una sesión de ssh es tan sencillo como( y similar a) iniciar una sesión de telnet. Tanto el intercambio de llaves, la autenticación, así como el posterior cifrado de sesiones son transparentes para los usuarios.


3. ¿ De que Previene Secure Shell?


Debido a la promiscuidad de la interfaz ethernet, se genera una problemática sobre los siguientes servicios de red usados en la actualidad, tales como:

  • telnet
  • ftp
  • http
  • rsh
  • rlogin
  • rexec

Ello nos representa un problema importante, ya que, incluso en un entorno de red cerrado, debe existir como mínimo un medio seguro para poder desplazar archivos, hacer copia de archivos, establecer permisos, ejecutar archivos, scrips, etc, a través de medios seguros.

Por ello para evitar que determinadas personas capturen el trafico diario de la red, es conveniente instalar el Secure Shell(SSH).

Entre los ataques más comunes que nos previenen Secure Shell están:

  • Sniffering(Captura de trafico)
  • IP Spoofing
  • MACpoofing
  • DNS Spoofing
  • Telnet Hickjacking
  • ARP Spoofing
  • ARP Spoofing
  • IP Routing Spoofing
  • ICMP Spoofing


4. Protocolos de Secure Shell


Existen actualmente dos protocolos desarrollados sobre ssh:

  • SSH1: La ultima versión de ssh cliente/servidor para Unix que soporta este protocolo es la 1.2.31, esta puede ser utilizada libremente para propósitos no comerciales y es ampliamente usada en ambientes académicos.


  • SSH2: Provee licencias más estrictas que SSH1 ya que es de carácter comercial. La ultima versión de ssh cliente/servidor para Unix con este protocolo es la 2.4.0 y puede ser utilizada libremente respetando la licencia expresa.


Actualmente existe un proyecto llamado OpenSSH, el cual fue desarrollado inicialmente dentro del proyecto OpenBSD.

OpenSSH es una versión libre de los protocolos SSH/SecSH bajo licencia BSD y es totalmente compatible con los protocolos SSH1 y SSH2. La ultima versión de OpenSSH cliente/servidor para Unix es la 2.3.0P1 (Liberada el 6 de Noviembre del 2000).

Debido a que OpenSSH rompe la barrera de los protocolos que ha causado confusión entre diversos sectores, esta herramienta esta siendo muy usada en la comunidad, tal es el caso de distribuciones como Linux RedHat 7.0 que ya la incluyen dentro de su sistema operativo.

Sin embargo OpenSSH ha demostrado en los últimos meses cierta inestabilidad, por lo que sí se instala dicha versión es altamente recomendable estar actualizando periódicamente el OpenSSH y estar al pendiente de vulnerabilidades presentadas.


5. ¿Dónde obtener el Secure Shell?


5.1.Secure Shell cliente/servidor para sistemas Unix

Sitio FTP de Secure Shell
http://ftp.ssh.com/pub/ssh

Departamento de Seguridad en Cómputo
ftp://ftp.seguridad.unam.mx/Herramientas/Unix/Comunicacion


5.2 OpenSSH Cliente/Servidor para sistemas Unix

Sitio FTP de OpenSSH
http://www.openssh.com/ftp.html

Departamento de Seguridad en Cómputo
ftp://ftp.seguridad.unam.mx/Herramientas/Unix/Comunicacion


5.3 Secure Shell cliente para sistemas Windows

Sitio FTP de Secure Shell (Solo para clientes con protocolo SSH2)
http://ftp.ssh.com/pub/ssh

Departamento de Seguridad en Cómputo
ftp://ftp.seguridad.unam.mx/Herramientas/Windows/Comunicacion


5.4 Secure Shell cliente para sistemas Mac

Departamento de Seguridad en Cómputo
ftp://ftp.seguridad.unam.mx/Herramientas/Mac/Comunicacion/Ssh1


6. Instalación de Secure Shell cliente/servidor para Unix


Desafortunadamente los protocolos de Secure Shell (SSH1 y SSH2) no son compatibles uno con otro, por lo tanto, sí deseamos que exista compatibilidad debemos de instalar primero Secure Shell protocolo SSH1 y posteriormente Secure Shell protocolo SSH2.

Otra opción para mantener la compatibilidad con los dos protocolos sin problema alguno es instalar OpenSSH.

Secure Shell con protocolo SSH1 y SSH2 pueden instalarse exactamente igual tal como se muestra a continuación.

Después de obtener el programa de Secure Shell (SSH1 o SSH2) procedemos a desempacarlo:

$ gunzip ssh-x.x.x.tar.gz
$ tar -xvf ssh-x.x.x.tar


En este punto obtendremos un directorio ssh-x.x.x sobre la ruta donde desempacamos.

A continuación se citan los pasos necesarios configurar y compilar Secure Shell. Estos pasos pueden realizarse sin ser root.


a) Configuración del entorno de compilación.

A diferencia de otras herramientas ssh no requiere de editar el archivo Makefile, la configuración la realizamos a través de los parámetros que le pasemos al script llamado configure.

Dentro del directorio ssh-x.x.x se encuentra el script llamado configure, el cual tiene los siguientes argumentos validos:

--prefix=PREFIX Donde se instalarán los binarios por default /usr/local.
--exec_prefix=PREFIX Donde se instalarán los ejecutables por default es el mismo que la variable --prefix.
--with-rsh=PATH Permitirá comandos rsh utilizando la estructura de ssh.
--without-idea No incluir IDEA
--with-tis=PATH Soporte a mecanismo de autenticación Tis authsrv.
--with-etcdir=PATH Ruta sobre la que obtendrá información sobre el sistema por default /etc.
--with-libwrap=[PATH] Usa libwrap (tcp_wrappers) y inetd.
--with-socks4[=PATH] Incluye soporte para SOCKS (Cruce de firewall).
--with-socks5[=PATH] Incluye soporte para SOCKS5.
--enable-warnigs Habilita la bandera -Wall al compilador gcc.

Sí nuestra intención es lograr que tcp-wrapper lleve un control sobre los accesos realizados con ssh, se necesitará la bandera --with-libwrap, además, sí se pretende realizar una autenticación de la máquina para ejecutar comandos rsh, se requiere entonces la bandera --with-rsh.

Entonces ejecutamos el script tomando en cuenta que tenemos instalado TCP-Wrappers y con soporte para el uso de comandos rsh:

$ ./configure --with-libwrap=/path/libwrap.a --with-rsh=/path/rsh.

Esto genera los cambios necesarios en los archivos de código fuente para su correcta compilación.

Para obtener la ruta del comando rsh utilizar el comando whereis.


b) Compilar los binarios de Secure Shell (se requiere el compilados GCC). Para esto basta con ejecutar:

$ make

Nota importante: Para poder ejecutar la instalación es necesario estar dentro de la cuenta de root.


c) Instalación de Secure Shell en el sistema y obtener las llaves del host.

$ make install

Los archivos de configuración de Secure Shell (ssh_host_key y sshd_config) quedan localizados en el directorio “/etc”, los programas clientes (ssh y scp) quedan en “/usr/local/bin”. Finalmente el programa servidor o demonio de Secure Shell (sshd) queda localizado en “/usr/local/sbin”.


d) Ya que se realizó la instalación en el equipo procedemos a configurar el sistema para poder ejecutar el demonio del servidor de ssh y permitir accesos por el puerto por default de Secure Shell (port 22).

  • Editar el archivo /etc/inetd.conf e incluir la siguiente línea:
(Sí no tiene habilitado TCP-Wrapper)

ssh
tcp
root
nowait
/usr/local/sbin/sshd
/usr/local/sbin/sshd -i

(Sí se esta usando TCP-Wrapper)

ssh
tcp
root
nowait
/usr/local/etc/tcpd
/usr/local/sbin/sshd -i
  • Editar el archivo /etc/services y habilitar el puerto para Secure Shell usando la siguiente línea:

. . .

ssh
22/tcp
Secure Shell
ssh
22/udp
Secure Shell
. . .


  • Por ultimo reiniciar el demonio de inetd.


Obtener el número de proceso del demonio inetd.

$ ps -fea | grep inetd


Enviar la señal HUP al proceso del inetd.

$ kill -HUP procesid


En este punto el sistema debe responder a las peticiones de conexión por Secure Shell.


7. Instalación de OpenSSH


El proyecto OpenSSH incluye al programa ssh. De igual forma incluye el archivo sshd que es el demonio que controla del lado del servidor las peticiones realizadas , también incluye otras funciones básicas del secure shell, tales como ssh-add, ssh-agent y ssh-keygen.

Openssh hoy en día soporta ambos protocolos de comunicación segura como lo son los protocolos 1.3, 1.5 y 2.0.

Debido a que OpenSSH es desarrollado fuera de los Estados Unidos, usando código de diversos países es libre de uso sin restricciones bajo la licencia del tipo BSD. Hoy en día OpenSSH corre en diversas plataformas entre las cuales destacan:

  • OpenBSD
  • Linux
  • Solaris
  • AIX
  • IRIX
  • HP/UX
  • FreeBSD
  • NetBSD

Para poder configurar de manera apropiada el OpenSSH se deben cumplir con tres prerrequisitos básicos para una óptima configuración.

    1. Instalación de Zlib
    2. Instalación de OpenSSL
    3. Instalación de OpenSSH

7.1. Zlib

Zlib es un conjunto de librerías necesarias para el funcionamiento de SSH y OpenSSH no es la excepción al ejecutarlo.

Zlib se puede obtener de :
http://www.freesoftware.com/pub/infozip/zlib/

Departamento de Seguridad en Cómputo
ftp://ftp.seguridad.unam.mx/Herramientas/Unix/Comunicación/Openssh/

Una vez obtenido el software Zlib es necesario proceder a la instalación.


7.1.1. Instalación de Zlib

Zlib se configura y se instala casi en todas las plataformas sin problema alguno, y para poderlo implementar se deben aplicar los siguientes pasos:

Después de obtener el programa de Zlib procedemos a desempacarlo:

$ gunzip zlib.tar.gz
$ tar -xvf zlib.tar


En este punto obtendremos un directorio zlib-x.x.x sobre la ruta donde desempacamos.


a) Configuración del entorno de compilación.

Dentro del directorio zlib-x.x.x se encuentra el script llamado configure, el cual lo indicaremos para que automáticamente nos detecte la configuración y plataforma de nuestro sistema.

% ./configure


b)Compilación de Zlib

Paso siguiente es realizar la compilación de las librerías de Zlib simplemente tecleando make.

% make


c) Instalación de zlib

Si no se presentaron problema alguno el paso siguiente es como superusuario teclear la sentencia apropiada para la instalación de las librerías.

# make install

Si todo funciono perfecto procedemos a la instalación del software OpenSSL, descrito a continuación.


7.2. OpenSSL

OpenSSL puede ser encontrado en:
http://www.openssl.org/

Departamento de Seguridad en Cómputo
ftp://ftp.seguridad.unam.mx/Herramientas/Unix/Comunicación/Openssh/


7.2.1. Instalación de OpenSSL

La última versión disponible del OpenSSL es la Versión 0.9.6.

OpenSSL se configura y se instala casi en todas las plataformas sin problema alguno, y para poderlo implementar se deben aplicar los siguientes pasos:

Después de obtener el programa de OpenSSL procedemos a desempacarlo:

$ gunzip openssl-0.9.6.tar.gz
$ tar -xvf openssl.0.9.6.tar


En este punto obtendremos un directorio openssl-0.9.6 sobre la ruta donde desempacamos.


a) Configuración del entorno de compilación.

Dentro del directorio openssl-0.9.6 se encuentra el script llamado config, el cua automáticamente nos detectará la configuración y plataforma de nuestro sistema, si se diera el caso de no saber con que plataforma compilarlo.

% ./config


b) Configuración de acuerdo a la plataforma

Una vez detectada la plataforma del sistema, procedemos a la configuración global de nuestra herramienta, bastará con solo teclear lo siguiente:

% ./Configure PLATAFORMA

Donde Plataforma es la plataforma que config, previamente nos habia detectado. Por ejemplo si Config me detecto lo siguiente:

% > ./config
Configuring for solaris-sparc-gcc


Significa que la plataforma a configurar es solaris-sparc-gcc, por lo que teclearíamos lo siguiente:

% ./Configure solaris-sparc-gcc


c) Compilación de OpenSSL

Paso siguiente es realizar la compilación de las librerías de OpenSSL simplemente tecleando make

% make


d) Instalación de OpenSSL

Si no se presentaron problema alguno el paso siguiente es como superusuario teclear la sentencia apropiada para la instalación de las librerías.

# make install

Si todo funciono perfecto procedemos a la instalación del software OpenSSH, descrito a continuación.


7.3 OpenSSH

Una vez realizados los pasos 7.1 y 7.2 y si la compilación no presento problema alguno procederemos a la instalación del software OpenSSH.

La Ultima versión disponible del OpenSSH es la Versión 2.3.0.P1(Liberada en Noviembre del 2000).

OpenSSH se puede obtener de:
http://www.openssh.com

Departamento de Seguridad en Cómputo
ftp://ftp.seguridad.unam.mx/Herramientas/Unix/Comunicación/Openssh/

Una vez obtenido el software OpenSSH es necesario proceder a la instalación.


7.3.1 Instalación de OpenSSH

OpenSSH se configura y se instala casi en todas las plataformas sin problema alguno, y para poderlo implementar se deben aplicar los siguientes pasos:

Después de obtener el programa de OpenSSH procedemos a desempacarlo:

$ gunzip openssh-x.x.x.tar.gz
$ tar -xvf openssh-x.x.x.tar


En este punto obtendremos un directorio openssh-x.x.x sobre la ruta donde desempacamos.


a) Configuración del entorno de compilación.

Dentro del directorio openssh-x.x.x se encuentra el script llamado configure, el cual lo indicaremos para que automáticamente nos detecte la configuración y plataforma de nuestro sistema.

% ./configure


b) Compilación de OpenSSH

Paso siguiente es realizar la compilación de las librerías de OpenSSH simplemente tecleando make.

% make


c) Instalación de OpenSSH

Si no se presentaron problema alguno el paso siguiente es como superusuario teclear la sentencia apropiada para la instalación de las librerías.

# make install

Si todo funciono perfecto ya tendremos en nuestro sistema instalado el OpenSSH funcionando y trabajando de forma apropiada.

Para comprobar la existencia de este bastará con sólo teclear la sentencia:

6 % > ssh -V
SSH Version OpenSSH_2.3.0p1, protocol versions 1.5/2.0.
Compiled with SSL (0x0090600f).


Lo cual nos indica que el OpenSSH esta listo en el sistema aceptando los protocolos 1.5 y 2.0


8. Clientes de Secure Shell


La necesidad de realizar transferencias de información de forma seguras entre servidores Unix y clientes Windows y Mac ha propiciado el desarrollado programas clientes de Secure Shell para diversas plataformas entre las cuales se encuentra Windows 95/98/ME/NT/2000, MAC, etc.

8.1. Instalación de Secure Shell cliente para Windows 32 bits.


8.1.1. Secure Shell y Secure Copy v1.0.14 (Modo de Comandos, protocolo SSH1)

Después de haber obtenido el programa de Secure Shell (ssh32-014.zip) del sitio del Departamento de Seguridad en Cómputo debemos de realizar los pasos siguientes.


a) Descomrpimir el programa usando WinZip o unzip en cualquier directorio temporal.




b) Copiar las librerías (*.dll) al directorio correspondiente en Windows. En Windows 95/98/ME copiarlos al directorio C:\WINDOWS\SYSTEM”. Sí se esta usando Windows NT/2000 se deben de copiar al directorio “C:\WINNT\SYSTEM32”.

c) Copiar los programas (*.exe) al directorio donde se encuentra instalado Windows (C:\WINDOWS o C:\WINNT).

d) Utilizando la interfaz de Comandos (MS-DOS o Command Prompt) debe de crear un directorio llamado .ssh.

C:\mkdir path-del-usuario\.ssh


e) Configuración de la variable de entorno.


8.1.2 Windows 95/98/ME

Editar el archivo autoexec.bat y agregar la siguiente variable.

set HOME=C:\path-del-usuario
IMPORTANTE:
"Reiniciar el sistema"


8.1.3. Windows NT

Dentro del Panel de Control, seleccionar Sistema y pasar a la carpeta Entorno para agregar la siguiente variable.

Variable: HOME
Valor: C:\path-del-usuarios

Seleccionar Establecer y Aceptar.


8.1.4. Windows 2000

Dentro de las propiedades del icono My Computer que se encuentra localizado en el Escritorio, pasamos a la carpeta Advance y damos un click en Environment Variables. Dentro de Environment Variables agregamos una nueva variable en el panel User variables for ???.

Variable: HOME
Valor: C:\path-del-usuarios


Seleccionar OK.


f)Finalmente utilizando la interfaz de Comandos (MS-DOS o Command Prompt) debemos de ejecutar el siguiente comando para generar la llave de intercambio.

C:\ssh-keygen.exe

C:\>ssh-keygen

Initializing random number generator...

Generating p: ...........++ (distance 144)

Generating q: ....................++ (distance 292)

Computing the keys...

Testing the keys...

Key generation complete.

Enter file in which to save the key ($HOME/.ssh/identity): <ENTER>

Enter passphrase (empty for no passphrase): <Esta es mi frase>

Enter same passphrase again: <Esta es mi frase>


A partir de este momento ya podemos usar el cliente de Secure Shell y Secure Copy protocolo SSH1 en modo de comandos desde la Interfaz de Comandos (MS-DOS o Command Prompt).


8.1.5. Secure Shell Tera Term Pro v2.3 (Ambiente Gráfico, protocolo SSH1)

Después de haber obtenido el programa de Secure Shell (sshTeraterm.zip) del sitio del Departamento de Seguridad en Cómputo debemos de realizar los pasos siguientes.

a) Descomprimir el programa usando WinZip o unzip en cualquier directorio temporal.




b)Ejecutamos el programa Ttermp23.exe, el cual descomprime en un directorio temporal los archivos para instalar Tera Term Pro. De los archivos descomprimido debemos de ejecutar el programa llamado setup.exe, seleccionamos el idioma y la ubicación donde será instalado el programa (Normalmente C:\ARCHIVOS DE PROGRAMA\ TTERMPRO).




c) Ahora seleccionamos el archivo Ttssh151.zip y lo descomprimimos utilizando WinZip o unzip dentro del directorio donde se instaló Tera Term Pro (C:\ARCHIVOS DE PROGRAMA\TTERMPRO). WinZip preguntará sí se desean remplazar archivos existentes, por lo que debemos de decirle que si a todos los archivos.




d) Finalmente debemos de crear un acceso director desde el Escritorio al programa Secure Shell Tera Term Pro (C:\ARCHIVOS DE
PROGRAMA\TTERMPRO\ttssh.exe
).


De esta manera ya puede utilizar el programa cliente de Secure Shell con una interfaz gráfica agradable.


8.1.6. Secure Shell y Secure File Transfer v2.4 (Ambiente Gráfico, protocolo SSH2)

Después de haber obtenido el programa de Secure Shell (SSHWin-2.4.0.exe) del sitio de Secure Shell o de sitio del Departamento de Seguridad en Cómputo debemos de realizar los pasos siguientes.

a) Ejecutar el programa de instalación de Secure Shell cliente protocolo SSH2 (SSHWin-2.4.0.exe). Después de aceptar la licencia de uso, debemos de indicarle el directorio donde será instalado, el fólder donde se almacenarán las herramientas y finalmente los componentes que desean instalarse.






Este cliente de Secure Shell nos permitirá conectarnos a sistemas remotos con Secure Shell protocolo SSH2 y también nos permitirá realizar transferencias de archivos de forma gráfica.


9. Usando SSH


9.1. Sesión entre máquinas en UNIX

Ssh permite mantener sesiones interactivas con una máquina remota de la forma como lo hace el comando telnet.

ssh [-a] [-c idea|blowfish|des|3des|arcfour|none] [-e esc] [-i identity_file] [-l login_name] [-n] [-k] [-V] [-o] [-p port] [-q] [-P] [-t] [-v] [-x] [-X] [-C] [-g] [-L port:host:hostport] [-R port:host:hostport] hostname [command]

A continuación se describen brevemente las principales opciones del comando ssh.

-a Deshabilita el agente de autenticación
-c idea|des|3des|... Selecciona el algoritmo de cifrado utilizado para cifrar la sesión.
-e Habilita el carácter de escape para una determinada sesión (default:~).
-i identity-file Selecciona el archivo donde leerán la llave de autenticación. Por default
utiliza .ssh/identity dentro del home del usuario.
-l login-name Especifica la cuenta remota por medio de la cual se desea tener acceso.
-p port Puerto remoto de conexión.
-q Causa que todas las advertencias y mensajes de diagnostico sean suprimidos, solo los mensajes de errores fatales son desplegados.
-v Causa que ssh despliegue mensajes de depuración acerca del proceso de
conexión.
-x Deshabilita el reenvio (forwarding) de X11.
-C Compresión de todos los datos transmitidos durante la conexión



9.2. Ejemplos:

$ ssh -l micuenta maquina.remota
En este ejemplo utilizamos la opción -l para proporcionar el login con el que tendremos acceso a la máquina remota. En este caso la cuenta es micuenta y la máquina es maquina.remota.


$ ssh micuenta@maquina.remota
También podemos hacer uso del formato descrito arriba para entrar a una cuenta dentro de una máquina remota.


$ ssh maquina.remota
En caso de poseer el mismo nombre de cuenta en ambas máquinas (local y remota) es posible tener acceso a la máquina remota proporcionando solamente el nombre de la máquina.


9.3. Transferencia de archivos

Secure Shell proporciona una herramienta que permite realizar transferencia de archivos entre distintos hosts, haciendo uso de las características de ssh, este comando es scp, el cual cuenta con las siguientes opciones:

scp [-aAqrvBCL1] [-S path-to-ssh] [-o ssh-options] [-P port] [-c cipher] [-i identity]
[[user@]host1:]filename1,... [[user@]host2:]filename2



-a Habilita la estadística de transferencia de cada archivo que se transfiere.
-A Deshabilita el mensaje de estadística de transferencia
-c cipher Selecciona el algoritmo de cifrado a utilizar en la transferencia de datos.
-i identity Selecciona el archivo donde se tendrá acceso a la llave RSA.
-L Uso de puerto no privilegiado. Esta opción posee algunas restricciones como son la imposibilidad de usar rhosts o autenticación rsarhosts
-1 Forzar a scp a usar el comando scp1 por parte de host remoto, Esto puede ser necesario en el caso que el host remoto utilice scp2.
-o ssh-options Opciones que se pasarán al ssh.
-p Preserva las distintas fechas y horas de acceso, modificación y atributos del archivo original
-q Deshabilita el despliegue de estadísticas de transferencia
-r Copia recursiva de directorios completos
-v Causa que scp y ssh desplieguen mensajes de estado relacionados con el proceso de conexión, etc. Adecuado para depurar errores existentes en las conexiones realizadas.



Ejemplos:

$ scp micuenta@máquina.remota:/tmpu/archivo /copias
En este caso se copiará /tmpu/archivo localizado en la máquina remota maquina.remota al directorio /copias en la máquina local. Se utilizó la cuenta micuenta para acceder al servidor.


$ scp /copias/archivo micuenta@máquina.remota:~/bck
En este caso se realizará la copia del archivo /copias/archivo localizado en la máquina local a la máquina remota máquina.remota colocando el archivo en el directorio bck del home de micuenta.


9.4. Uso de .shosts en Secure Shell 1

Los archivos .shosts al igual que los archivos .rhosts permite realizar conexiones entre hosts sobre mecanismo de confianza, en el caso de .shosts este mecanismo de confianza se habilita sobre las características que proporciona Secure Shell, por esto, en aquellas máquinas en las cuales el uso de .rhosts es indispensable sugerimos la sustitución de todos los .rhosts por .shosts.

Para esto se requiere de realizar la siguiente serie de pasos:

1.- En la máquina cliente realizar una conexión hacia la máquina servidor que se va a hacer uso de .shosts.

$ ssh -l cuenta maquina.cliente.de.shosts
Esto es para que la máquina a la que se entrará utilizando mecanismo .shosts obtenga la llave pública de la máquina cliente.


2.- En la máquina servidor debemos de crear sobre el home del usuario el archivo .shosts conteniendo el nombre de la máquina o la IP cliente.

$ more .shots
maquina.cliente.de.shosts



3.- Desde la máquina cliente realizamos el enlace.

$ ssh -l cuenta maquina.con.shosts


NOTA: Este tipo de conexión no solicitará el password.

Este tipo de conexión presenta un riesgo, sin embargo, introduce mecanismos propios de ssh, un método con mayores niveles de seguridad se puede obtener utilizando llave RSA.


9.4.1. Tips
Sí no se lleva a cabo la conexión debemos de verificar los permisos del archivo.

$ chmod 644 .shosts




9.5. Accesos de Mecanismos de Confianza

Para realizar una conexión segura mediante mecanismos de confianza en SSH2 realice lo siguiente:

1.- Generar par de llaves dsa mediante el comando ssh-keygen.

Cliente> ssh-keygen -d
ssh-keygen -d
Generating public/private dsa key pair.
Enter file in which to save the key (/home/usuario/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/usuario/.ssh/id_dsa.
Your public key has been saved in /home/usuario/.ssh/id_dsa.pub.
The key fingerprint is:
1a:84:34:9f:d1:97:76:03:c0:c7:be:12:b0:95:1e:37 usuario@Cliente


Se generan dos archivitos en el directorio ~/.ssh/.

id_dsa.pub(publica)
id_dsa (privada)



2.- Exportar id_dsa.pub al servidor al que se realizará la conexion, e incluirlo su contenido en el archivo ~/.ssh/authorized_keys2.

Servidor>cat id_dsa.pub.Cliente >> ~/.ssh/authorized_keys2

Quedando algo así:

Servidor> cat ~/.ssh/authorized_keys2
ssh-rsa mslHXihCHvYNADHKvFPSESKHUpwF0TbpmvMesSGifqhQftn8BOU=usuario@Cliente



3.- Probar la conexión.

Cliente> ssh cuenta@Servidor
Servidor>


10. Informes


Para mayores informes con respecto a este tutorial o uso del Secure Shell, te recomendamos visitar los tutoriales en línea, preguntas mas frecuentes del SSH, disponibles en las páginas del Departamento de Seguridad en Cómputo de la UNAM.

Departamento de Seguridad en Cómputo
DGSCA, UNAM
Circuito Exterior, S/N Frente a la Fac. de Contaduría
Tel: 5622-8169
Fax: 5622-8043
http://www.seguridad.unam.mx
ftp://ftp.seguridad.unam.mx
E-Mail:seguridad@seguridad.unam.mx


Si eres víctima de una Intrusión en tus sistemas, REPORTALA!!!, El UNAM-CERT es un grupo de profesionales que te ayudara y auxiliara de forma profesional para evitar futuras intrusiones en tu sistema.

UNAM-CERT
DGSCA, UNAM
Circuito Exterior, S/N Frente a la Fac. de Contaduría
Tel: 5622-8169
Fax: 5622-8043
http://www.unam-cert.unam.mx
ftp://ftp.seguridad.unam.mx
E-Mail:unam-cert@seguridad.unam.mx

Buscar:

Login:

Password:


  Acerca pacerca
 
  Contactanos pcontacto
 
  Staff pstaff
 
  FTP pftp
 
Copyright? Todos los derechos reservados, cert.org.mx y cert.net.mx
DSC/UNAM-CERT DGSCA
Aviso Legal
Créditos
MD5: 51 00 27 60 B9 87 B3 7E EE 80 1E A7 B2 DC E7 A8
SHA1: 86 54 33 9B EA 63 85 67 1E 1D 55 49 BA 0F D1 16 11 A2 5B 37