18 mar 2011

Configuración Servidor SSH en GNU/Linux

 

Hace tiempo escribí en Seguridad Apple, el blog de nuestro amigo Chema Alonso, una guía o serie de artículos en los que explicaba como configurar un servidor OpenSSH para un dispositivo como el iPhone de manera segura, o al menos, lo más seguro ¿posible? O al menos que sé.

Hoy quiero llevar la esencia de aquellos artículos al mundo GNU/Linux en general, y al mundo Flu Project en particular. Para comenzar se hablará del concepto de SSH y su configuración por defecto, los problemas que esto conlleva, y para los usuarios que nunca usaron este tipo de conexión, una primera conexión.

Según la Wikipedia, “SSH (Secure SHell, en español: intérprete de órdenes segura) es el nombre de un protocolo y del programa que lo implementa, y sirve para acceder a máquinas remotas a través de una red. Permite manejar por completo la computadora mediante un intérprete de comandos, y también puede redirigir el tráfico de X para poder ejecutar programas gráficos si tenemos un Servidor X (en sistemas Unix y Windows) corriendo.

Además de la conexión a otros dispositivos, SSH nos permite copiar datos de forma segura (tanto ficheros sueltos como simular sesiones FTP cifradas), gestionar claves RSA para no escribir claves al conectar a los dispositivos y pasar los datos de cualquier otra aplicación por un canal seguro tunelizado mediante SSH.”

Además la Wikipedia realiza esta aclaración sobre lo que es SSH, y lo que le diferencia con Telnet, “SSH trabaja de forma similar a como se hace con telnet. La diferencia principal es que 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; aunque es posible atacar este tipo de sistemas por medio de ataques de REPLAY y manipular así la información entre destinos.”

Hay que hacer una observación a esto que dice la Wikipedia, hoy en día, no diré que ninguna, pero prácticamente ninguna aplicación que utiliza el intercambio de claves de Diffie-Hellman de MANERA ADECUADA es vulnerable al tipo de ataques de REPLAY o de reinyección. También comentar que SSH, desde mi punto de vista es un protocolo de seguridad, pero que en función de su configuración o implementación puede llevarnos a un estado de inseguridad, como ejemplo sugiero, el famoso Bug de OpenSSL en la distribución Debian. También en función de dónde realicemos la conexión SSH, se puede obtener más riesgos o menos.

 

Instalación del servidor SSH

Para instalar el servidor SSH en GNU/Linux, pues dependerá de la distribución que utilicemos, pero por lo general es fácilmente instalable con apt-get, aptitude (en versiones más antiguas, porque está en desuso), YaST, Synaptic o cualquier otro instalador que se pueda tener en otras distribuciones. Nosotros haremos la prueba con el instalador típico de las distribuciones Debian y sus derivados, por ejemplo Ubuntu.

La instrucción a ejecutar desde un intérprete de comandos sería 'sudo apt-get install openssh-server'. La configuración del servidor se realizará a través de los ficheros de configuración que se encuentran en la ruta /etc/ssh.

 

Mi primera conexión

Como se dijo anteriormente, una sesión remota mediante SSH proporciona al usuario una conexión a una máquina remota mediante túneles cifrados. Es importante recalcar que proporciona seguridad, pero que no hay sistema no vulnerable. Para poder iniciar una sesión remota se debe tener una cuenta en la máquina remota.

Para realizar la conexión se ejecutará la siguiente sintaxis 'ssh usuario@ip'. El atributo ip puede ser sustituido por el nombre de dominio. Para iniciar sesión remota, si se tiene configurado el servidor SSH en otro puerto, se ejecutaría 'ssh -p <puerto> usuario@ip'.

Como nota peculiar, comentar que se puede realizar sesiones gráficas mediante SSH. Para activar este tipo de sesiones se ejecutaría 'ssh -X usuario@ip'. A priori, puede parecer que la sesión es idéntica a la abierta con la instrucción anterior, pero si ejecutamos alguna herramienta gráfica, se podrá observar como se ejecuta en el equipo remoto, pero es redirigida su imagen a nuestra máquina local.

En siguientes artículos configuraremos y veremos posibles fallos de seguridad en la configuración del servidor SSH. Esperamos que esta serie de artículos sea de vuestro gusto.

 

=================================================- Configuración Servidor SSH en GNU/Linux (Parte I)Configuración Servidor SSH en GNU/Linux (Parte II)Configuración Servidor SSH en GNU/Linux (Parte III)Configuración Servidor SSH en GNU/Linux (Parte IV)Configuración Servidor SSH en GNU/Linux (Parte V)Configuración Servidor SSH en GNU/Linux (Parte VI)=================================================

 

14 comentarios:

  1. Justo hayer por la mañana estudie la configuracion de SSH y su funcionamiento, bueno esto me sirvio para aclarar alguna duda, gracias por el aporte!! =)

    ResponderEliminar
  2. anbuitachi17 aun no has visto nada del poder que se puede tener con esto, verás en las próximas entregas de la serie :)Salu2!

    ResponderEliminar
  3. Umm buenoo no sévi los tuneles, el tipo de encriptacion que utilizaputty, conexion desd un servidor , etc.....pero viniendo de tiii creo que me sorprenderas!!!XDespero ansiosooo los proximos aportes.Y me gustaria muxo ser uno de tus alumnsos ^^

    ResponderEliminar
  4. [...] - Configuración Servidor SSH en GNU/Linux (Parte I) [...]

    ResponderEliminar
  5. [...] - Configuración Servidor SSH en GNU/Linux (Parte I) [...]

    ResponderEliminar
  6. [...] Configuración Servidor SSH en GNU/Linux (I) [...]

    ResponderEliminar
  7. [...] - Configuración Servidor SSH en GNU/Linux (Parte I) [...]

    ResponderEliminar
  8. [...] - Configuración Servidor SSH en GNU/Linux (Parte I) [...]

    ResponderEliminar
  9. [...] - Configuración Servidor SSH en GNU/Linux (Parte I) [...]

    ResponderEliminar
  10. [...] damos por terminada esta mini serie, si necesitas más información visita la página de Flu-project Share this:TwitterFacebookMe gusta:Me gustaBe the first to like [...]

    ResponderEliminar
  11. muy buen tutorial pero tengo una duda en la esc nos pidieron que nos conectaramos por ssh pero el profe pidio que solo escribieramos la linea ssh ipy segun el SO nos deberia preguntar a que usuario queriamos acceder pero no se como hacerlo a nosotros solo nos pedia el password no se si pueden ayudarme

    ResponderEliminar
  12. [...] Buenas a todos, hace algunos meses nuestro compañero Marc nos hablaba sobre la Autenticación de SSH con clave pública mediante la utilidad PuTTYgen, hoy, utilizaremos esta funcionalidad de PuTTYgen para automatizar el envío de archivos de manera segura entre una  máquina Windows y una máquina Linux por SCP, sin necesidad de utilizar una clave. Esta técnica podrá sernos útil para enviar, por ejemplo, backups regulares de nuestros logs de Windows y almacenarlos en una máquina linux. También es interesante recordar la serie sobre configuración de SSH en servidores GNU/Linux. [...]

    ResponderEliminar
  13. [...] de hablar de tunneling hay que recordar la serie de artículos que se publicó en Flu Project anteriormente sobre el protocolo SSH y el potencial de éste. Esta serie de artículos está totalmente recomendada para su lectura, ya que ayuda a [...]

    ResponderEliminar