share

SSH Secure Shell

SSH es un protocolo de red que sirve para administrar de forma remota un servidor. El predecesor de SSH fue telnet. Telnet es a SSH lo mismo que HTTP es a HTTPS. La desventaja de Telnet es que la información no viaja cifrada y puede ser descubierta por un atacante.

SSH genera canales seguros tunelizados. El puerto TCP asignado a SSH es el 22. Es posible atacar a SSH mediante un ataque REPLAY que manipula la información suplantando a una de las partes.

Para que funcione SSH veremos un ejemplo en 2 máquinas

  • Máquina cliente -> PARROT
  • Máquina servidor -> MINT

Existe SSH servidor que solo está disponible en Linux.

Existe SSH cliente que está disponible en todos los sistemas operativos.

  • Todos los equipos MAC y Linux vienen con un cliente SSH. Son clientes CLI
  • En Windows podemos instalar PuTTy que es un cliente telnet y SSH
  • Así mismo todos los MAC y Linux vienen con un cliente Telnet

Instalaremos el servidor SSH en el equipo al que nos vayamos a conectar. En nuestro caso a la máquina MINT.

sudo apt-get install -y openssh-server

Y una vez finalizada la instalación ya podemos conectarnos a la máquina MINT desde la PARROT, que como hemos visto, ya contiene por defecto un cliente SSH.

Desde PARROT:

ssh

Y nos pedirá un usuario y una contraseña que naturalmente tendremos que conocer.

Una vez autenticados en el sistema podemos hacer múltiples cosas porque es como si estuviéramos allí. Por ejemplo vamos a instalar un paquete llamado SCREEN en la máquina MINT desde la máquina PARROT mediante una sesión tunelizada segura.

screen –version

Con esta instrucción comprobamos si SCREEN está instalado en MINT. Si no lo está, que es lo habitual:

sudo apt-get install screen

SCREEN es un multiplexor de terminales (un multiplexor es un dispositivo que permite transmitir señales diferentes por el mismo canal) lo cual permite extender una única sesión de terminal en varias sesiones virtuales.

Con SSH lograremos un modo texto del sistema remoto, en nuestro caso, la máquina MINT. Si necesitamos ejecutar remotamente una aplicación gráfica como:

xeyes&

konqueror

Estas aplicaciones buscan un servidor X para conectarse, pero no lo conseguirán porque nuestra sesión SSH es un terminal de texto. SSH proporciona un redireccionamiento de X en la máquina remota conectado con el servidor X de la máquina local mediante un túnel cifrado. Para ello tenemos que hacer lo siguiente:

En el servidor SSH (MINT) editar el archivo:

sudo nano /etc/sshd_config

Y asignamos el valor yes a la variable x11forwarding

En la máquina cliente ejecutamos el cliente SSH

ssh -X 192.168.31.132

luego ejecutamos a modo de ejemplo:

xeyes&

O bien cualquier otra aplicación gráfica como synaptic, konqueror o xterm.

Veremos el resultado en la máquina cliente.