En esta entrada se definen los pasos a seguir para configurar una Raspberry Pi y hacerla accesible desde internet.
Asignar IP fija a raspberry pi
Para configurar una IP estática en derivados de Debian, debemos editar el fichero /etc/dhcpcd.conf con el comando:
| |
Descomentamos y modificamos las líneas que están comentandas para la IP estática de manera que nos quedaría lo siguiente:
| |
Una vez guardado, reseteamos la raspberry:
| |
Y una vez encendida lo comprobamos con:
| |
Mapeo de IP a nombres más legibles
Modificamos el archivo /etc/hosts en cada máquina que se quiera mapear la dirección IP a un nombre más legible con:
| |
Y añadimos al final:
| |
Seguridad
Configuración SSH
Una opción para hardenizar la configuración SSH es mediante la colección de ansible [ssh_hardening]](https://github.com/dev-sec/ansible-collection-hardening/tree/master/roles/ssh_hardening). Para la simplicación de esta sección, editaremos el archivo /etc/ssh/sshd_config y añadiremos lo siguiente.
| |
Validamos la configuración del fichero sshd_config es correcta con los siguientes comandos:
| |
Se guardan los cambios y se reinicia el servicio con:
| |
Ahora el comando para conectarnos es:
| |
En caso de olvidar el puerto escogido, se puede hallar mediante un escaneo de puertos con el comando:
| |
Configuración de fail2ban
Se instala con los siguientes comandos:
| |
Fail2ban trae un archivo de configuración de ejemplo: /etc/fail2ban/jail.conf. Es recomendable copiarlo y guardarlo en el mismo directorio con el nombre jail.local.
| |
Editamos el archivo jail.local y modificamos lo siguiente:
| |
Como se puede apreciar, hemos activado los módulos de sshd y traefik con enable = true.
Una vez modificado, reiniciamos el servicio con:
| |
Para ver qué IPs han sido bloqueadas, se puede utilizar el siguiente comando:
| |
Para comprobar los módulos o jaulas activas, se utiliza:
| |
Configuración del firewall UFW
Se instala con:
| |
Por defecto está desactivado, entonces, empezaremos configurando que deniegue cualquier tipo de conexión por cualquier puerto con el comando:
| |
Por otro lado, permitiremos las salidas de paquetes para cualquier puerto:
| |
Ahora, permitiremos las conexiones de entrada de SSH en el puerto 2251 y para los servicios web en los puertos 80 (protocolo HTTP) y el 443 (protocolo HTTPS).
| |
Para ver la regla añadida, se utiliza el comando:
| |
Se activan las reglas con el comando:
| |
Para ver el estado del cortafuegos se puede ejecutar:
| |
Mantener el sistema actualizado
Automatizaremos la actualización de paquetes utilizando la herramienta crontab. Por ejemplo, actualizaremos el paquete ssh todos los días a las 7 de la mañana y que se guarden los logs en el archivo /var/log/ssh_update.txt.
| |
Añadimos la siguiente línea:
| |
Configuración del router
Entramos en la configuración del router buscando la IP 192.168.1.1 en un navegador. Cambiaremos la contraseña por defecto de administración y la SSID y contraseña del Wi-Fi.
Recomendamos seguir la entrada de Configuración de seguridad y privacidad un router