SSH Parte 2

Buenas de nuevo, vamos a terminar la pequeña serie sobre el protocolo-aplicación SSH…

Me ha gustado mucho la manera de explicar el método de conexión entre cliente-servidor por parte de la página de Flu-project, así que cito a continuación:

El Handshake son todas las acciones que se realizan entre el cliente y el servidor para verificar que los dos son quien dicen ser y establecer una clave de cifrado simétrica que pueda utilizarse para generar un canal de comunicaciones seguro.

En primer lugar, el cliente manda un mensaje “Hello” al servidor junto con la lista de algoritmos de firma y cifrado que soporta.

El servidor, contestará con el envío de la clave pública de host con su identidad es decir, la Host Key, los algoritmos que van a utilizar en la comunicación, si es que el cliente soporta alguno de los permitidos por el servidor, junto la parte pública de una clave RSA de sesión que se genera cada cierto tiempo.

El cliente verificará la identidad del servidor comprobando la host key recibida con la información almacenada en la carpeta de host conocidos. Una vez verificado generará, basándose en los algoritmos marcados por el servidor, una clave de cifrado simétrico de sesión de 256 bits que enviará al servidor cifrada con la clave pública de sesión recibida.

El servidor, después de este paso, enviará una copia al cliente con todo lo acordado ya cifrado simétricamente. Una vez el canal esta creado, ya pueden intercambiar datos de forma segura.

imagen
Conexión

Un posible ataque MITM sería establecer la versión 1 del protocolo y el algoritmo de cifrado como texto plano.

Bueno, seguimos ahora examinándo un poco el archivo de configuración, nos movemos a /etc/ssh y abrimos sshd_config con permisos de admin.

Destacar que cada vez que se modifica un fichero de configuración hay que reiniciar el servicio, por ejemplo con:
/etc/init.d/ssh restart

Vamos a comentar algunas lineas de interés:

Port: podemos cambiar el puerto de la conexión al servidor, lo que haría que un posible atacante que escanee muchas máquinas testeando si hay algún servicio disponible en el puerto 22 (por defecto) no pueda encontrarnos tan facilmente ;).

Si cambiamos de puerto la conexión pasaría a tener un parámetro más
ssh -p puerto usuario@ip

PermitRootLogin: podemos permitir que un cliente se loguee como root (hay que tener cuidado con esta opción xD)

Número máximo de intentos por logueo: normalmente pocos, ya que si sabes la pass no necesitarás mucho y evitamos posibles ataques de fuerza bruta.

Aparte de estas, el fichero cuenta con muchas más lineas de configuración que conviene trastear, si queremos hacer efectiva una línea solo quitamos el carácter # (comentario).

Más cosas…

Una vez que instalamos openssh, el servidor generará una clave RSA (una pública y otra privada, autofirmadas) situadas en /etc/ssh, la que más nos interesará será:
ssh_host_rsa_key
ssh_host_rsa_key.pub

Es la utilizada para el algoritmo RSA en la versión 2

Si tuvieramos una clave creada previamente, por ejemplo con GNUPG podríamos sustituirla por la nuestra para la verificación de identidad, pero no creo que sea necesario 😛

Podemos distribuir la clave publica de nuestro servidor a diferentes clientes, esta clave se guardaría en el archivo ~./ssh/known_hosts, al conectarnos, se comprueba si tenemos la clave del servidor, si no es así, nos dará un mensaje de aviso (ya nos lo dío al conectarnos por primera vez en la parte 1 de esta serie :P)

Así damos por terminada esta mini serie, si necesitas más información visita la página de Flu-project

Anuncios

Acerca de Darkvidhck

Estudiante de ingeniería informática, haciendo mis pinitos como desarrollador web, programador, gamer y Linuxero. Aficionado a la seguridad. Eterno viciado al conocimiento.
Esta entrada fue publicada en Seguridad y etiquetada , . Guarda el enlace permanente.

Una respuesta a SSH Parte 2

  1. Pingback: SSH: Warning: Remote host identification has changed | EncodingTheCode

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s