Activar el servidor SSH en tomato 馃崊

Habilitar el servidor SSH en tomato, para experimentar con algunas caracter铆sticas que otorga esta grandiosa herramienta y la estar茅 publicando bajo la etiqueta SSH, pero antes de continuar, les comento que el firmware tomato integra el servidor Dropbear.

 



Entre las caracter铆sticas interesantes para m铆 tenemos:

 

La versi贸n de tomato que use para la entrada es la 2020.06 del mod FreshTomato y que trae consigo la versi贸n 2020.80 de Dropbear.

 

馃崊 tomato si no te has enterado, es un firmware para router inal谩mbricos, las cajitas que dan WIFI 馃懡

 

Activaci贸n del servidor SSH

Para eso vamos a Administration admin access en la secci贸n SSH Daemon y habilitamos Enable at Startup (1) y guardamos s铆 queremos que este siempre activado, o usamos el bot贸n Start Now (2) para activarlo temporalmente.

Aprovechando esta secci贸n, algunos Mod tiene habilitado por defecto el servidor Telnet Daemon que por medida de seguridad deber铆a estar desactivado (3), debes desmarcar Enable at Startup en la secci贸n Telnet Daemon y guardar, como indica la imagen ↓ 




En el blog hay varias entradas sobre el Firmware 馃崊 tomato, que puedes visitar en este enlace 馃榾



Identificaci贸n

Hay dos formas, la primera es mediante usuario y contrase帽a, la segunda es mediante llaves criptogr谩ficas, se puede habilitar ambas pero se recomienda la segunda, de todos modo tocaremos ambas por separado.


Usuario y contrase帽a

Es el mas sencillo, pero menos segura comparada con el segundo m茅todo ya que el usuario ya esta establecido; no se puede modificar y es root, facilitando ataques de fuerza bruta o similares ya conocido el usuario, solo quedar铆a por averiguar la contrase帽a.

La contrase帽a, es la misma que usamos para entrar a la interfaz de configuraci贸n y lo primero que deber铆amos realizar, es cambiar la contrase帽a por defecto, esto lo hacemos en la misma secci贸n donde activamos el servidor SSH, en la parte inferior.




Aqu铆 tambi茅n se puede modificar el usuario, pero solo afecta al entrar a la interfaz web (que tambi茅n es recomendable cambiarlo), para acceder al servidor SSH continuara siendo root.

Para que funcione este m茅todo de autentificaci贸n, debe estar habilitado Allow Password Login.




Criptograf铆a asim茅trica

Mucho mas seguro, pero un poco mas complejo de entender al principio por los conceptos que se tocan, pero no de implementar, primero te recomiendo leer esta entrada de Criptograf铆a asim茅trica en la wikipedia, ya que tenemos este conocimiento, debemos crear las llaves, te dejare esta entrada en el blog para que tenga una idea.




Una acotaci贸n, aunque la versi贸n de Dropbear 2020.80 soporta las llaves mas populares como son RSA, dss, ecdsa y ed25519 esta ultima no la hab铆a podido implementar con 茅xito en tomato, hasta la llegada de las versiones del 2020 del MOD.


Lo har茅 en linux y se necesitara Openssh, para crear una llave RSA de 1024 bits como ejemplo.

$ ssh-keygen -b 1024 -t rsa


Este comando creara el archivo id_rsa y id_rsa.pub, que son la clave privada y publica respectivamente, esta se crearan en la ubicaci贸n /home/tu_usuario/.ssh/

La llave publica, la abrimos con un editor de texto y copiamos el contenido en Authorized Keys (1), desactivamos Allow Password Login (2) si solo usamos el m茅todo de llaves.

 



Una acotaci贸n, se puede copiar mas de una llave publica, con la separaci贸n mediante un salto de linea 馃憤


[Actualizaci贸n 05/2021] el m茅todo de llave ed25519 ya funciona perfecto las ultimas versiones de FreshTomato, mejor ir directamente por este, en internet hay mucha information al respecto.



Configuraci贸n

Es recomendable tener habilitado Remote Forwarding (1) para la creaci贸n de t煤neles, en mi caso necesito acceso fuera de la red desde internet, as铆 que debemos tener habilitado Remote Access (2) y el puerto por defecto es el 22 Remote Port (3), pero en FreshTomato hay que abrir el cortafuego mediante Iptable y es mas f谩cil ademas de otorgar mas seguridad cambiarlo por un puerto aleatorio por encima del 1024, en Port (4) es el puerto de acceso desde la LAN y funciona perfecto con el establecido por defecto que es el 22.

 

 

 

Extended MOTD (5) da mas informaci贸n, cuando nos conectamos como veremos mas adelante, pero si vamos hacer solo t煤neles y no acceder a la consola, no es de utilidad su activaci贸n.



Prueba de conexi贸n

Despu茅s de configurar el m茅todo, de autentificaci贸n probamos la conexi贸n, desde la LAN, yo lo prob茅 mediante la terminal y el cliente que trae Openssh.

$ ssh root@ip_del_router




La parte informativa con colorines, es el Extended MOTD  que comentamos antes, si esta desactivado solo muestra el prompt (la ultima linea) 馃槈


Desde fuera (internet) use el cliente para android Connectbot, que ya les comente aqu铆.




Aqu铆 tenemos que tener en consideraci贸n, el puerto remoto y la ip p煤blica del router, es recomendable configurar un DNS din谩mico como explicamos aqu铆, el m茅todo de identificaci贸n y si escogemos la Criptograf铆a asim茅trica la selecci贸n de la llave privada, que la podemos crear desde la aplicaci贸n o exportar, la que creamos en el ejemplo anterior id_rsa 馃攼



Opciones extra

En Admin Restrictions tenemos opciones interesante en Allowed RemoteIP Address, podemos restringir a unas IP especificas el acceso al servidor sea SSH o Telnet. De igual manera en Limit Connection Attempts, limitaremos el numero de conexiones fallidas y el numero de conexiones m谩ximas, esto lo modificamos a nuestra conveniencia, ademas de ser una medida para mitigar ataques al servidor y complicar accesos no autorizados.

 



Conclusi贸n

Esta es una gu铆a que trata de dar una orientaci贸n muy general, porque por ejemplo entre versiones del mods de tomato, hay variaciones en las opciones, como tambi茅n hay funcionamientos distintos, como por ejemplo en algunos mod el Remote Port funciona con el valor por defecto 22 sin modificar nada.

Solo le recomendar铆a iniciar con el m茅todo de autentificaci贸n de usuario y contrase帽a, para realizar las primeras pruebas de conexi贸n y si luego superado esto, pasar铆a con la opci贸n de Criptograf铆a asim茅trica. 

 

Mucho de lo que aqu铆 relato, es fruto de mucha prueba y error 馃槑


Para finalizar, cualquier, duda, correcci贸n, aportaci贸n y aclaratoria tiene los comentarios o el correo electr贸nico 馃憤


Actualizado 2020-11-13

Comentarios

Entradas m谩s populares de este blog

Super Mario RPG 馃幃