Configurar UFW en Ubuntu 24.04 sin perder el acceso SSH
Activa UFW en Ubuntu 24.04 con un procedimiento comprobable: permite SSH antes y prueba otra conexión desde una segunda terminal.
En un servidor remoto, activa UFW solo después de identificar y permitir el puerto SSH real. Mantén abierta la sesión actual, prepara una consola del proveedor o física y usa otra terminal para probar una nueva conexión. Los ejemplos suponen SSH en 22/tcp y no sustituyen el cortafuegos del proveedor.
Comprueba SSH y el puerto
Mira los puertos TCP en escucha y la configuración efectiva de sshd. Con activación por socket, ss puede mostrar systemd y no sshd como proceso; no filtres solo por nombre. Examina el perfil UFW OpenSSH antes de usarlo. Si SSH escucha en 2222, cambia las reglas de ejemplo.
sudo ss -lntp
sudo sshd -T | grep '^port '
Instala y revisa el estado
Instala UFW si hace falta. Status: inactive es normal en una instalación nueva. Revisa reglas existentes, puertos de aplicaciones, IPv6 y cortafuegos externos antes de activarlo. Conserva la sesión administrativa abierta.
sudo apt update
sudo apt install ufw
sudo ufw status verbose
sudo ufw app info OpenSSH
Define las políticas y permite SSH
Deniega las conexiones nuevas de entrada, permite las salientes y añade la regla SSH antes de ufw enable. Usa 22/tcp solo si es el puerto correcto. También puedes usar sudo ufw allow OpenSSH si el perfil incluye ese puerto. Revisa las reglas preparadas con ufw show added.
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp
sudo ufw show added
Activa y prueba otra sesión
Activa UFW y consulta el estado detallado y las reglas numeradas. Sin cerrar la primera sesión, abre otra conexión SSH y ejecuta un comando inocuo. Una sesión ya establecida no demuestra que puedas crear otra. Si falla, corrige la regla desde la sesión abierta o la consola de recuperación.
sudo ufw enable
sudo ufw status verbose
sudo ufw status numbered
Limita la dirección de origen después
La regla de ejemplo permite SSH desde 203.0.113.10, una dirección de documentación: sustitúyela por tu IP pública estática real, la que ve el servidor. Prueba otra conexión desde esa fuente antes de retirar la regla general. Si tu IP cambia, usas IPv6 o accedes desde varias redes, prepara reglas adecuadas y una vía de recuperación.
sudo ufw allow proto tcp from 203.0.113.10 to any port 22
sudo ufw status numbered
Abre solo los servicios necesarios
Un sitio público puede necesitar 80/tcp y 443/tcp. Una regla del cortafuegos no inicia un servicio y uno en escucha no es necesariamente accesible desde fuera. Restringe bases de datos y paneles de administración por origen e interfaz.
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw status numbered
Límites, orden e IPv6
UFW limit reduce ráfagas de conexiones SSH sin sustituir la autenticación con clave. El ejemplo elimina primero una regla general 22/tcp: ejecútalo solo si coincide exactamente con la tuya; si no, consulta las reglas numeradas y quita la entrada correcta. La primera regla coincidente puede prevalecer. Comprueba IPV6=yes si hay IPv6 público y revisa ambas familias.
sudo ufw delete allow 22/tcp
sudo ufw limit 22/tcp
grep '^IPV6=' /etc/default/ufw
Registros y diagnóstico
Usa un nivel moderado de registro y mira los eventos recientes. Compara puertos en escucha, reglas UFW y cortafuegos del proveedor. Un fallo puede deberse también a SSH, la red intermedia o una IP de origen diferente.
sudo ufw logging low
sudo journalctl -k --grep=UFW --since '30 minutes ago'
sudo ss -lntup
Recuperación y fuente
Si la conexión nueva falla, conserva la antigua. Examina el servicio y las reglas; corrígelas desde la sesión abierta o la consola del proveedor. Desactivar UFW temporalmente desde una consola fiable puede servir en una emergencia, pero después debes reparar las reglas. Guía oficial: https://documentation.ubuntu.com/server/how-to/security/firewalls/index.html .
sudo systemctl status ssh --no-pager
sudo ufw status numbered
Compartir
¿Cuál es tu reacción?
Me gusta
0
No me gusta
0
Me encanta
0
Divertido
0
Enfadado
0
Triste
0
¡Vaya!
0