Por que la seguridad de SSH es critica

SSH es la puerta de entrada principal a la administracion de cualquier servidor Linux. Un servidor con el puerto SSH 22 abierto recibe constantemente intentos automatizados de acceso mediante ataques de fuerza bruta que prueban combinaciones de usuarios y contrasenas conocidas. Los logs de autenticacion de un servidor nuevo expuesto a internet muestran tipicamente miles de intentos de acceso fallidos por dia desde IPs de todo el mundo.

Implementar las medidas de seguridad correctas en SSH reduce dramaticamente el riesgo de acceso no autorizado y el ruido en los logs del sistema, facilitando la deteccion de actividad sospechosa legitima.

Configuracion completa de seguridad en sshd_config

# Archivo: /etc/ssh/sshd_config

# Cambiar el puerto predeterminado
Port 2222

# Solo protocolo SSH versión 2
Protocol 2

# Deshabilitar acceso root directo
PermitRootLogin no

# Deshabilitar autenticacion por contrasena
PasswordAuthentication no
ChallengeResponseAuthentication no

# Reducir intentos de autenticacion
MaxAuthTries 3
MaxSessions 3

# Tiempo maximo para autenticar
LoginGraceTime 30

# Desconectar sesiones inactivas
ClientAliveInterval 300
ClientAliveCountMax 2

# Limitar usuarios que pueden conectarse via SSH
AllowUsers usuarioadmin operador

Reiniciar SSH despues de cada cambio y verificar que la nueva sesion funciona antes de cerrar la sesion actual:

sudo sshd -t && sudo systemctl restart sshd

Configurar autenticacion por llaves SSH

# En el equipo local: generar par de llaves Ed25519 (mas seguro que RSA)
ssh-keygen -t ed25519 -C "admin-servidor"

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

# O manualmente en el servidor:
cat ~/.ssh/id_ed25519.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh

Instalar y configurar Fail2ban para SSH

# Instalar fail2ban
sudo apt install fail2ban   # Ubuntu/Debian
sudo dnf install fail2ban   # AlmaLinux

# Crear configuracion local (no editar jail.conf directamente)
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Editar /etc/fail2ban/jail.local con la configuracion para SSH:

[sshd]
enabled  = true
port     = 2222
filter   = sshd
logpath  = /var/log/auth.log
maxretry = 5
findtime = 600
bantime  = 3600

Tabla de medidas de seguridad SSH y su impacto

Medida Dificultad Reduccion de riesgo
Cambiar puerto de 22 a otro Baja Alta (elimina el 90% del ruido automatizado)
Deshabilitar acceso root Baja Alta
Usar llaves SSH en lugar de contrasenas Media Muy Alta (elimina el riesgo de fuerza bruta)
Instalar Fail2ban Baja Alta (bloquea IPs automaticamente)
Limitar usuarios con AllowUsers Baja Media
Was this answer helpful? 0 Users Found This Useful (0 Votes)