Página de Alejandro Muñoz Fernández

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

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
Etiquetas: