Preparar un servidor Debian con SSH y UFW

·5 min de lectura·

La configuración inicial de un servidor remoto debe proteger el acceso administrativo sin dejarte fuera. Esta guía prepara una cuenta normal con privilegios administrativos, instala una clave SSH, cambia el puerto de escucha y habilita UFW en un servidor Debian. Mantén abierta la sesión actual hasta verificar el nuevo acceso desde otra terminal.

Importante: confirma también las reglas del firewall del proveedor o del panel de hosting. Permitir un puerto en UFW no lo abrirá si una regla externa lo bloquea.

Preparar una cuenta y una clave SSH

Accede con el método proporcionado por el proveedor y crea o confirma una cuenta administrativa normal. Usa sudo para las tareas de administración y evita iniciar sesión directamente como root.

En el equipo cliente, genera una clave si aún no tienes una:

ssh-keygen -t ed25519

Instala la clave pública en la cuenta del servidor:

ssh-copy-id usuario@servidor

Abre otra terminal y confirma que puedes iniciar sesión con la clave antes de cambiar la configuración de SSH. Si ssh-copy-id no está disponible, añade la clave pública a ~/.ssh/authorized_keys del usuario remoto y revisa la propiedad y los permisos de .ssh y authorized_keys.

Cambiar la configuración de OpenSSH

En Debian, la configuración del servidor OpenSSH se encuentra en /etc/ssh/sshd_config; la documentación de Debian describe opciones como Port, PermitRootLogin, PubkeyAuthentication y PasswordAuthentication [1]. Antes de editar, guarda una copia:

sudo cp -a /etc/ssh/sshd_config /etc/ssh/sshd_config.backup
sudo nano /etc/ssh/sshd_config

Asegúrate de que estas directivas estén activas y no duplicadas en otra configuración aplicable:

Port 2345
PubkeyAuthentication yes
PermitRootLogin no
PasswordAuthentication no
KbdInteractiveAuthentication no

Desactiva KbdInteractiveAuthentication solo si el servidor no depende de ese método para una autenticación multifactor; comprueba primero la política de acceso que tenga configurada.

2345 es un puerto de ejemplo: sustitúyelo por el que hayas elegido. Cambiar el puerto reduce algunos intentos automatizados dirigidos al puerto predeterminado, pero no sustituye la autenticación por clave ni las actualizaciones.

Antes de aplicar cambios, valida la sintaxis:

sudo sshd -t

Si no devuelve errores, prepara UFW y las reglas externas para permitir el puerto nuevo. Después recarga el servicio SSH:

sudo systemctl reload ssh

Debian incluye configuraciones adicionales mediante directivas Include en algunas instalaciones. Si los valores no se aplican, revisa los archivos incluidos y consulta la configuración efectiva con sudo sshd -T [1]. No des por hecho que una línea duplicada al final sobrescribe un valor leído antes.

Configurar UFW sin cortar la conexión

Si UFW no está instalado, instálalo:

sudo apt update
sudo apt install ufw

Antes de habilitarlo, añade también reglas para cualquier otro servicio que deba seguir accesible, como HTTPS. La política de entrada predeterminada que se configura a continuación bloqueará el tráfico entrante que no tenga una regla permitiéndolo.

Añade primero una regla para el puerto SSH elegido y define una política de entrada restrictiva:

sudo ufw allow 2345/tcp
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw status verbose

Confirma que la regla del puerto coincide con tu configuración y habilita el firewall:

sudo ufw enable
sudo ufw status verbose

UFW permite añadir reglas por puerto y consultar las reglas activas con status; enable activa el firewall [2]. No ejecutes ufw reset como parte de una puesta en marcha rutinaria: restablece las reglas gestionadas por UFW y puede retirar accesos que necesitabas [2].

Probar desde una segunda sesión

Sin cerrar la sesión administrativa original, abre una terminal nueva en el cliente:

ssh -p 2345 usuario@servidor

Comprueba que la conexión funciona con tu clave y que puedes usar sudo. Si falla, conserva la sesión original y revisa sudo sshd -t, sudo systemctl status ssh, sudo ufw status verbose y las reglas del proveedor. No cierres el acceso que funciona hasta resolver el problema.

Cuando hayas confirmado el acceso nuevo, elimina la regla del puerto anterior si ya no la necesitas. Sustituye el puerto del ejemplo por el puerto antiguo real:

sudo ufw delete allow 22/tcp

Zona horaria

Para seleccionar la zona horaria del servidor Debian, ejecuta el asistente del paquete tzdata:

sudo dpkg-reconfigure tzdata

La zona horaria afecta a las horas que muestran los registros y algunas aplicaciones; elige la correspondiente al uso del servidor y verifica el resultado antes de diagnosticar diferencias horarias.

En resumen

  • Instala y prueba la clave SSH antes de deshabilitar la autenticación por contraseña.
  • Valida la configuración con sshd -t antes de recargar el servicio.
  • Permite el nuevo puerto en UFW y en el firewall del proveedor.
  • Mantén la sesión original abierta mientras pruebas una segunda conexión.
  • No uses ufw reset sin revisar qué reglas se eliminarán.

📚 Fuentes consultadas

  1. sshd_config(5) — OpenSSH server configuration file — Debian Manpages
  2. ufw(8) — program for managing a netfilter firewall — Debian Manpages

Imagen

Configuración de acceso SSH y firewall UFW en un servidor Debian

¿Te ha resultado útil?

Compártelo con tu red de contactos profesionales.

Comentarios (0)

Sé el primero en comentar.