Para conectar nuestra RPI a una red y no dejar todos sus puertos abiertos, podemos recurrir a un firewall (Una de las tantas de medidas de seguridad recomendadas para cualquier equipo que conectemos a internet). Uno de los mas simples tanto por uso como por configuración es el Uncomplicated Firewall (ufw). Para su instalación seguiremos los siguientes pasos en nuestra consola, habiendo actualizado los repositorios previamente:
sudo apt-get install ufw
Con este simple comando ya tendremos instalado este firewall, ahora solo nos resta configurar las reglas para ponerlo en funcionamiento. Como nota a tener en cuenta, para poder ejecutar todos los comandos de configuración sera necesario realizarlos con sudo o siendo root.
Para poder ver el estado de nuestro firewall bastara con el comando:
sudo ufw status
o si lo queremos mas detallado:
sudo ufw status verbose
Para ver las reglas enumeradas podemos hacer:
sudo ufw status numbered
Para comenzar, vamos a denegar el acceso a todos lo que quiera entra, pero permitir a lo que quiera salir. Para ello ingresamos los siguientes comandos:
sudo ufw default allow outgoing sudo ufw default deny incoming
Vamos a permitir por ejemplo el acceso remoto por ssh, vnc y rdp. Con los siguientes comandos respectivamente:
sudo ufw allow ssh sudo ufw allow
Habilitamos los paquetes TCP en el puerto HTTP (80)
sudo ufw allow 80/tcp sudo ufw allow http/tcp
También podemos habilitar el puerto HTTPS (443) con la siguiente configuración
sudo ufw allow 443
Podemos asignar también permisos a múltiples puertos secuenciales (para aplicaciones que usan de ellos como X11)
sudo ufw allow 6000:6007/tcp sudo ufw allow 6000:6007/udp
También podemos especificar que a un puerto se puedan conectar desde un rango de red especifico nada mas, para ello hacemos:
sudo ufw allow 192.168.0.0/24 to any port 22
permitir conexiones desde una interfaz particular a un puerto determinado.
sudo ufw allow in on eth0 to any port 80
Eliminar reglas
Para poder eliminar reglas contamos con varias alternativas. Podemos eliminarlas según su enumeración de status con el comando:
# Ejemplo para borrar la reglan N2 listada con el comando ufw status numbered sudo ufw delete 2
También podemos borrar la regla según su descripción con
sudo ufw delete allow 80
Bloquear una dirección IP
sudo ufw deny from 192.168.100.15
o si la queremos bloquear únicamente por una interfaz de red:
sudo ufw deny in on eth0 from 192.168.100.15
Cuando tengamos todas las reglas seteadas y querramos habilitar el ufw (o deshabilitar), solo nos resta ingresar el siguiente comando (para deshabilitarlo reemplazamos el enable por disable):
sudo ufw enable
Si queremos resetear todas las reglas para volver a configurar todo de 0, podemos hacer:
sudo ufw reset
Nota:
Cuando configuramos el ufw, lo que hace es configurar las IPTables, cualquier configuracion que tuvieramos preexistente sera eliminada.