OpenWrt: Securizando el router

En el anterior articulo vimos como instalar OpenWrt en un router Xiaomi 3G, y una de las primeras cosas que hicimos fue ponerle una contraseña al usuario root ya que por defecto viene en blanco.

Como uno de los objetivos de esta serie de artículos es llegar a quitar el livebox fibra que proporciona Orange, y poner en su lugar nuestro router, tendremos que llevar a cabo una serie de acciones que nos proporcionen un mínimo de seguridad en nuestro router, como cambiar de puerto el servicio SSH, habilitar un nuevo usuario para administrar el router sin tener que utilizar el usuario root, permitir solo conexiones SSH mediante firma y no por contraseña, etc.

Usando HHTPS para descargar paquetes OPKG

Lo primero es actualizar el sistema y descargar los certificados que nos permitirán realizar la conexión

sudo opkg update
opkg install ca-certificates

Yo prefiero trabajar con nano como editor de texto, por lo que lo instalado

opkg install nano

Editamos el fichero de las fuentes y cambamos http por https.

nano /etc/opkg/distfeeds.conf

Añadir un usuario para trabajar con SUDO

No es buena costumbre trabajar con el usuario root por razones obvias, así que vamos a crear un nuevo usuario e instalar sudo para poder utilizar comandos privilegios de root.

En el ejemplo vamos a crear un usuario llamado carlos

opkg update
opkg install shadow-useradd
useradd carlos
passwd carlos
mkdir /home
mkdir /home/carlos
chown carlos:carlos /home/carlos
opkg install sudo

Necesitamos editar el fichero /etc/passwd para que el usuario tenga una shell para trabajar

nano /etc/passwd
carlos:x:1000:1000::/home/carlos:/bin/ash

Con estos pasos ya tendremos habilitado un nuevo usuario para poder trabajar.

Cambiar de puerto SSH

Vamos a empezar a utilizar la interfaz LuCI para cambiar el número de puerto al servidor SSH Dropbear, nos conectamos a la dirección http://192.168.1.1 y vamos al menú Sistemas-> Administración

Nos dirigimos Instancia de Dropbear y cambiamos el puerto, en el ejemplo he puesto el 2222, y desmarcamos las casillas Permitir autorización de contraseña SSH y Permitir al usuario root con contraseña.

Evitar conexiones SSH con usuario y contraseña

Antes de guardar los cambios, y puesto que hemos deshabilitado el poder conectarnos por SSH mediante contraseña vamos a habilitar el poder conectarnos de forma automática mediante nuestra clave publica, la cual deberemos de haber generado anteriormente

Debemos de tener una clave publica, si no la tienes o no sabes como hacerlo, en este otro articulo te explico como obtener tu propia clave publica.

ls -l ~/.ssh/       

-w-------  1 xxxxx xxxxx 3243 oct 15 13:34 id_rsa
-rw-r--r-- 1 xxxxx xxxxx  747 oct 15 13:34 id_rsa.pub
-rw-r--r-- 1 xxxxx xxxxx 1252 feb 25 16:49 known_hosts

Copiaremos el contenido del fichero id_rsa.pub, clave pública, desde el ordenador que deseemos conectarnos y la pegamos en el campo Clave SSH

Después de pulsar en Guardar y aplicar, a partir de ahora ya no sera posible conectarnos a SSH mediante usuario y contraseña, solo mediante nuestra clave pública

ssh -p 2222 root@192.168.1.1


BusyBox v1.27.2 () built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt SNAPSHOT, r6305-8f24653
 -----------------------------------------------------
root@OpenWrt:~#

Si vamos a conectarnos al router con un usuario diferente a root, deberemos añadir la clave pública de ese usuario,$HOME/.ssh/id_rsa.pub, al fichero .ssh/authorized_keys del usuario creado en el router, por ejemplo, hemos creado un usuario llamado carlos en el router, por lo tanto copiamos el fichero $HOME/.ssh/id_rsa.pub desde mi ordenador al fichero /home/carlos/.ssh/authorized_keys del router.

Referencias:

comentario powered by Disqus