Hardening

SSH hardening: más allá de cambiar el puerto

28 nov 2024 12 min lectura 247 visitas Actualizado: 05 jul 2026
SSH hardening: más allá de cambiar el puerto

El mito del puerto aleatorio

Cambiar el puerto SSH de 22 a 49152 reduce el ruido de bots, pero no añade seguridad real. Cualquier escáner de nmap lo encuentra en segundos. La seguridad real está en la configuración.

1. Claves ed25519

# Generar clave en el cliente
ssh-keygen -t ed25519 -C "tu@correo.com"

# Copiar al servidor
ssh-copy-id -i ~/.ssh/id_ed25519.pub usuario@servidor

2. Configuración de sshd_config

# /etc/ssh/sshd_config — Tinux Net estándar

Port 22
Protocol 2
PermitRootLogin no
PubkeyAuthentication yes
PasswordAuthentication no
AuthorizedKeysFile .ssh/authorized_keys

# Límites
MaxAuthTries 3
MaxSessions 5
LoginGraceTime 30

# Tiempos de inactividad
ClientAliveInterval 300
ClientAliveCountMax 2

# Deshabilitar extras
X11Forwarding no
AllowTcpForwarding no
PermitEmptyPasswords no

# Solo usuarios autorizados
AllowUsers deploy admin

3. Fail2ban para SSH

[sshd]
enabled  = true
port     = 22
filter   = sshd
logpath  = /var/log/auth.log
maxretry = 3
findtime = 600
bantime  = 3600
action   = nftables

4. Opcional: 2FA con Google Authenticator

apt install libpam-google-authenticator
# Añadir a /etc/pam.d/sshd:
auth required pam_google_authenticator.so nullok

Resultado

Con esta configuración, un atacante necesitaría: tu clave privada (que no existe en el servidor), el usuario exacto, y opcionalmente el código 2FA. Cambiar el puerto queda como decisión opcional del cliente.