viernes, 3 de agosto de 2007

Instalando SSH en el servidor

Seguimos dándole vidilla al viejo Pentium II de KrAmOx…

Una vez instalado el FTP nos queda algo por hacer. Necesitamos un sistema mediante el cual poder acceder al shell del servidor, para ello, Linux cuenta con diversas propuestas tales como rlogin, telnet… etc.

Todos estos protocolos y aplicaciones tienen un inconveniente en común: La información mandada fluye sin cifrar, lo cual pone en bandeja a cualquier posible atacante con un sniffer y dos dedos de frente meter las narices donde no debe.

Pero no solo el cifrado resulta atractivo en SSH, otro aspecto que lo hace interesante es su capacidad para redirigir el tráfico de las X, pudiendo ejecutar aplicaciones graficas en un cliente aprovechando la potencia de cálculo de un servidor… casi na!

Pero como es de mala educación hablar de alguien sin presentarlo… allá voy:

SSH (Secure SHell) es un protocolo y una aplicación utilizados básicamente para la interconexión de equipos remotos. La primera versión, desarrollada por el finlandés Tatu Ylönen, fue libre en sus anales, así como la aplicación, pero poco a poco fue apareciendo la SSH Communications Security, que ofrecería gratuitamente la aplicación para uso domestico y académico, pero que exigía el pago a otras empresas.

Pero como siempre, dos años después de todo esto ya estaba lista la primera versión libre de SSH, OpenSSH.

Actualmente existes dos versiones estables, SSH1 y SSH2. Se recomienda utilizar la SSH2 por cuestiones de seguridad, ya que la primera versión solo se mantiene por cuestiones de compatibilidad en maquinas antiguas.

Otra característica interesante, sobre todo para los amantes de la criptografía, es la posibilidad de manejar claves RSA para las sesiones con SSH, para, de esta forma, evitar el proceso de login entre maquinas. Para conseguir esto basta con que tengas tu llave publica almacenada en el servidor SSH y tu llave privada en la maquina desde la que te vas a conectar.

Finalmente, también es destacable el uso que se hace de SSH para tunelizar conexiones no seguras, para de este modo, cifrar el contenido de las mismas. Esto se suele realizar con Terminal Server y otras aplicaciones, ya que SSH es un protocolo disponible tanto para Linux como para Windows, de la misma forma que existen clientes y servers para ambas plataformas.

La instalación en sistemas Linux, que es la que nos atañe, es harto sencilla:

apt-get install ssh

y todo esto en el caso de que no venga instalada por defecto, algo nada raro en distribuciones Linux.

Para sistemas Windows podemos encontrar gran variedad de aplicaciones de F-Secure o de la misma SSH Communications Security.

Por supuesto, el funcionamiento, a pesar de la complejidad de la aplicación, es sumamente sencillo. Para conectar con una maquina remota simplemente debemos hacer:

slayer@erhard$ ssh usuario@ip_servidor
Password: ********

Y ya tendremos nuestra sesión en el servidor, aunque solo habremos accedido a shell, si pretendemos ejecutar una aplicación nada mas establecer la conexión podéis probar con:

slayer@erhard$ ssh usuario@ip_servidor mplayer /home/slayer/mp3/*mp3
Password: ********

De esta forma reproduciría todos los emepetreses que tuviera en la carpeta, siempre y cuando el mplayer estuviera instalado en el servidor claro, recordad que la aplicación se ejecuta en la maquina remota, aunque la salida se recogida por el cliente.

Mediante el parámetro –t conseguiremos abrir aplicaciones de forma interactiva, por ejemplo:

slayer@erhard$ ssh –t usuario@ip_servidor ‘nano /tmp/algo’
Password: ********

….sesión con nano

slayer@erhard$ ssh usuario@ip_servidor ’cat /tmp/algo’

…veremos lo que hemos escrito.

Interesante no? Pues no acaba la cosa ahí, también podemos redirigir igualmente el tráfico X mediante el parámetro –X (obvio no?) pero para ello debemos configurar antes el archivo /etc/ssh/sshd_config concretamente la línea:

X11Forwarding yes

Además el cliente debe de tener instalado xauth y ser accesible, pero eso ya es otra historia…

Otra herramienta incluida en SSH es scp, o lo que es lo mismo Secure CoPy.

Mediante esta pequeña aplicación podemos realizar copias de archivos de forma remota y segura. Ejemplo:

scp ArchivoOrigen usuario@host:directorio/ArchivoDestino
scp usuario@host:directorio/ArchivoOrigen ArchivoDestino

Por ultimo en este post (pienso seguir hablando de SSH como mínimo un post más) hablaremos de la generación de claves para evitar ir tecleando passwords cada dos por tres:

slayer@erhard$ ssh-keygen -t slayer

Con esto generamos una clave publica y privada para el user slayer guardadas en

~/.ssh/id_slayer.pub y en ~/.ssh/id_slayer respectivamente

La próxima vez que nos logueemos en la maquina remota simplemente deberemos ejecutar:

ssh-add ~/.ssh/id_slayer


Y ya no tendremos que loguearnos nunca mas… ;)

En fin, no os durmáis que seguiremos hablando del tema…

Salu2!

No hay comentarios: