SECURE+SHELL+SSH

SECURE SHELL SSH


 * CUAL ES LA IMPORTANCIA DEL SSH EN LOS SISTEMAS LINUX
 * QUE ES UNA LLAVE PUBLICA
 * QUE CARACTERISTICAS DEBE TENER UNA LLAVE
 * QUE TIPOS DE DISTRIBUCIONES EXISTEN DE SSH, REALICE UN MAPA CONCEPTUAL AL RSPECTO
 * EXPLIQUE COMO SE DESCARGA Y QUE FORMAS DE INSTALACION HAY PARA EL SSH
 * COMO SE CONFIGURA SSHD
 * QUE ES UN TUNEL SEGURO
 * COMO SE CREA UN TUNEL


 * ALGO SOBRE SUS ORIGENES:**

Antes de inicar con con la costruccion de este trabajo es importante conocer el origen de ssh para ello se colocorauna pequeña presentacion de esta interesante historia:

media type="custom" key="3882629"

SSH es un protocolo que sirve para acceder de forma segura a máquinas remotas por medio de la red, permitíendonos ejecutar diferentes comandos en una máquina remota e inclusive correr programas gráficos a través de un Servidor destinado para dichos fines. Tambien es conocido como una aplicacion cliente servidor que utiliza el puerto 22 del TCP. En pocas palabras como secure shell es un programa de login, la importancia de este se debe a que nos permite transmitir los datos de manera mas segura, entre estos datos se encuentran passwords, sesión de login, ficheros, comandos de administración, etc. Tambien el SSH encripta por medio de una RSA de clave publica(public key criptography) para la conexión y la autenticación entre cliente y servidor, permitiendo que las comunicaciones sean dificiles de traducir para usuarios externos.
 * CUAL ES LA IMPORTANCIA DEL SSH EN LOS SISTEMAS LINUX:**

La llave publica, como su nombre lo indica es una manera de autentificacion de una entidad y cifrado de mensajes en donde el propietario de la llave privada seria el unico en descifrar los mensajes del cliente y de otros usuarios, esta llave publica tiene que residir en cada uno de los servidores a los que se quiera conectar, este metodo es posible realizando los siguientes pasos: El usuario utiliza su clave privada para firmar el id de sesión que le envía el servidor al conectarse, con el fin de que pueda ser autentificado. Para crear una llave publica y privada se ejecuta el comando //ssh-keygen// en la maquinas locales. Se crearan 2 claves una privada /home/usuario/.ssh/id_rsa y otra publica /home/usuario/.ssh/id_rsa.pub del tipo RSA con una longitud de 2048 bits.
 * QUE ES UNA LLAVE PUBLICA:**


 * **QUE CARACTERISTICAS DEBE TENER UNA LLAVE:**
 * Con la llave pública se puede cifrar mensajes, y descifrarlos con la llave privada. Así el propietario de la clave privada sería el único que podría descifrar los mensajes, pero cualquier persona que conozca la clave pública podría enviarlos en forma privada.


 * QUE TIPOS DE DISTRIBUCIONES EXISTEN DE SSH, REALICE UN MAPA CONCEPTUAL AL RESPECTO:**






 * EXPLIQUE COMO SE DESCARGA Y QUE FORMAS DE INSTALACION HAY PARA EL SSH**:

Para la instalacion del secure shell en una plataforma unix es necesario verificar que distribucion de linux se va a utilizar, ya que existen algunas diferencias en los comandos de instalacion de paquetes por consola. A continuacion se explicara como se instala el ssh en Mandriva linux para tener una idea de los procesos de instalacion en diferentes distribuciones.
 * INSTALACION Y CONFIGURACION DE SSH EN MANDRIVA LINUX**

Para empezar se usa el comando "urpmi" con este comando se descarga desde el servidor ftp mandriva el archivo openssh.rpm, el cual se descomprime y se instala en la maquina huesped. La forma correcta de usar el comando es de la sigueinte manera:

[ root@Kyon ]:~# urpmi openssh

Este comando instala los servicios "openssh-client" y "openssh-server". Para este caso se manipulara "openssh-server" pues se va a trabajar desde el lado del servidor, por esta razon se entra a configurar un archivo llamado "openssh.conf", que se encuentra en etc/ssh, esto es necesario para darle algunas condiciones de seguridad para proteger del acceso por usuario y para posibles ataques externos.

Durante la configuracion se recomienda que se cambien el puerto, puesto que algunos Scrips y "robots" atacan directamente el puerto 22 (puerto con el que trabaja este servicio). Para este proposito se debe editar la siguiente linea dentro de el archivo "openssh.conf".

Port 9551 

Tambien se recomienda configurar la opcion de autentificacion, la cual mide la cantidad de segundos que tiene un usuario remoto para hacer login en el servidor, es preferible dejar poco tiempo, pues se entiende que el usuario conoce bien su login y password, por lo tanto, no necesitara mucho tiempo para loggearse, por otra parte se evitara los ataques de algunos scripts que se aprovechan de ese tiempo de espera. La linea a configurar seria la siguiente:

LoginGraceTime 15

Tambien se especifica el protocolo version 2

Protocol 2

Existe la posiblidad de indicar que usuarios podrna conectarse al servicio ssh, de esta manera se puede restringir el acceso a los usuarios deseados, esta restriccion tambien se puede realizar a nivel de direccion ip  AllowUsers nuestra_cuenta cuenta_usuario
 * 1) config de usuarios


 * 1) configuracion usuarios con ip

AllowUsers nuestra_cuenta cuenta_usuario@ip_usuario. 

Para evitar ataques de scripts que buscan las contraseñas basandose en la fuerza bruta, es decir, buscando la contraseña a prueba y error, seria conveniente darle una cantidad de intentos al usuario para logearse. Se supone que el usuario conoce su contraseña, por ende no necesita mas de dos intentos, si los intentos son fallidos entonces la coneccion con ssh se cerrara

#Cantidad de intentos para logearse

MaxAuthTries 2

Finalmente se debe editar la cantidad de usuarios que pueden entrar simultaneamente al ssh, para ello dentro del ssh.conf se edita la siguiente linea.

#numero de usuarios en linea a la vez MaxStartUps 5

Ahora se guardan los cambio realizados y se inicia el servicio

[ root@Kyon ]:~# service shhd restart


 * VIDEO TUTORIAL DE COMO CONFIGURAR SSH EN UBUNTU LINUX:**

En este apartado veremos un video de la configuracion de el archivo sshd.conf en ubuntu, el video esta en ingles:

media type="youtube" key="_ac2MQjIkOk" height="344" width="425" media type="youtube" key="Qul7TjlH5cM" height="344" width="425"

El tunel seguro son secure shell implica el envio de datos encriptados de una maquina a otra, atraves de la red, con el fin de asegurar que los datos lleguen a su correspondiente destino. Para crear un tunel, deberemos configurar el aplicativo para que apunte al localhost por un puerto determinado, puerto que escuchará el stunel y reenviará a la máquina cliente (siempre la misma) por el puerto del ssh (secure shell), y una vez entregado irá a buscar el puerto del aplicativo en la máquina cliente. Esto también es válido si solo tenemos un puerto abierto entre las dos máquinas.
 * QUE ES UN TUNEL SEGURO:**
 * **COMO SE CREA UN TUNEL:**

Para crear un tunel en una máquina Linux debemos utilizar el siguiente codigo: > //# ssh -l user -N -f -L local_port:client_ip:client_port client_ip//  Ahora añadimos el flag "-g" (comando flag: Visualiza o cambia los atributos de un archivo o directorio almacenado en la red. Sintaxis: FLAG [nombrearchivo][atributos][opciones]), quedando de la siguiente manera: > <span style="color: rgb(255, 0, 0);">//# ssh -l user -g -N -f -L local_port:client_ip:client_port client_ip//

http://delta.cs.cinvestav.mx/~fraga/Cursos/Redes_linux/ssh-ossh.pdf http://www.vensign.com/seguridad/**ssh**-**secure**-**shell**/ http://es.tldp.org/Tutoriales/doc-ssh-intro/introduccion_ssh-0.2.pdf http://www.videosinformatica.es/biblioteca/doc/otros/triptico_ssh.pdf http://blogdrake.net/node/16061
 * REFERENCIAS:**

<span style="color: rgb(255, 0, 0); font-size: 200%;">**GRUPO E**