Cuando uno contrata un servidor dedicado o un VPS con una empresa de alojamiento web, debe utilizar algn tipo de mecanismo para conectarse con l remotamente y poder interactuar con l como si lo tuviera al lado. Debido a la importancia de los datos que se suelen mover en este tipo de mquinas, es fundamental contar con algn protocolo de conexin que nos garantice total seguridad a la hora de Comunicarnos con el servidor. Esta seguridad nos la proporciona el protocolo SSH (Secure Shell), probablemente el sistema ms utilizado actualmente para comunicarse entre equipos con sistema operativo Linux. Hasta la aparicin de este protocolo, la forma que utilizaban los usuarios para conectarse con los servidores era por medio del uso de otros protocolos como Telnet o FTP, protocolos que tienen una gran desventaja respecto al SSH, ya que en este ltimo se encripta la sesin de conexin, impidiendo que alguien pueda capturar la contrasea no encriptada.
HISTORIA DEL PROTOCOLO SSH El protocolo SSH fue desarrollado en el ao 1995 por el finlands Tatu Ylnen, quien public su trabajo bajo una licencia de libre uso, pero ante el xito del programa desarrollado pronto registr la marca SSH y fund la empresa SSH Communications Security con fines comerciales, la cual permita el uso del protocolo gratuitamente para uso domstico y educativo. Ante este cambio en la poltica de uso del protocolo, los desarrolladores del sistema operativo OpenBSD empezaron a desarrollar en el ao 1999 una versin libre de este protocolo que recibi el nombre de OpenSSH. Desde la aparicin de este protocolo han sido dos las versiones que han estado activas. En la primera de ellas, se ofreca una alternativa a las sesiones interactivas mediante el uso de herramientas como TELNET, RSH o RLOGIN entre otras, sin embargo pronto se descubri que este protocolo tena un punto dbil que permita a los hackers introducir datos en los flujos cifrados. Ante este problema, en el ao 1997 fue lanzada la versin 2, donde una serie de medidas solucionaban el problema descubierto en la primera versin. Adems de corregir ese problema, esta segunda versin incorporaba el protocolo SFTP (Secure File Transfer
UNIVERSIDAD GERARDO BARRIOS CRU FACULTAD DE CIENCIA Y TECNOLOGIA INGENIERIA EN SISTEMAS Y REDES INFORMATICAS
ProtocolProtocolo seguro de transferencia de archivos) que proporciona la funcionalidad necesaria para la transferencia y manipulacin de archivos de forma segura
COMO FUNCIONA EL PROTOCOLO SSH
El funcionamiento de este protocolo se puede resumir en los siguientes pasos que se mencionan a continuacin: 1. El cliente inicia una conexin TCP sobre el puerto 22 del servicio. Este puerto es el que utiliza por defecto el protocolo, aunque como veremos en siguientes puntos, se puede modificar. 2. El cliente y el servidor se ponen de acuerdo en la versin del protocolo a utilizar, as como el algoritmo de cifrado utilizado para el intercambio de la informacin. 3. El servidor, que tiene en su poder dos claves (una privada y una pblica), manda su clave pblica al cliente. 4. Cuando el cliente recibe la clave enviada por el servidor, la compara con la que tiene almacenada para verificar su autenticidad. El protocolo SSH exige que el cliente la confirme la primera vez. 5. Con la clave pblica del servidor en su poder, el cliente genera una clave de sesin aleatoria, creando un mensaje que contiene esa clave y el algoritmo seleccionado para la encriptacin de la informacin. Toda esa informacin es enviada al servidor haciendo uso de la clave pblica que envi en un paso anterior de forma cifrada. 6. Si todo es correcto, el cliente queda autenticado, iniciando la sesin para comunicarse con el servidor. CARACTERISTICAS El uso del protocolo Secure Shell por parte de los usuarios, ofrece una serie de interesantes caractersticas, que lo ha llevado a convertirse en el mtodo ms utilizado por todos los usuarios que gestionan algn tipo de servidor Linux ya sea en la nube o dedicado. Algunas de estas caractersticas que podemos destacar son:
UNIVERSIDAD GERARDO BARRIOS CRU FACULTAD DE CIENCIA Y TECNOLOGIA INGENIERIA EN SISTEMAS Y REDES INFORMATICAS
1. El uso de SSH encripta la sesin de registro impidiendo que cualquier persona pueda conseguir contraseas no encriptadas. 2. Las claves de encriptacin utilizadas slo son conocidas por quien emite la informacin y por quien la recibe. 3. Una sola alteracin de la clave modifica el mensaje original, lo que permite que si por alguna razn un tercero descubre la clave no acceda al mensaje completo. 4. El usuario tiene la posibilidad de verificar que sigue conectado al mismo servidor que se conect inicialmente. 5. Cuando un usuario se autentica, entre l y el servidor se crea un canal seguro cifrado por donde intercambiar la informacin con total garanta. 6. Los datos enviados y recibidos mediante el uso de SSH se realizan por medio de algoritmos de encriptacin de 128 bits, lo que hace que sea muy complicado de descifrar y de leer. 7. El cliente tiene la posibilidad de utilizar de forma segura aplicaciones desde el intrprete de comandos del servidor, que permite administrar la mquina como si estuviera delante de ella. 8. El uso de SSH permite convertirse en un conducto para hacer seguros aquellos protocolos que no los son mediante el uso de una tcnica denominada reenvo por puerto.
SSH COMO TUNEL La principal utilidad que le podemos dar a un tnel SSH la detallamos a continuacin: Tansolotenemosqueimaginarnosqueestamosenunlugarpblico,comoporejemplo puedeserlacafeteradeunaeropuerto,ynosqueremosaconectaraunapginaweba travsdenuestronavegador.
En la cafetera del aeropuerto como podemos imaginar no estaremos solos. Como se
puedeverenlaimagenhabrmultituddeusuariosconectadosalamismaredlocal(LAN) quenosotrosycomopodesimaginarestoesunproblemadeseguridadimportante. Bsicamente es un problema de seguridad importante porqu somos susceptibles de recibir multitud de ataques que nos pueden lanzar cualquiera de los usuarios que estn conectados a la misma red local que nosotros. Algunos de los ataques que podemos sufrir por parte de los integrantes de la red son por ejemplo:
UNIVERSIDAD GERARDO BARRIOS CRU FACULTAD DE CIENCIA Y TECNOLOGIA INGENIERIA EN SISTEMAS Y REDES INFORMATICAS
1- Esnifar el trfico que estamos generando: Como todos sabemos, hoy en da multitud de conexiones a Internet se realizan mediante el protocolo http. El protocolo http tiene la particular de transferir la informacin en texto plano sin cifrar. Por lo tanto esto implica que cualquier integrante de la red local de la cafetera, mediante Sniffers como Wireshark o Ettercap, puede interceptar nuestro trfico fcilmente. Por lo tanto con un simple sniffer el atacante podra averiguar contraseas de servicios que tenemos contratados o usamos, como por ejemplo el servicio de wordpress, servidores ftp, telnet, etc. Adems el atacante podr averiguar fcilmente a los sitios a los que nos estamos conectando. 2- Un ataque Man in the Middle (MitM):
Cualquier integrante de la red local puede de forma muy fcil realizarnos un ataque Man in the middle. Como se puede ver en el grfico de este apartado, si un atacante lanza el ataque man in the Middle estar interceptando la totalidad de nuestro trfico tanto de entrada como de salida. Una vez el atacante haya interceptado el trfico tendr la capacidad de leer y modificar a voluntad el trfico que nosotros estamos generando o recibiendo. Esto es posible porqu el Host C se coloca entre el Host A y el Host B. Cuando el Host A enve trfico al Host B, antes de pasar por el Host B pasar por el Host C. En el momento que el trfico pase por el Host C el atacante podr interceptar y modificar el trfico.
UNIVERSIDAD GERARDO BARRIOS CRU FACULTAD DE CIENCIA Y TECNOLOGIA INGENIERIA EN SISTEMAS Y REDES INFORMATICAS
3- Un ataque de envenenamiento ARP o ARP Spoofing:
En el caso que estemos en una red local con un Switch, otro tipo de ataque que cualquiera de los usuarios de la red local nos podra lanzar es el ARP Spoofing. Este ataque bsicamente consiste en envenenar el cache ARP de la vctima (192.168.0.15) para hacerle creer que el atacante (192.168.0.10) es el router o puerta de enlace. Nota: Como se puede ver en la imagen el cache ARP de la mquina atacada (192.168.0.15), en vez de tener asociada la MAC address del router (xx:xx:xx:xx:xx:01), tieneasociadalaMACaddressdelatacante(xx:xx:xx:xx:xx:40).Porlotantolamquina vctima creer que el router es el ordenador del atacante y es all donde enviar la totalidaddeltrfico. De este modo la totalidad de trfico, tanto de entrada como de salida, generado por la vctima (192.168.0.15) estar pasando por el ordenador del atacante (192.168.0.10). En el momento que la informacin pase por el ordenador atacante se podr alterar la informacin y nos podrn robar datos como por ejemplo contraseas de servicios que usamos o tenemos contratados. 4- Otros tipos de ataques: Y la lista de ataques no se termina precisamente aqu. Hay multitud de ataques que nuestro atacante nos podra lanzar como por ejemplo DNS Spoofing, etc. TNEL SSH PARA MITIGAR LOS ATAQUES QUE ACABAMOS DE DESCRIBIR Estableciendo un tnel SSH seremos capaces de prevenir la serie de ataques que acabamos de describir.
UNIVERSIDAD GERARDO BARRIOS CRU FACULTAD DE CIENCIA Y TECNOLOGIA INGENIERIA EN SISTEMAS Y REDES INFORMATICAS
Bsicamente prevendremos los ataques porqu estableciendo nuestras comunicaciones mediante un tnel SSH estaremos cifrando la totalidad de nuestro trfico. Como se puede ver en el grfico, para establecer un tnel SSH necesitaremos un ordenador, fuera de nuestra Red local en que la seguridad est comprometida, que acte como servidor SSH. Al establecer el tnel SSH lo primero que har el ordenador que est en la red local comprometida es establecer comunicacin con el servidor SSH. Como se puede ver en la imagen, en el momento que el cliente establezca comunicacin con el servidor SSH se crear un Tnel de comunicacin entre el cliente que est en la red local comprometida y el servidor SSH que est fuera de la red local comprometida. Una vez establecido el tnel el cliente solicitar por ejemplo visitar una pgina web como podra ser por ejemplo www.geekland.hol.es Cuando el cliente introduzca la direccin en el navegador se enviar una peticin http al servidor SSH con las siguientes particularidades: 1. La peticin http viajar por el tnel SSH que hemos establecido. 2. Nuestra peticin, y la totalidad de trfico entrante y saliente estar completamente cifrado. Por lo tanto aunque recibamos algunos de los ataques mencionados y se intercepte nuestro trfico dentro de la red local comprometida, nadie podr obtener nuestras credenciales, ni modificar el contenido de la peticin ni robarnos informacin ya que la informacin que obtendrn estar completamente cifrada. Por lo tanto con el tnel SSH estamos garantizando la integridad y confidencialidad del trfico entre nuestro ordenador y el servidor SSH que est fuera de nuestra red Local en una ubicacin segura y no susceptible de ataques. Una vez nuestra peticin est en el servidor SSH tendr que dirigirse al servidor web de la pgina que queremos conectarnos. En el ltimo tramo la peticin ya ir en texto plano y por lo tanto ser susceptible de ser interceptada y modificada, pero cabe decir que la probabilidad de tener problemas de confidencialidad y de integridad de nuestros datos en este ltimo tramo es muy baja.
UNIVERSIDAD GERARDO BARRIOS CRU FACULTAD DE CIENCIA Y TECNOLOGIA INGENIERIA EN SISTEMAS Y REDES INFORMATICAS
Nota:Laproteccindentrodelaredlocalcomprometidaesparalatotalidaddetrfico entranteyparalatotalidaddetrficosaliente. CONCLUSIONES SOBRE LA UTILIDAD DE TNEL SSH Vistas las posibles utilidades y el funcionamiento terico de un tnel SSH podemos llegar a las siguientes conclusiones: 1. El tnel SSH es una buena solucin para navegar por internet en el caso que nos hallemos en Red local No segura. 2. La navegacin a travs de un tnel SSH garantiza nuestra confidencialidad ya que nadie podr conocer las pginas web que estamos visitando ni que estamos haciendo. 3. La navegacin a travs de un tnel SSH garantiza la integridad de los datos transmitidos y recibidos ya que la probabilidad que alguien pueda modificar las datos que enviamos o recibimos es muy baja. 4. Los tneles SSH nos pueden servir tambin para vulnerar ciertas restricciones impuestas por nuestro ISP o por ejemplo tambin nos puede servir para vulnerar ciertas restricciones impuestas por proxys y firewall. 5. Los tneles SSH son una buena solucin para asegurar la comunicacin entre 2 mquinas y para fortificar protocolos dbiles como por ejemplo HTTP, SMTP. FTP, Telnet, etc. 6. Montarse un servidor SSH propio es sumamente mucho ms sencillo que montarse un servidor VPN o un servidor proxy. En futuros post veremos cmo disponer un servidor SSH propio en apenas 10 minutos. Hoy en da las cosas hechas por uno mismo acaban siendo siempre ms seguras. En Internet por supuesto que existen servicios gratuitos de VPN o proxys que se dedican a ofrecer servicios similares de forma gratuita. Con estos servicios gratuitos hay que ir con cuidado ya que para monetizar el servicio que estn prestando nos pueden estar vendiendo a nosotros mismos recolectando informacin y vendindola a terceros. Nota: Existen muchas otras utilidades aparte de las comentadas. Las utilidades comentadas entiendo que son las ms habituales para los usuarios comunes como somos nosotros. LIMITACIONES DE LOS TNELES SSH Como todos saben la seguridad absoluta no existe. El hecho de aplicar est tcnica u otras descritas lo nico que har es poner las cosas ms difciles a los posibles atacantes. Ya saben que para cualquier problema un atacante siempre puede encontrar una solucin. Las principales limitaciones de navegar o usar ciertas aplicaciones mediante tneles SSH son las siguientes: 1. En la comunicacin entre cliente y servidor existen tramos en el que la informacin viaja sin encriptar. Concretamente hablo del tramo que va del servidor SSH al servidor Web y del servidor web al Servidor SSH. En este tramo un atacante podra
UNIVERSIDAD GERARDO BARRIOS CRU FACULTAD DE CIENCIA Y TECNOLOGIA INGENIERIA EN SISTEMAS Y REDES INFORMATICAS
comprometer la integridad y la confidencialidad de los datos transmitidos. No obstante la probabilidad que esto llegue a suceder es baja. 2. Para poder navegar a hacer peticiones a travs del tnel SSH hay que configurar aplicacin por aplicacin. As por ejemplo si queremos navegar de forma segura tendremos que configurar adecuadamente nuestro navegador. En el caso que queramos descargar torrents a travs de nuestro tnel SSH tambin tendremos que configurar nuestro gestor de torrents adecuadamente y as sucesivamente. Informacion obtenida de: http://pressroom.hostalia.com geekland