443 - Securizar y homogeneizar la Raspberry
Como securizar tu Raspberry para dificultar el acceso a la misma y conseguir que todos tus dispositivos tengan una configuración lo mas similar posible
Hace ya mas de tres años que publiqué un episodio del podcast dedicado a asegurar tu Raspberry. Evidentemente no se trataba tanto de hacerle un seguro a la Raspberry para un caso de accidente, como para evitar, …, mejor dicho, dificultar el acceso a tu Raspberry. La cuestión, es que desde ese episodio del podcast, hasta el día de hoy, han cambiado algunas cositas, y por supuesto, nosotros también, así que ha llegado el momento de hacer un nuevo episodio, aprovechando, que a principio de año, sacaste la Raspberry del cajón, con alguno de los proyectos que te comenté en ese momento. Ha llegado el momento de securizar la Raspberry.
Que vaya por delante, que yo no tengo todas las Rasbperry securizadas, lo cual me parece un tremendo y loco error. Un error de primero de Raspberry. Pero, con tanto tocar aquí y allá, probar distribuciones, y este tipo de operativas, la cuestión, es que por lo general algunas de ellas están limpias y no he invertido tiempo en hacer este tipo de operativas.
Pero no solo vamos a securizar la Raspberry si no que la vamos a homogeneizar con el resto de entornos con los que trabajamos, para que independientemente del entorno que estemos utilizando, nos encontremos como en casa.
Securizar y homogeneizar la Raspberry
Antes de nada, quiero explicarte el porque de este podcast. Y es que hace recientemente he recibido varios comentarios sobre la Raspberry, para darle uso, y aprovechar todo lo que estamos haciendo en el servidor, también en la Raspberry.
Esta ha sido la razón para reactivar alguna de las Raspberry que tenía durmiendo el sueño de los justos. En este primer podcast, empezamos de cero. Vamos a poner las bases. Para empezar a instalar todo lo que he ido instalando durante estos últimos tiempos en el servidor, instalarlo también en la Rasbperry.
De paso, retomamos un poco de Bash, scripting y todo ese tipo de cosillas que tanto nos hacen disfrutar.
Crear usuario
sudo adduser lorenzo
sudo gpasswd -a lorenzo adm
sudo gpasswd -a lorenzo sudo
Eliminar a Pi
sudo deluser -remove-home pi
Modificar el acceso por ssh
Crear clave público privada,
Port 1234
PermitRootLogin no
PasswordAuthentication no
PermitEmptyPasswords no
Habilitar el cortafuegos
Te recomiendo que instales una herramienta para ayudarte con la gestión del cortafuegos. En concreto que instales ufw
. Esto es tan sencillo como ejecutar la siguiente instrucción,
sudo apt install ufw
sudo ufw allow 1234/tcp
sudo ufw enable
Recuerda que si tienes cualquier servicio, por ejemplo, algunos contenedores docker funcionando, deberías habilitar las reglas de firewall antes, o de lo contrario perderás su funcionamiento.
Fail2ban
Si quieres mejorar la seguridad, te recomiendo el siguiente artículo sobre bloquear accesos indeseables en tu servidor.
En este artículo te hablo sobre fail2ban. Se trata de una potente herramienta que te permitirá vigilar quien intenta entrar en tu Raspberry, en este caso. Y en su caso impedir el acceso.
Como explico en ese artículo, el funcionamiento de esta herramienta es sencillo. Lo que hace es monitorizar los archivos de registro, en busca de actividad sospechosa. Por ejemplo reintentos.
Homogeneizar
Lo siguiente es homogeneizar tu Raspberry, para que cada vez que entres en ella te encuentres como en tu casa. Para esto, es necesario realizar algunas operaciones básicas, que nos permitan tener instaladas las mismas herramientas.
Así, y tal y como te comenté en un podcast reciente, la cuestión es que en la mayoría de servidores tengo instalado Bash, con lo que el conjunto de herramientas que voy a instalar son similares
Bash-it
La primera de las herramientas a instalar es Bash-it. Le he dedicado varios episodios del podcast, artículos y mas a esta herramienta, o mejor dicho framework. Esto te va ayudar a configurar alias, complementos, autocompletado y mucho mas.
Starship
Esta herramienta, o embellecedor del prompt del que te hablé en el episodio anterior del podcast, se ha convertido en un imprescindible para mi y por esta razón también se ha venido conmigo.
Zoxide
De nuevo zoxide para movernos en la terminal como pez en el agua. Se trata de una herramienta que te mueve entre los directorios que utilizas o en los que normalmente te encuentras.
Skim
Otra de las herramientas que instalé en el podcast anterior, y que no es mas que un fuzzy finder pero implementado en Rust.
Cargo y Rust
Como tengo intención de instalar diversas herramientas en Rust, vamos a instalar las herramientas necesarias que posteriormente utilizaremos. En concreto, aquí estoy haciendo un poco de trampa, porque en realidad e instalado primero Cargo y Rust, y posteriormente skim, pero me he permitido esta licencia.
chezmoi
Hasta la fecha estaba utilizad dotdrop
como herramienta para gestionar mis dotfiles. Sin embargo, cuando he ido a instalarlo en la Raspberry me ha resultado completamente imposible.