hoy vamos a ver como asegurar en forma básica una Raspberry PI (RPI) aunque también puede aplicarse a casí cualquier placa (Beaglebone,Cubieboard,Hummingboard,Bannanapi,…) que corra Linux.
Configuración Inicial
Una vez iniciamos la RPI lo primero será ingresar al sistema (Yo lo estoy haciendo directo desde la terminal) y llamar una consola root:
sudo bash
Una vez la tenemos, vamos a ingresar a la configuración básica de la RPI:
raspi-config
En el menú principal cambiamos el password por defecto para “pi” y nos dirigimos a opciones avanzadas para reemplazar el hostname y habilitar el acceso ssh. Una vez hecho esto, le damos a finalizar y la RPI se reinicia aplicando cambios…
Ahora, ubicamos la IP de la pequeña RPI (en el router,con NMAP, etc..) y nos logueamos. Si estamos en windows podemos usar PuTTY y en linux/unix solo hará falta abrir la terminal e ingresar los parámetros de conexión.
Creando nuevo usuario, eliminando PI
Con acceso exitoso, vamos a verificar los grupos de usarios:
groups
Creamos un nuevo usuario con sus respectivos permisos:
sudo useradd -m -G (Acá copian el resultado que les da “groups” separado por comas “,”) Nombre_Nuevo_Usuario
Password para nuevo usuario
passwd Nombre_Nuevo_Usuario
Apagan (-h) o Reinician (-r) a la pequeña…
sudo shutdown -h now
sudo shutdown -r now
Ingresamos de nuevo (ssh),abrimos terminal root y eliminamos el usuario “pi” junto con todos sus archivos (es un guión doble antes del “remove” solo que WP nos deja uno)
deluser –remove-all-files pi
Una vez el sistema confirme que el usuario ha sido eliminado debemos habilitar las características de sudo al nuevo usuario:
visudo
y reemplazamos “pi” por el Nombre_Nuevo_Usuario
en este punto actualizamos el sistema
apt-get update
apt-get upgrade
Configuración opcional # 1
El siguiente paso es opcional para aquellos que siempre trabajan desde una misma maquina. Eliminaremos el acceso SSH con una contraseña y habilitaremos el acceso con el “par de llaves”:
Linux:
1. Generar las llaves siguiendo las instrucciones en pantalla:
ssh-keygen
2. Tenemos 2 llaves generadas ($HOME/.ssh/id_rsa y $HOME/.ssh/id_rsa.pub)
3. Creamos un directorio para almacenar la llave
mkdir .ssh
4. Usando el comando scp vamos a copiar la llave (ojo solo la pública) a nuestra RPI
scp ~/.ssh/id_rsa.pub SamuraiHNSA@x.x.x.x:/home/ssh
5.Modificamos permisos para la llave
chown -R Nombre_Usuario:Nombre_Usuario .ssh
chmod 700 .ssh
chmod 600 .ssh/authorized_keys
6. Últimos detalles
Ya tenemos acceso SSH con llaves, ahora vamos a eliminar el acceso con password. Editamos (PermitRootLogin y PasswordAuthentication) y salvamos:
sudo nano /etc/ssh/sshd_config
PermitRootLogin no
PasswordAuthentication no OJO—> Sin “#”
Y reiniciamos el servicio:
sudo service ssh restart
Configuración opcional # 2
Se puede realizar una configuración de seguridad con Fail2ban (Cotard) y con IPTables (Pablo).
Verificar con SHODAN
Si tienes configurado No-IP u otro servicio que habilite el acceso remoto estaría muy bien revisar en SHODAN con tu IP
Windows con PuTTY:
1. Cerrar la sesión actual (exit)
2. Descargar y correr PuTTYgen
3. Click en el botón “gererar” (una vez inicie se debe mover el mouse para generar entropia y se complete el proceso…)
4. Copiar la llave en un bloc de notas y guardar…
5. Ingresar contraseña(confirmar) y hacer click en “salvar llave privada” para salvar el archivo
6. Abrir PuTTY y en Conexión>>SSH>>Auth agregamos la ruta del archivo de la llave privada.
7. Ingresar de nuevo a la RPI y crear el archivo que mantiene las llaves:
mkdir ~/.ssh; touch ~/.ssh/authorized_keys; chmod 700 ~/.ssh
8. Editamos agregando la llave pública(del punto 4) y salvamos:
nano ~/.ssh/authorized_keys
9. Salimos de la sesión SSH e ingresamos de nuevo
10. Digitamos el pass del punto 5