Cortafuegos UFW para un servidor en Raspberry Pi
Receta para configurar el cortafuegos UFW permitiendo el acceso desde fuera de casa.
1. Política predeterminada: denegar todo el tráfico
Por seguridad, lo ideal es denegar de forma predeterminada tanto el tráfico entrante como el saliente, para luego abrir únicamente lo que necesitemos.
$ sudo ufw default deny incoming
$ sudo ufw default deny outgoing
2. Tráfico permitido
2.1. Salida DNS
Esencial para que la Raspberry Pi pueda resolver nombres de dominio.
$sudo ufw allow out 53/udp$ sudo ufw allow out 53/tcp
2.2. NTP
Acceso a servidores NTP para sincronizar la fecha y la hora del sistema:
$ sudo ufw allow out 123/udp
2.3. Navegación web
Permite las conexiones salientes desde la Raspberry Pi a servidores web externos:
$sudo ufw allow out 80/tcp$ sudo ufw allow out 443/tcp
2.4. Servidores FTP
Ya casi no se utilizan pero, por si acaso (nota: el modo activo requiere el puerto 20):
$sudo ufw allow out 20/tcp$ sudo ufw allow out 21/tcp
2.5. Servidores SSH
Acceso al servidor SSH de la Raspberry Pi solo desde la red local:
$ sudo ufw allow in from 192.168.1.0/24 to any port 22 proto tcp
Acceso desde la Raspberry Pi a cualquier servidor SSH externo en internet:
$ sudo ufw allow out 22/tcp
2.6. Servidores Samba
Para compartir archivos en red local. Solo se permite el tráfico dentro de la LAN:
$sudo ufw allow in from 192.168.1.0/24 to any port 137 proto udp$ sudo ufw allow in from 192.168.1.0/24 to any port 138 proto udp
$sudo ufw allow in from 192.168.1.0/24 to any port 139 proto tcp$ sudo ufw allow in from 192.168.1.0/24 to any port 445 proto tcp
$sudo ufw allow out to 192.168.1.0/24 port 137 proto udp$ sudo ufw allow out to 192.168.1.0/24 port 138 proto udp
$sudo ufw allow out to 192.168.1.0/24 port 139 proto tcp$ sudo ufw allow out to 192.168.1.0/24 port 445 proto tcp
2.7. mDNS
Permite la resolución de nombres .local mediante Avahi / Bonjour. Se utiliza el puerto 5353 y la dirección multicast 224.0.0.251:
$sudo ufw allow in proto udp to 224.0.0.251 port 5353$ sudo ufw allow out proto udp to 224.0.0.251 port 5353
2.8. RDC (Remote Desktop Connection)
Acceso por escritorio remoto mediante el protocolo RDP, limitado a la red local:
$ sudo ufw allow in from 192.168.1.0/24 to any port 3389 proto tcp
2.9. DHCP (Opcional, si se usa IP dinámica)
Si tu Raspberry Pi no tiene una IP fija y depende de un servidor DHCP para obtenerla:
$sudo ufw allow out 67/udp$ sudo ufw allow in 68/udp
2.10. Ping / ICMP (Opcional)
Permite realizar diagnósticos de red enviando pings desde la Raspberry y respondiendo a los pings recibidos desde la LAN:
$ sudo ufw allow out proto icmp
$ sudo ufw allow in from 192.168.1.0/24 proto icmp
3. Activar el cortafuegos
⚠️ ¡Atención! Antes de activar el cortafuegos, asegúrate de que la regla de entrada para SSH (
port 22) está correctamente configurada para evitar perder la conexión con el servidor.
$ sudo ufw enable
4. Verificar el estado
Para comprobar que todas las reglas se han aplicado correctamente:
$ sudo ufw status verbose