Mantener el sistema actualizado

sudo apt update && sudo apt upgrade -y
sudo apt install unattended-upgrades   # instala actualizaciones de seguridad automáticamente
sudo dpkg-reconfigure --priority=low unattended-upgrades

Asegurar el acceso SSH

Edita /etc/ssh/sshd_config:

PermitRootLogin no
PasswordAuthentication no      # obliga a usar clave pública, no contraseña
MaxAuthTries 3
sudo systemctl restart sshd

No te bloquees fuera del servidor

Antes de desactivar PasswordAuthentication, verifica que tu clave pública funciona correctamente conectándote en una sesión nueva sin cerrar la actual.

Activar un firewall

sudo ufw allow OpenSSH     # permite SSH antes de activar el firewall
sudo ufw enable            # activa ufw
sudo ufw status verbose    # revisa las reglas activas

Abre solo los puertos que realmente necesites (por ejemplo 80 y 443 para un servidor web) y deja todo lo demás bloqueado por defecto.

Buenas prácticas adicionales

  • Instala fail2ban para bloquear IPs con intentos de acceso fallidos repetidos.
  • Crea un usuario con privilegios sudo para el trabajo diario; evita usar root directamente.
  • Revisa periódicamente los logs de autenticación en /var/log/auth.log.
  • Desactiva los servicios que no uses con systemctl disable.

Preguntas frecuentes

¿Es necesario cambiar el puerto por defecto de SSH?

No es imprescindible, pero reduce el ruido de bots automatizados que escanean el puerto 22. La seguridad real viene de las claves públicas y el firewall, no de ocultar el puerto.

¿Qué hace exactamente fail2ban?

Analiza los logs en busca de intentos de acceso fallidos y bloquea temporalmente (o de forma permanente) la IP de origen tras un número determinado de fallos.

Artículos relacionados