martes, 24 de junio de 2008

Configuracion de ssh

Secure Shell o SSH es un protocolo de red que permite el intercambio de datos utilizando un canal seguro entre dos ordenadores. Encripta y proporciona confidencialidad e integridad de datos a través de una red insegura, como Internet.

(SSh trabaja por el puerto 22 tcp) y una de las herramientas que utiliza ssh para entrar en otros equipos es la aplicacion libre Putty.


Ahora pasamos a la configuracion de SSH en Linux

#apt-get install ssh


Ahora pasaremos a la configuracion de ssh en el archivo de configuracion por defecto.

#pico /etc/ssh/ssh_config


Ahora veremos algunas opciones del archivo de configuracion estando dentro del archivo especificaremos en la linea:
port 22

Este seria el puerto por defecto por el que funciona ssh pero si queremos lo podemos cambiar por otro puerto


Luego en la linea permitRootLogin que es para permitir el acceso directo al usuario root se recomienda que este en no porque cualquier usuario que se loguee quedara como root y tendra permiso para modificar cualquier cosa dentro de nuestro equipo

PermitRootLogin no


La linea x11Forwarding nos da la opcion de permitir o denegar la ejecucion remota de una interface grafica.

x11Forwarding yes

Para que nuestro servidor pida una llave al ingresar el ususario debemos descomentar la linea:

AuthorizedKeysFile /root/.ssh/authorized_keys

Esa ruta es donde van a ir almacenadas las llaves publicas de los usuarios .


Luego debemos descomentar la linea PasswordAuthentication y cambiar de yes a no esto se hace para que no pida clave sino la llave del usuario

PasswordAuthentication yes

Despues debemos copiar la llave del usuario que va a ingresar al servidor ssh en la ruta que le dimos en la linea AuthorizedKeysFile
(la ruta es /root/.ssh/authorized_keys)

cp /root/.ssh/id_dsa.pub /root/.ssh/authorized_keys


id_dsa.pub es la llave publica del usuario.



Por ultimo reiniciaremos el servicio

/etc/init.d/ssh restart

Configuracion del cliente SSH

primero instalaremos el cliente ssh

#apt-get install openssh-client

Luego crearemos las llaves del usuario con el comando
#ssh -keygen -t dsa

Debemos copiar la llave publica al archivo donde se alojan las llaves que es /root/.ssh/authorized_keys

cp /root/.ssh/id_dsa.pub /root/.ssh/authorized_keys

Ya podemos provar si la configuracion esta buena accediendo al servidor ssh

ssh 10.3.8.154 (es la ip del servidor ssh)


En esta imagen podemos ver que nos pudimos comunicar al servidor SSH

Analisis del trafico ssh

Acontinuacion veremos como es la conexion ssh cliente servidor


El cliente hace una peticion ssh con un SYN al servidor
El servidor le responde con un SYN,ACK
Vuelve a responder el cliente con un ACK
El servidor responde arrojando datos del protocolo y del equipo.
El cliente hace lo mismo, arroja informacion de su equipo y demas.
Luego el cliente inicia el intercambio de llaves del servidor.
El servidor responde con un ACK, y inicia en intercamo de llaves del servidor.
Luego establecen un algoritmo de encriptacion, crean unas nuevas llaves para crear el tunel ssh y luego inician una comunicacion encriptada.




Para finalizar la conexion ssh el cliente le manda una peticion de FIN, ACK al servidor el servidor le responde con otro FIN, ACK y el cliente le confirma con un ACK.



Este documento fue compartido del blog de Cristian Ceballos.

No hay comentarios: