Manejando nuestro Terminal desde Android

Bueno chic@s hoy vengo con un nuevo tip para Linux que, bueno, alomejor no es de gran utilidad pero es muy interesante ver como podemos manejar nuestro Linux desde el movil estando en la misma red. 

Conectado mediante SSH Linux y Android

Vamos a comenzar por la parte que debemos realizar en el equipo Linux.

SSH significa Secure SHell y es un protocolo de comunicación donde la información pasa siempre de forma encriptada.
Si alguna vez usaron Telnet, lo encontrarán muy parecido, sólo que SSH es seguro. En este ejemplo utilizo Ubuntu, pero en otras distros, como por ejempoFedora, es igualmente sencillo sólo hay que usar yum en vez de apt. En Ubuntu abrimos unTerminal y tipeamos

# apt-get install openssh-server

Luego de instalarlo, debemos recibir el siguiente mensaje (el número de proceso puede ser distinto)

ssh start/running, process 31402

Eso significa que el servidor ya está instalado. Ahora hay que configurarlo. Esta parte es muy importante así que no se la salteen.

La configuración del servidor SSH está en el archivo /etc/ssh/sshd_config. Lo editamos con nuestro editor preferido. Voy a usar gedit en este caso.

# gedit /etc/ssh/sshd_config

Buscamos la clave PermitRootLogin y nos aseguramos que diga no. Si dice yes, la cambiamos a no. Esto sirve para que nadie se pueda conectar como root. Entonces, esa línea queda:

PermitRootLogin no

Debajo de esa línea, podemos agregar AllowUsers que en realidad no viene por defecto. Esta opción sirve para autorizar determinados usuarios a conectarse al servidor.

AllowUsers usuario1 usuario2 usuario3

Donde usuario 1, usuario2 y usuario3 son los únicos usuarios habilitados a conectarse vía SSH.

SSH suele usar el puerto 22, pero podemos cambiarlo para mejorar la seguridad. Buscamos la línea Port y le ponemos el número de puerto que queramos. Tengan cuidado no poner un puerto que utilice otro protocolo.

Port 10200

En la línea LoginGraceTime 30 el número está asociado con los segundos de tiempo que nos dará el servidor cuando nos conectemos hasta que logremos introducir usuario y contraseña de forma exitosa. Es decir que si tardamos más de 30 segundos, el servidor SSH cerrará la conexión. Así que si son lentos escribiendo pueden aumentar ese número. Tenganlo en cuenta porque en este ejemplo vamos a tipear con el celular.

Buscamos ahora la línea MaxAuthTries, si no está la agregamos (en cualquier parte). Esta línea indica la cantidad de intentos de login que va a permitir el servidor, pasada esa cantidad, cierra la conexión. Por ejemplo, si queremos darle hasta tres intentos.

MaxAuthTries 3

Por último, la línea ListenAddress indica en qué dirección IP el servidor estará escuchando. Esto es útil si se tienen, por ejemplo, varias IP públicas, pero sólo se quiere permitir que el servidor SSH esté activo en alguna de ellas. Pero como no es el caso de este ejemplo, vamos a dejarlo en:

ListenAdress 0.0.0.0

Con esos cambios, el servidor SSH queda un poco más seguro. Si quieren añadir más seguridad pueden permitir o prohibir hosts específicos editando los archivos /etc/hosts.allow y/etc/hosts.deny. Se suele prohibir todos los hosts en hosts.deny y luego habilitar algunos en hosts.allow. Pero, si hacen eso, recuerden que afectará no sólo a SSH sino a todas las conexiones de red. Para este ejemplo casero, no es necesario editar nada de eso.

Resta reiniciar el servidor SSH para que actualice los cambios. En Ubuntu lo hacemos con:

# service ssh restart

O con:

# /etc/init.d/ssh restart

Instalar cliente de SSH en Android

Ahora pasamos a nuestro dispositivo móvil con Android instalado. Vamos al Android Market y buscamos la aplicación ConnectBot. Ustedes pueden instalarla, en mi caso, yo ya la tenía instalada.

Ahora abrimos la aplicación en el dispositivo móvil. Veremos la siguiente pantalla.

No será exactamente igual ya que yo ya tengo una sesion SSH guardada, vosotros no tendreis ninguna.

Vamos a conectarnos con:

nombre_de_usuario@ip_del_host:puerto_ssh

Si no saben cuál es la IP del PC con Ubuntu en la red, pueden usar el siguiente comando (en la PC)

$ ifconfig

Y leer la salida de la segunda línea de la interfaz eth0 (si no tienen otra configurada)

Direc. inet:192.168.0.3 Difus.:192.168.0.255 Másc:255.255.255.0

La primer dirección que aparece es la del equipo. En mi caso: 192.168.1.2.

Cuando nos conectamos vía SSH, por ser la primera vez veremos un mensaje donde el servidor nos pide confirmación para establecer unas claves que quedan en ambos equipos y se utilizan por seguridad. Confirmamos poniendo Yes.

Luego el servidor nos pedirá la contraseña del usuario. La ingresamos y ya tendremos acceso a la PC desde la línea de comandos. Ahora, es como si estuviéramos usando la consola, pero desde el dispositivo móvil.

Por ejemplo, voy a hacer un ls de mi home:

Si queremos salir de SSH sin apagar el equipo:

$ exit

Y luego confirmamos para que se cierre la sesión.

ConnectBot guardará los datos de conexión a excepción de la contraseña para próximas sesiones.

Bueno y eso es todo, espero que os haya servido de ayuda!!! En un futuro no muy lejano voy a enseñaros a hacer esto pero a través de internet sin tener la necesidad de estar en la misma LAN.

Un saludo!


Matías Moreno Cárdenas

Publicado por: Matías Moreno Cárdenas

Analista de Seguridad IT y hacking ético / Desarrollador de Software Multiplataforma. Actualmente analista de seguridad informática y hacking ético en Grupo SIA

Deja un comentario