SSH Laboratory

download SSH Laboratory

of 24

description

This is a college laboratory based on the uses of SSH protocol. It contains both theory and practice, and can be easy followed with the detailed explanations and be worked in order to gain the maximum knowledge from it.It is recommended to use if in Linux (Ubuntu 14.04), although it can be translated to another Linux distributions.

Transcript of SSH Laboratory

  • Acceso Remoto: SSH

    Prof. Manuel CastilloAdministracin de Redes

    Escuela Profesional de Ciencias de la ComputacinFacultad de Ciencias

    Universidad Nacional de Ingeniera

  • Introduccin (I)

    Secure SHell: Permite crear conexiones seguras (cifradas) entre dos

    ordenadores, permitiendo reemplazar: Rlogin. Telnet. Rcp. Ftp. ...

  • Introduccin (II) SSH proporciona:

    Verificacin de la identidad del servidor a partir de la primera conexin. Transmisin de toda la informacin cifrada con encriptacin fuerte.

    Dificultad para descifrar la misma por los no autorizados. Posibilidad de reenviar aplicaciones inseguras, como X11, POP3, etc.,

    mediante el reenvo de puerto. Versiones de SSH:

    Versin 1: Algoritmos de encriptacin patentados. Agujero de seguridad que podra permitir insertar datos falsos.

    Versin 2.

  • Establecimiento de la conexin (I) Una conexin SSH se establece en tres

    pasos: Creacin de una capa de transporte segura

    (TLS). Autenticacin del cliente contra el servidor. Uso de la conexin establecida por los

    servicios del cliente.

  • Establecimiento de la conexin (II) Creacin de una capa de transporte segura:

    Verifica la identidad del servidor. Cifra y descifra la informacin. Asegura la integridad de la informacin. Permite opcionalmente comprimir la informacin.

    Se produce una negociacin con los pasos: Intercambio inicial de claves. Seleccin del algoritmo de clave pblica. Seleccin del algoritmo de clave privada. Seleccin del algoritmo de autenticacin de mensajes. Seleccin del algoritmo de hash utilizado.

  • Establecimiento de la conexin (III) En la creacin de la capa de transporte segura:

    El cliente puede verificar (a partir de la primera vez) la identidad del servidor.

    Se crean dos valores: Un valor de hash para intercambio. Un valor de secreto compartido.

    Estos valores permiten enviar la informacin de forma segura.

    Cada cierta cantidad de datos se cambian los dos valores.

  • Establecimiento de la conexin (IV) Autenticacin del cliente contra el servidor:

    Inicialmente el servidor informa al cliente de los mtodos disponibles.

    El cliente selecciona uno de ellos y se autentica ante el servidor. Usuario/contrasea. Intercambio de claves pblica/privada. ...

    Mtodos a priori inseguros pueden usarse al ir cifrados por TLS.

  • Establecimiento de la conexin (V) Uso de la conexin establecida:

    La conexin entre cliente y servidor se multiplexa en canales para: Enviar mltiples sesiones entre terminales diferentes. Reenviar conexiones X11. ...

    Cada canal: Posee su propio control de flujo. Permite un tamao de paquete diferente. Permite enviar diferente tipo de datos.

  • Configuracin del servidor (I) El servidor de SSH:

    Es el programa /usr/sbin/sshd. Su fichero de configuracin por defecto es

    /etc/ssh/sshd_config. Puede modificarse utilizando la opcin -f en el

    arranque. Si no existe el fichero de configuracin el

    servidor: Muestra un mensaje de error. Finaliza su ejecucin (no arranca).

  • Configuracin del servidor (II) Las opciones de configuracin del servidor

    se dividen en: Opciones generales. Opciones de configuracin de acceso. Opciones de usuarios y grupos. Opciones de reenvo de conexiones X11. Otras opciones de configuracin.

    Existen opciones solo validas para la versin 2 del protocolo.

  • Opciones Generales

  • Opciones de configuracin de acceso (I)

  • Opciones de configuracin de acceso (I)

  • Opciones de usuarios y grupos

  • Opciones de usuarios y grupos

  • Otros ficheros del servidor Existen en /etc/ssh otros ficheros usados por el

    servidor: moduli (grupo Diffie-Hellman para intercambio de

    claves). ssh_host_key (Clave privada RSA para SSHv1). ssh_host_key.pub (Clave pblica RSA para SSHv1). ssh_host_dsa_key (Clave privada DSA para SSHv2). ssh_host_dsa_key.pub (Clave pblica DSA para SSHv2). ssh_host_rsa_key (Clave privada RSA para SSHv2). ssh_host_rsa_key.pub (Clave pblica RSA para SSHv2).

  • Creacin de claves para acceso remoto (I) El servidor puede permitir la autenticacin

    mediante el uso de un par de claves pblica/privada.

    Las claves se crean mediante:ssh-keygen -t

    Donde rsa1 para RSA y SSHv1. dsa para DSA y SSHv2. rsa para RSA y SSHv2.

  • Creacin de claves para acceso remoto (II) Los ficheros se crean con los nombres:

    La clave pblica que deseamos utilizar debe aadirse en el fichero ~/.ssh/authorized_keys del usuario en el servidor remoto.

  • Configuracin del cliente (I) El cliente de SSH:

    Es el programa /usr/bin/ssh. Su fichero de configuracin por defecto es

    /etc/ssh/ssh_config. Puede modificarse si el usuario posee un

    fichero ~/.ssh/config. Los ordenadores cuya identidad conoce el

    cliente para el usuario (y puede verificar) se encuentran en

    ~/.ssh/known_hosts.

  • Configuracin del cliente (II)

  • Uso del cliente

    Uso:ssh {[-l usuario] ,[usuario@]} [comando]

    Donde: es el servidor donde conectarnos. usuario es el usuario como el que queremos

    conectarnos. El mismo del ordenador si no se especifica.

    comando es el comando a ejecutar. Se obtiene una shell si no se especifica.

  • Transferencia de archivos

    Dos posibilidades: scp (sustituye a rcp). sftp (sustituye a ftp).

    Uso de scp: scp fichero_local

    usuario@ordenador_destino:/fichero_remoto scp usuario@ordenador_origen:/fichero_remoto

    fichero_local scp /descargar/* [email protected]:/descargados/

    Uso de sftp: sftp usuario@ordenador

  • Reenvo de un puerto (I)

    El comando de reenvo de un puerto es: ssh -f -N -L puerto_local:ordenador_remoto:puerto_remoto

    usuario@ordenador_servidor Donde:

    puerto_local es el puerto de nuestro ordenador que deseamos reenviar a travs de SSH.

    ordenador_remoto:puerto_remoto son el ordenador y puerto al que deseamos conectarnos mediante el reenvo de SSH.

    usuario@ordenador_servidor es el ordenador a travs del cual realizamos el reenvo del puerto.

  • Reenvo de un puerto (I)

    Ejemplos: ssh -f -N -L 1100:fc.uni.edu.pe:110 fc.uni.edu.pe ssh -f -N -L 1100:fc.uni.edu.pe:110 ecc.fc.uni.edu.pe

    El reenvo de puertos: Es til pues permite asegurar servicios entre clientes y

    servidores, utilizando incluso otros servidores. Puede ser un problema de seguridad por:

    Los cortafuegos suelen permitir conexiones por el puerto 22 (SSH).

    Si un cliente que utiliza el reenvo de puertos se ve comprometido, los servicios reenviados estarn comprometidos en el servidor.

    Diapositiva 1Diapositiva 2Diapositiva 3Diapositiva 4Diapositiva 5Diapositiva 6Diapositiva 7Diapositiva 8Diapositiva 9Diapositiva 10Diapositiva 11Diapositiva 12Diapositiva 13Diapositiva 14Diapositiva 15Diapositiva 16Diapositiva 17Diapositiva 18Diapositiva 19Diapositiva 20Diapositiva 21Diapositiva 22Diapositiva 23Diapositiva 24