implementaciÓn mÉtodos de autenticaciÓn en ssh_johana cano hernÁndez_38110

24

Upload: gotita55

Post on 03-Jul-2015

1.301 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: IMPLEMENTACIÓN MÉTODOS DE AUTENTICACIÓN EN SSH_JOHANA CANO HERNÁNDEZ_38110
Page 2: IMPLEMENTACIÓN MÉTODOS DE AUTENTICACIÓN EN SSH_JOHANA CANO HERNÁNDEZ_38110

INTRODUCCIÓN

1. Conceptos previos

2. Implementación método de autenticación con llaves públicas en SSH

CONCLUSIONES

Page 3: IMPLEMENTACIÓN MÉTODOS DE AUTENTICACIÓN EN SSH_JOHANA CANO HERNÁNDEZ_38110

En la actualidad existen múltiples protocolos y aplicaciones que nos permiten

administrar equipos remotamente, esto es muy importante y necesario ya que

podemos ahorrar tiempo y distancia dando soporte y solucionando posibles

problemas que se estén presentando en los ordenadores que se puedan encontrar a

nuestro cargo como Administradores de Red.

Para este caso vamos a implementar la aplicación y el protocolo SSH (Security Shell

intérprete de órdenes segura), explicando los diferentes métodos de autenticación

con los cuales podemos establecer una sesión en un equipo estando remotamente.

SSH dispone de varios métodos para verificar la identidad de un usuario remoto, uno

de ellos es el uso de contraseñas de usuarios, pero otro de los métodos se basa en

la autenticación RSA, en donde se dispone de un juego de llaves privada/pública

que garantiza la identidad de un usuario intentando conectarse al equipo remoto.

Page 4: IMPLEMENTACIÓN MÉTODOS DE AUTENTICACIÓN EN SSH_JOHANA CANO HERNÁNDEZ_38110

SSH (Secure Shell intérprete de órdenes segura) es una herramienta utilizada

para administrar máquinas de manera remota para enviar ficheros de una máquina

a otra, ejecutar comandos, hacer copias, entre otras tareas; nos permite manejar

por completo la computadora mediante un intérprete de comandos a través de una

conexión segura.

Para establecer una conexión por SSH utilizando usuario y contraseña, tiene la

siguiente sintaxis:

ssh [usuario]@[dirección IP remota]

Password …

Page 5: IMPLEMENTACIÓN MÉTODOS DE AUTENTICACIÓN EN SSH_JOHANA CANO HERNÁNDEZ_38110

El algoritmo de cifrado para SSH depende de la versión de su protocolo, en la

versión 1 (SSH1) utiliza algoritmos de cifrado como DES, Triple DES, IDEA, entre

otros. En su versión 2 (SSH2) también utiliza el algoritmo de cifrado como Triple

DES, entre otros.

RSA, es un sistema criptográfico de clave pública, este algoritmo generalmente

consta de tres pasos, generación de claves, cifrado y descifrado.

DSA (Digital Signature Algorithm - Algoritmo de Firma digital), sirve para

firmar y no para cifrar información. Una desventaja de este algoritmo es que

requiere mucho más tiempo de cómputo que RSA, pero es mucho mas seguro ya

que es mucho mas complejo.

Page 6: IMPLEMENTACIÓN MÉTODOS DE AUTENTICACIÓN EN SSH_JOHANA CANO HERNÁNDEZ_38110

CLAVE PRIVADA, para este caso la llave privada es la que

nos permite autenticarnos en el equipos remoto, esta nos permite

cifrar el mensaje y se debe encontrar en un archivo definido para

poder implementar este sistemas de autenticación por medio de

clave publica.

CLAVE PRIVADA, esta llave se encontrara guardada en el equipo en el

cual creamos las llaves originalmente, es decir, en donde se generaron las

llaves; nos permite descifrar el mensaje.

Page 7: IMPLEMENTACIÓN MÉTODOS DE AUTENTICACIÓN EN SSH_JOHANA CANO HERNÁNDEZ_38110

1. Para este primer paso nos vamos a dirigir al equipo en el cual vamos a

generar las llaves, estando allí lo primero que tenemos que hacer es

configurar el servidor de SSH para que acepte trabajar con llaves públicas,

nos dirigimos a la ruta /etc/ssh/sshd_config, lo abrimos con un editor de

textos y corregimos los valores de las siguientes opciones relacionadas con

las llaves públicas:

vim /etc/ssh/sshd_config

Page 8: IMPLEMENTACIÓN MÉTODOS DE AUTENTICACIÓN EN SSH_JOHANA CANO HERNÁNDEZ_38110
Page 9: IMPLEMENTACIÓN MÉTODOS DE AUTENTICACIÓN EN SSH_JOHANA CANO HERNÁNDEZ_38110

La primera opción (RSAAuthentication) sirve para indicar cuando se permitirá

autenticación RSA, está opción esta habilitada por defecto, y en el ejemplo está

comentada porque sólo sirve para la versión 1 del protocolo SSH.

La segunda opción (PubkeyAuthentication) es la que especifica si se podrán usar

llaves públicas para demostrar la autenticidad de un usuario. Si su valor es “yes”,

entonces se podrán emplear las llaves públicas, si por el contrario su valor es “no”,

entonces el uso de llaves públicas quedará prohibido.

La tercera opción (AuthorizedKeysFile) especifica el archivo que contiene las llaves

públicas empleadas para la autenticación de los usuarios. Por defecto suele ser el

archivo .ssh/autorized_keys, dentro de la carpeta personal de cada usuario, es decir,

puede estar en home del usuario al cual nos vamos a conectar por medio de las claves.

Finalmente, guardamos los cambios para que estos sean efectivos, será necesario

reiniciar el servidor de SSH.

Page 10: IMPLEMENTACIÓN MÉTODOS DE AUTENTICACIÓN EN SSH_JOHANA CANO HERNÁNDEZ_38110

2. Para poder crear nuevas llaves privadas y sus correspondientes llaves

públicas, disponemos de una herramienta llamada “ssh-keygen”, esta

herramienta puede crear llaves RSA o DSA .

o -t, especifica que tipo de llave vamos a crear, este parámetro se emplea

seguido del tipo de llave: "RSA" o "DSA“, para este caso utilizaremos el

algoritmo DSA, pero si deseamos implementar el otro se hace el mismo

procedimiento.

Page 11: IMPLEMENTACIÓN MÉTODOS DE AUTENTICACIÓN EN SSH_JOHANA CANO HERNÁNDEZ_38110
Page 12: IMPLEMENTACIÓN MÉTODOS DE AUTENTICACIÓN EN SSH_JOHANA CANO HERNÁNDEZ_38110

Al ejecutar el comando anterior nos piden unos datos:

o El primero, en especifica la ruta donde salvar la llave privada, si pulsamos Enter

estamos dejando el nombre por defecto “id_dsa” que es la llave privada y “id_dsa.pub”

que seria la llave pública, pero por el contrario si especificamos un nombre (johana)

quedaría identificada con el mismo y por consiguiente se salvará en la ruta por defecto

(la indicada entre paréntesis).

o Los siguientes dos parámetros que pide son la frase “passphrase” ó clave

repitiéndola para evitar que hayan errores en la misma, se puede emplear cualquier

carácter (letras, números, signos de puntuación, espacios), esta frase se utiliza para

mayor seguridad a la hora de establecer la conexión con las llaves. La passphrase se

puede cambiar con el comando ssh-keygen -p.

Page 13: IMPLEMENTACIÓN MÉTODOS DE AUTENTICACIÓN EN SSH_JOHANA CANO HERNÁNDEZ_38110

NOTA: En caso de no introducir ninguna frase, la llave privada quedará sin

encriptar, lo cual podría ser útil para realizar algunas automatizaciones como podría

ser el realizar copias de seguridad, pero, para uso habitual, se desaconseja dejar

las llaves privadas sin encriptar por el peligro que puede representar que estas

sean robadas.

o Después, el ssh-keygen muestra con que nombre se ha salvado la llave privada

y la llave pública, esta ultima tiene el mismo nombre de archivo con la extensión

.pub añadida al final.

o En la última línea imprime una huella dactilar que sirve para identificar la llave

que acabamos de crear, seguida de un comentario que puede servir para identificar

la llave pública.

Page 14: IMPLEMENTACIÓN MÉTODOS DE AUTENTICACIÓN EN SSH_JOHANA CANO HERNÁNDEZ_38110

Debemos mantener la llave privada secreta, por defecto ssh-keygen establecerá los

permisos del archivo con esta llave para que sólo el dueño pueda leerla y modificarla.

Por el contrario la llave pública podrá ser leída por cualquier usuario.

3. Para poder autenticarnos en un equipo remoto con nuestra llave privada, lo único

que tendremos que hacer es añadir nuestra llave pública en el archivo

.ssh/authorized_keys dentro del directorio personal del usuario al que queremos

acceder (generalmente es /home/usuario/.ssh/authorized_keys).

Ahora debemos enviar nuestra llave pública al equipo remoto, en caso de que

podamos acceder al mismo usando SSH con contraseña de usuario para

autenticarnos, sería mediante SCP (Secure Copy) que es un medio de

transferencia segura de archivos informáticos entre un host local y otro remoto o

entre dos hosts remotos. Por ultimo nos dirigimos a la maquina remota

(192.168.10.162) e ingresamos al directorio “tmp/” ó bien podemos conectarnos

por SSH para verificar que efectivamente la llave publica a sido copiada allí.

Page 15: IMPLEMENTACIÓN MÉTODOS DE AUTENTICACIÓN EN SSH_JOHANA CANO HERNÁNDEZ_38110
Page 16: IMPLEMENTACIÓN MÉTODOS DE AUTENTICACIÓN EN SSH_JOHANA CANO HERNÁNDEZ_38110

4. Luego vamos a crear el directorio .ssh en el home del usuario con el cual

nos vamos a autenticar, en caso de que no exista lo creamos con el

comando mkdir y debemos determinar que este directorio pertenezca al

usuario de ese home, para añadir la llave pública al archivo

home/johana/.ssh/authorized_keys, como lo podemos observar a

continuación.

Page 17: IMPLEMENTACIÓN MÉTODOS DE AUTENTICACIÓN EN SSH_JOHANA CANO HERNÁNDEZ_38110
Page 18: IMPLEMENTACIÓN MÉTODOS DE AUTENTICACIÓN EN SSH_JOHANA CANO HERNÁNDEZ_38110

NOTA: El servicio ssh ya viene configurado para trabajar con

autenticación por medio de llaves asimétricas (usa el par de claves

“privada y pública” para el envío de mensajes), como se pudo

observar anteriormente en el archivo de configuración busca el

directorio /home/usuario/.ssh/ el archivo authorized.keys y por medio

de este autenticar al usuario que se intente comunicar con el por medio

de la llave privada.

5. Ahora vamos a copiar la llave publica en el archivo authorized.keys

ubicado en la ruta del usuario, este archivo también debe

pertenecer al usuario de ese home, y reiniciamos el servicio de

SSH.

Page 19: IMPLEMENTACIÓN MÉTODOS DE AUTENTICACIÓN EN SSH_JOHANA CANO HERNÁNDEZ_38110
Page 20: IMPLEMENTACIÓN MÉTODOS DE AUTENTICACIÓN EN SSH_JOHANA CANO HERNÁNDEZ_38110
Page 21: IMPLEMENTACIÓN MÉTODOS DE AUTENTICACIÓN EN SSH_JOHANA CANO HERNÁNDEZ_38110

6. Ahora vamos a establecer la conexión con el host remoto para

probar que efectivamente la Autenticación de claves publicas esta

en función. La próxima vez que nos conectemos nuevamente al

host remoto, en lugar de pedirnos la contraseña del usuario, nos

pedirá la frase clave con la que la encriptamos nuestra llave

privada. Es importante mencionar que nos podemos seguir

autenticando de las dos maneas, por medio de claves publicas y

como viene por defecto, con usuario y contraseña.

Page 22: IMPLEMENTACIÓN MÉTODOS DE AUTENTICACIÓN EN SSH_JOHANA CANO HERNÁNDEZ_38110
Page 23: IMPLEMENTACIÓN MÉTODOS DE AUTENTICACIÓN EN SSH_JOHANA CANO HERNÁNDEZ_38110
Page 24: IMPLEMENTACIÓN MÉTODOS DE AUTENTICACIÓN EN SSH_JOHANA CANO HERNÁNDEZ_38110

En la implementación de llaves publicas para la autenticación con

SSH conectándonos a un host remoto, puede ser mucho mas seguro ya

que si no poseemos las llaves que nos permiten comunicarnos no es

posible establecer una sesión en el host remoto para realizar tareas

especificas.

SSH usa técnicas de cifrado que hacen que la información que viaja

por el medio de comunicación vaya de manera no legible y ninguna

tercera persona pueda descubrir el usuario y contraseña de la conexión

ni lo que se escribe durante toda la sesión.