Capítulo 11. Protocolo SSH

Este capítulo cubre los beneficios del protocolo SSH™, la secuencia de eventos que ocurre cuando se efectúa una conexión segura a un sistema remoto, las diferentes capas de SSH, y los métodos para asegurarse que los usuarios que se conectan a su sistema usen SSH.

Los métodos comunes para iniciar sesiones en otro sistema en modo remoto a través de una shell (telnet, rlogin, o rsh) o copiar ficheros entre hosts (ftp o rcp) resultan inseguros y deberían ser evitados. En su lugar, debería sólo conectarse a un host remoto por medio de una shell segura o una red privada virtual cifrada. Si usa métodos seguros para iniciar sesiones en otros sistemas remotamente, disminuirá los riesgos de seguridad ya sea para su sistema como para el sistema remoto.

Introducción

SSH (o Secure SHell) es un protocolo para crear conexiones seguras entre dos sistemas. Usando SSH, la máquina del cliente inicia una conexión con una máquina de servidor. SSH proporciona los siguientes tipos de protección:

El servidor también obtiene beneficios por parte de SSH, especialmente si desempeña una cierta cantidad de servicios. Si usa el reenvío por puerto, los protocolos que en otros casos serían considerados inseguros (POP, por ejemplo) se pueden cifrar para garantizar comunicación segura con máquinas remotas. SSH hace relativamente sencilla la tarea de cifrar tipos diferentes de comunicación que normalmente se envía en modo inseguro a través de redes públicas.

Red Hat Linux 7.1 contiene los paquetes de servidor (openssh-server) y cliente (openssh-clients) OpenSSH, al igual que el paquete OpenSSH general (openssh) que debe ser instalado para que cualquiera de los dos funcione. Consulte Official Red Hat Linux Customization Guide para obtener las instrucciones para instalar y desplegar OpenSSH en su sistema Red Hat Linux.

Los paquetes OpenSSH requieren del paquete OpenSSL (openssl). OpenSSL instala varias bibliotecas criptográficas importantes que sirven para que OpenSSH proporcione comunicaciones cifradas. Debe instalar el paquete openssl antes de instalar cualquiera de los paquetes OpenSSH.

Una gran cantidad de programas de cliente y servidor puede usar el protocolo SSH, incluyendo muchas aplicaciones open source a disposición gratuita. Hay varias versiones de cliente diferentes de SSH a disposición para casi todos los sistemas operativos más importantes en uso actualmente. Aún si los usuarios que se conectan a su sistema no ejecutan Red Hat Linux, de cualquier manera pueden encontrar y usar un cliente de SSH nativo para su sistema operativo.

¿Porqué usar SSH?

Entre las amenazas al tráfico de red están incluidos el husmeo de paquete y la falsificación de DNS e IP[2] y la promulgación de información de ruteo falso. En términos generales, estas amenazas se pueden catalogar del siguiente modo:

  • Interceptación de la comunicación entre dos sistemas — bajo esta hipótesis, existe un tercero en algún lugar de la red entre entidades en comunicación que hace una copia de la información que pasa entre ellas. La parte interceptora puede interceptar y conservar la información, o puede modificar la información y luego enviarla al recipiente al cual estaba destinada.

  • Personificación de un determinado host — con esta estrategia, un sistema interceptor finge ser el recipiente a quien está destinado un mensaje. Si funciona la estrategia, el cliente no se da cuenta del engaño y continúa a comunicar con el interceptor como si su mensaje hubiese llegado a su destinación exitosamente.

Ambas técnicas causan que se intercepte información, posiblemente con propósitos hostiles. El resultado puede ser catastrófico, ya sea que ese propósito se alcance por medio de escuchar todos los paquetes en un LAN o por un servidor DNS sometido a un hack que apunta hacia un host duplicado intencionalmente.

Si se utiliza SSH para inicios de sesión de shell remota y para copiar ficheros, estas amenazas a la seguridad se pueden disminuir notablemente. La firma digital de un servidor proporciona la verificación para su identidad. No es posible utilizar la comunicación entera entre los sistemas si ha sido interceptada, porque cada uno de los paquetes está cifrado. No servirán de nada los intentos de falsificar la identidad de cualquiera de los dos lados de la comunicación ya que cada paquete está cifrado por medio de una clave conocida sólo por el sistema local y el remoto.

Notas

[1]

X11 se refiere al sistema de visión por ventanas X11R6, tradicionalmente llamado X. Red Hat Linux contiene XFree86, un sistema X Window open-source muy conocido, que se basa en X11R6.

[2]

La falsificación comúnmente significa aparecer ante los demás como un determinado sistema cuando en realidad no se es ese sistema