Proyecto Final Ssh y Ssl v1

download Proyecto Final Ssh y Ssl v1

of 24

Transcript of Proyecto Final Ssh y Ssl v1

UNIVERSIDAD LATINA DE PANANA MAESTRIA EN GERENCIA INFORMATICA CON ENFASIS EN SEGURIDAD

MATERIA: Criptografa Aplicada Conexin cifrada usando SSH y OpenSSH

Prof. Amlcar Martnez

Integrantes: Iris Gonzlez Erik Quintero Eric Snchez

2011

I-

INTRODUCCION

Dado el gran auge que hoy en da tiene el internet, su uso se ha convertido en una necesidad. Desde la consulta de pginas solo para informarnos hasta la visita de sitios interactivos usando las nuevas tecnologas. El problema que surge de todo esto es que muchas personas tienen temor de realizar operaciones, tramites o consultas a travs de internet, pues existe la incertidumbre sobre el destino de su informacin (personal, bancaria o la que fuere). Se tiene el temor de que otras personas capten la informacin y hagan mal uso de ella. Este temor tiene algo de fundamento, pues en el internet se muestran vulnerabilidades y las transacciones no seguras son susceptibles de ataques mal intencionados o de suplantacin de identidad. A raz de todo esto han surgido tecnologas que persiguen mejorar la seguridad de todas las comunicaciones. En este trabajo trataremos de explicar los protocolos SSL y SSH, que son utilizados para asegurar la informacin que se enva por la red entre un servidor y un cliente, encriptando la informacin con algoritmos matemticos, de tal manera que solo pueda ser leda por las personas autorizadas, descifrando los contenidos a partir de una clave comn.

PROTOCOLO SSH Algunas veces es necesario administrar de forma remota un servidor y para ello debemos establecer una comunicacin segura entre dicho host y el sistema desde el cual establecemos la conexin. Las sesiones telnet no ofrecen mucha seguridad, ya que los datos viajan a traves de la red sin ningn tipo de encriptamiento y son potencialmente supceptibles de ser interceptadas por un atacante. Actualmente las Redes de Computadoras son los medios digitales ms usados en todos los mbitos de la sociedad para la transferencia de informacin. Normalmente estos medios se encuentran en redes pblicas, por lo cual estn expuestas a intervenciones de una u otra forma. Cuando se realiza una conexin a un servidor remoto usando por ejemplo el comando telnet o ftp, el login(usuario) y password(contrasea) son transmitidos en la red de forma clara, lo cual representa un gran riesgo si llega a existir sobre la red un programa que capture la informacin, basndose en el modo promiscuo de las redes ethernet (comnmente llamado sniffer), ocasionado obtener tanto el login como el password y pudiendo posteriormente irrumpir en el servidor con esta informacin. Este tipo de problemticas ha llevado al diseode herramientas que permitan evitar estas situaciones siendo el caso de Secure Shell (ssh), desarrollado por Tatu Ylonen en la Universidad Tecnolgica de Helsinki en Finlandia y OpenSSH, que nace del proyecto de un sistema operativo orientado con la filosofa de la seguridad en mente como lo es OpenBSD. Secure Shell (SSH) es una solucin basada en software que mantiene seguros los datos de la red. Muchos usuarios de telnet, rlogin, ftp y otros programas parecidos, no se dan cuenta que sus contraseas se estn transmitiendo sin cifrar a travs de la red. SSH cifra todo el trfico (incluidas las contraseas) para eliminar de un modo efectivo las "escuchas", los secuestros de las conexiones y otros ataques a nivel de red.

Adems, SSH ofrece amplias posibilidades para la creacin de tneles seguros, aparte de una variedad de mtodos de autenticacin. Parece cosa de locos, pero Secure Shell no es un shell. No es un interprete, historial de comandos, ni dems. SSH provee fuerte autenticacin y comunicacin segura sobre un canal inseguro y nace como un reemplazo a los comandos telnet, ftp, rlogin, rsh, y rcp, los cuales proporcionan gran flexibilidad en la administracin de una red, pero sin embargo, presenta grandes riesgos en la seguridad de un sistema. Adicionalmente, ssh provee seguridad para conexiones de servicios X Windows y envo seguro de conexiones arbitrarias TCP. Secure Shell admite varios algoritmos de cifrado entre los cuales se incluyen: Blowfish 3DES IDEA RSA

La ventaja ms significativa de ssh es que no modifica mucho las rutinas. En todos los aspectos, iniciar una sesin de ssh es tan sencillo como( y similar a) iniciar una sesin de telnet. Tanto el intercambio de llaves, la autenticacin, as como el posterior cifrado de sesiones son transparentes para los usuarios.

OpenSSH es una versin LIBRE del paquete de herramientas de comunicacin segura del protocolo SSH/SecSH para redes, una solucin de seguridad que est ganando la confianza de un nmero cada vez mayor de usuarios de Internet. Muchos usuarios de telnet, rlogin, ftp y otros programas parecidos, no se dan cuenta que sus contraseas se estn transmitiendo sin cifrar a travs de la red. OpenSSH cifra todo el trfico (incluidas las contraseas) para eliminar de un modo efectivo las escuchas, los secuestros de las conexiones y otros ataques a nivel de red. Adems, OpenSSH ofrece amplias posiblidades para la creacin de tneles seguros, aparte de una variedad de mtodos de autenticacin.

SSH es un protocolo que permite establecer conexiones seguras a travs de redes que no lo son, adems es capaz de servir de tnel seguro para otros protocolos que no lo son. Podemos entonces realizar tareas de mantenimientos de sistemas y conexiones remotas al estilo UNIX de forma segura. SSH2, la segunda versin de SSH, resuelve algunas de las deficiencias de su antecesor SSH1, ofreciendo de esta manera un alto nivel de cifrado de datos y un mtodo de autentificacin bastante fiable. Es adems una alternativa fiable a los no seguros: telnet o rlogin, rsh, rcp, rdist Pero s hace cosas muy tiles por la seguridad de un sistema en entornos poco confiables. Algunas "features": Protocolo criptogrfico en un modelo cliente/servidor Autenticacin de las ms variadas formas: por contrasea por host por sistema de llaves Integracin con sistemas de autenticacin como: Kerberos SecurID PGP TIS Gauntlet PAM Seguriza los protocolos de aplicacin de manera (casi) transparente Implementacin sobre la mayora de los sistemas operativos y plataformas Secure Shell previene, adems, de una serie de ataques como los procedentes de Sniffers: IP Spoofing

MACpoofing DNS Spoofing

Telnet Hickjacking

ARP Spoofing IP Routing Spoofing ICMP Spoofing Nos puede servir tambin para crear canales o tneles seguros para otras aplicaciones como correo, VNC, ftp, etc.

Pasos para su instalacin y configuracin Instalando el paquete OpenSSH para MS-Windows Procedemos a descargar la version de OpenSSH para Windows: _SSHWindows [Descargar Instalador] El instalador esta comprimido en un *.zip. As que primero lo descomprimiremos y ejecutamos el instalador.

Aceptamos la licencia.

Seleccionamos todos los componentes.

Elegimos la carpeta donde se instalara el servidor.

Men Inicio.

Durante la instalacin nos advertir de que una vez acabada tenemos que editar el fichero situado en C:\OpenSSH\etc\passwd.

El siguiente paso es acceder a la carpeta C:\OpenSSH\bin mediante consola. Cdigo: cd C:\OpenSSH\bin Y crear un par de claves DSA:

Y un par de claves RSA:

Crear usuarios y grupos Para crear un grupo local usamos el parmetro -l y si queremos crear un grupo del dominio ponemos -d Cdigo: C:\OpenSSH\bin>mkgroup -d >> C:\OpenSSH\etc\group

El grupo Contabilidad tiene que estar creado dentro del servidor. Seguidamente ponemos una contrasea al grupo: Cdigo: C:\OpenSSH\bin>mkpasswd -d -u Administrador >> ..\etc\passwd

El usuario Administrador tiene que estar creado, para ver y crear usuarios podemos usar el comando control userpasswords2 en una consola. Por defecto el instalador no agrega la carpeta del OpenSSH a las variables de entorno por lo que tenemos que hacerlo nosotros manualmente. Vamos a Inicio --> Panel de Control --> Sistema --> Configuracin Avanzada del Sistema y Variables de Entorno

Buscamos y Editamos la variable Path y agregamos los siguientes valores:

En caso de haber instalado el OpenSSH en otra ruta, ponemos esa. Despus creamos una nueva variable de entorno llamada HOME y como valor ponemos la ruta de la instalacin de OpenSSH.

A continuacin vamos a activar el servicios SSH, vamos a Inicio --> Herramientas Administrativas --> Servicios y buscamos OpenSSH. Clic derecho y propriedades, lo ponemos en Automtico y hacemos clic en Iniciar

La conexin, el manejo, la configuracin, la transferencia y dems se hacen exactamente igual que en Linux. Por lo tanto no voy a ponerlos otra vez, sino que os dejo el enlace del articulo donde se explica la instalacin y uso del un servidor SSH en Linux para que le echis un vistazo.

Arrancar el servicio C:\net start opensshd Conexin con el servidor OpenSSH Para conectarse al servidor OpenSSH desde un cliente Windows podemos usar PuTTY, un cliente de Telnet y de SSH libre para la interoperacin con OpenSSH desde sistemas Windows: http://gnuwin.epfl.ch/apps/putty/es/ Para conectarse desde una shell en modo MSDOS: ssh usuario@servidor Seguridad Es necesario asignar permisos a las carpetas par que slo los usuarios que queramos puedan acceder a ellas.

Algunas reglas importantes Siempre que sea posible, conceder el acceso remoto slo a los administradores. Slo la cuenta LocalSystem y el grupo local Administradores deben tener acceso a los directorios \ssh, \var y \etc. Si aparece en pantalla un mensaje de advertencia del cliente SSH para comunicarle que la clave de host del servidor OpenSSH ha cambiado y no se trata de la primera vez que establece conexin con dicho servidor, averige cul es la causa. Utilice SSH1 exclusivamente cuando existan clientes ms antiguos que utilicen dicha versin de SSH.

Archivos de configuracin OpenSSH I) Algunos parmetros de ssh_config OpenSSH tiene dos conjuntos diferentes de ficheros de configuracin, uno para los programas del cliente (ssh, scp, y sftp) y el otro para los servicios del servidor (sshd), ubicados en dos sitios diferentes. La informacin de configuracin SSH para todo el sistema est almacenada en el directorio /etc/ssh: primes contiene grupos Diffie-Hellman que sirven para el intercambio de claves Diffie-Hellman. Fundamentalmente, este intercambio de claves crea un valor de secreto compartido que ninguna de las partes puede determinar sola y se usa para proporcionar la autenticacin del host. Este fichero es esencial para la construccin de una capa de transporte segura. ssh_config el fichero de configuracin de cliente SSH para todo el sistema se usa para dirigir al cliente SSH. Si un usuario tiene su propio fichero de configuracin a disposicin en su directorio de inicio (~/.ssh/config), sus valores predominarn sobre los valores almacenados en /etc/ssh/ssh_config. sshd_config el fichero de configuracin para sshd. ssh_host_dsa_key la clave privada DSA usada por sshd. ssh_host_dsa_key.pub la clave pblica DSA usada por sshd. ssh_host_key la clave privada RSA usada por sshd para la versin 1 del protocolo SSH. ssh_host_key.pub la clave pblica RSA usada por sshd para la versin 1 del protocolo SSH. ssh_host_rsa_key la clave privada RSA usada por sshd para la versin 2 del protocolo SSH. ssh_host_rsa_key.pub la clave pblica RSA usada por sshd para la versin 2 del protocolo SSH. La informacin para la configuracin SSH especfica para el usuario est almacenada en el directorio de inicio del usuario dentro del subdirectorio .ssh: authorized_keys2 el fichero que contiene una lista de claves pblicas "autorizadas". Si un usuario que se conecta puede comprobar que conoce la clave privada que corresponde a cualquiera de las claves pblicas, entonces ser autenticada. Note que esto es slo un mtodo de autenticacin opcional. id_dsa contiene la identidad de autenticacin DSA del usuario. id_dsa.pub la clave pblica DSA del usuario. id_rsa La clave pblica RSA usada por sshd para la versin 2 del protocolo SSH. identity La clave privada RSA usada por sshd para la versin 1 del protocolo SSH.

known_hosts2 almacena las claves de host DSA de los servidores a los cuales los usuarios dan inicio a una sesin por medio de SSH cuando el usuario decide guardarlas. Si a un servidor se le modifican las claves de host en modo legtimo, tal vez a la hora de reinstalar Red Hat Linux el usuario recibir un aviso que la clave de host almacenada en el fichero known_hosts2 que debera corresponder con este host no corresponde. Entonces el usuario debe borrar esa clave de host en known_hosts para poder almacenar la clave de host nueva para ese sistema. El fichero known_hosts2 es muy importante para asegurar que el cliente se est conectando con el servidor correcto. Si ha cambiado una clave de host, y usted no est perfectamente seguro el motivo por el que ha sido cambiada, entonces debera contactar el administrador de sistema del host para asegurarse que el host no haya sido expuesto a peligro. Port 22 # se ejecuta en el puerto 22, ListenAddress 0.0.0.0 # escucha en todos los interfaces HostKey /etc/ssh/ssh_host_key # dnde se encuentra la llave del host RandomSeed /etc/ssh/ssh_random_seed # dnde se encuentra la simiente aleatoria ServerKeyBits 768 # durante cuanto tiempo dura la llave del servidor LoginGraceTime 300 # cunto tiempo se tiene para introducir las credenciales KeyRegenerationInterval 3600 # cada cunto tiempo se regeneran las llaves del servidor PermitRootLogin no # permitir hacer login al root IgnoreRhosts yes # ignorar los ficheros .rhosts de los usuarios StrictModes yes # para asegurarse de que los usuarios no hacen tonteras QuietMode no # Si es s no hace log de nada. Queremos hacer log de logins/etc. X11Forwarding no # reenviar X11? no habra por qu en un servidor FascistLogging no # quizs no querramos hacer demasiado log PrintMotd yes # mostrar el mensaje del da? Siempre est bien

KeepAlive yes # se asegura de que las sesiones se desconectan correctamente SyslogFacility DAEMON # quin est haciendo el logging? RhostsAuthentication no # la autentificacin est usando rhosts o /etc/hosts.equiv No est # en mi mente. Por defecto es s, de modo que se desactiva. RSAAuthentication yes # permitir autentificacin RSA pura? Es bastante segura PasswordAuthentication yes # permitir a los usuarios que utilicen su login/contrasea habitual? # Por qu no. PermitEmptyPasswords no # permitir cuentas con contraseas vacias? no Otras directivas sshd_conf tiles incluyen: AllowGroups permitir a grupos explcitamente (/etc/group) hacer login utilizando ssh DenyGroups deshabilitar explcitamente hacer login a grupos (/etc/groups) DenyUsers bloquear explcitamente a los usuarios el hacer login AllowHosts permitir ciertos hosts, al resto se les denegar DenyHosts bloquea ciertos hosts, al resto se les permitir IdleTimeout time tiempo en minutos/horas/das/etc, que fuerza un logout haciendo un SIGHUP del proceso II) Sobre las claves pblicas ssh_host_dsa_key la clave privada DSA usada por sshd. ssh_host_dsa_key.pub la clave pblica DSA usada por sshd. ssh_host_key la clave privada RSA usada por sshd para la versin 1 del protocolo SSH. ssh_host_key.pub la clave pblica RSA usada por sshd para la versin 1 del protocolo SSH. ssh_host_rsa_key la clave privada RSA usada por sshd para la versin 2 del protocolo SSH. ssh_host_rsa_key.pub la clave pblica RSA usada por sshd para la versin 2 del protocolo SSH. IICONCLUSIONES

EL SSH es un Protocolo de seguridad Shell y puede ser utilizado para establecer un tnel de comunicacin seguro entre los clientes y un Server SSH utilizando validaciones de Claves pblicas y privadas y algoritmos de Encriptacin Simtricos como lo es RSA. Al establecer un tnel seguro el SSH, no solo realiza la transferencia de los archivos sino utiliza algoritmos de encriptacin para cifrar el mismo y utiliza el concepto de Criptografa simtrica de Llaves pblicas y privadas. Existen Diversas aplicaciones tanto en sistemas operativos Linux como en Window como el Putty, OpenSsh, Winscp, que utilizan un protocolo seguro SSH, en donde se derivan el SFTP como uno de sus conceptos principales para la transferencia de archivos por medio del puerto 22 en vez del 23 que es el Telnet y el 21 del FTP. Los certificados SSL presentan una oportunidad para los proveedores de comercio electrnico para sacar provecho de los temores de los consumidores, mostrando los indicadores de confianza. Para realizar el cifrado, SSL se apoya en el uso de dos claves preestablecidas, una pblica y una privada: la clave pblica permite cifrar la informacin, mientras que la clave privada permite descifrarla. SSL proporciona una conexin cifrada entre el navegador y el servidor Web, lo que permite transmitir datos privados en lnea con total seguridad de confidencialidad. Las transacciones en internet son seguras, siempre y cuando hayamos verificado que la empresa con la cual se est tratando cuente con los mecanismos de seguridad necesarios.

I-

RECOMENDACIONES

Para evitar conexiones inseguras en nuestras transferencias de informacin debemos evitar el uso de protocolos inseguros como lo son: telnet, rsh, ftp, rlogin, vsftpd, y utilizar el SSH como un mtodo seguro en la comunicacin y transferencia de archivos. El SSH nos permite hacer conexiones remotas seguras, especficamente generacin de comandos en el servidor desde la estacin cliente, por ejemplo comandos tipo sftp como get o put o Unzip para descomprimir un archivo .ZIP y todo esto a travs de un canal seguro entre el cliente y el servidor. Si va a implementar un sitio Web de Comercio electrnico debe utilizar SSL, ya que es el protocolo dominante en la actualidad del comercio electrnico, proporcionando confidencialidad, integridad y verificacin de la identidad de ambas partes. Internet ha creado con xito muchas nuevas oportunidades de negocios globales para las empresas que realizan el comercio electrnico. Sin embargo, ese crecimiento tambin ha atrado a los defraudadores y delincuentes cibernticos; por lo cual se recomienda implementar Sitios Seguros que garanticen la confidencialidad y as evitar daos a terceros.

I-

BIBLIOGRAFIA

Webtutoriales [En lnea], Disponible: http://www.webtutoriales.com Cmo usar SSH con su hosting, [En lnea]. Disponible: http://www.hostingusa.es/tutoriales/ssh/como-usar-ssh-con-hosting-putty Como crear llaves SSH, [En lnea]. crear-llaves-ssh/ Disponible: http://rnt.cl/tutoriales/como-

Criptografa Caparazn Seguro (protocolo SSH), [En lnea]. Disponible: http://es.kioskea.net/contents/crypto/ssh.php3 Red Hat Enterprise Linux 4: Manual de referencia, [En lnea]. Disponible: http://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-rg-es-4/ch-ssh.html Welcome to the OpenSSL Project, OpenSSL, [En lnea]. http://www.openssl.org/ Transport Layer Security, [En lnea]. http://es.wikipedia.org/wiki/Transport_Layer_Security/ SSL, [En lnea]. Disponible: http://es.wikipedia.org/wiki/Ssl/ Criptografa Secure Sockets Layers (SSL), [En lnea]. http://es.kioskea.net/contents/crypto/ssl.php3 Disponible: Disponible: Disponible:

HTTP + SSL = HTTPS, [En lnea]. Disponible: Disponible: http://trevinca.ei.uvigo.es/~txapi/espanol/proyecto/superior/memoria/node137.html Pginas Web Y Aplicaciones Web Seguras Los Certificados SSL, ELemental, Per [En lnea]. Disponible: http://www.e-lemental.com.pe/paginas-weby-aplicaciones-web-seguras-%E2%80%93-los-certificados-ssl/