Los riesgos de SSH sin proteccion

SSH (Secure Shell) es el protocolo estandar para administrar servidores Linux de forma remota. Aunque SSH cifra toda la comunicacion, el servicio SSH expuesto al internet publico es un objetivo constante de ataques automatizados de fuerza bruta que intentan adivinar credenciales de acceso probando combinaciones de usuario y contrasena a velocidades de miles de intentos por minuto. Un servidor SSH sin configuracion de seguridad adecuada puede ser comprometido en cuestion de horas si usa contrasenas debiles o el usuario root esta habilitado para conexiones remotas.

Configuraciones de seguridad en /etc/ssh/sshd_config

El archivo de configuracion principal de SSH se encuentra en /etc/ssh/sshd_config. Las siguientes modificaciones mejoran significativamente la seguridad:

# Cambiar el puerto por defecto (de 22 a otro)
Port 2222

# Deshabilitar el acceso root directo
PermitRootLogin no

# Deshabilitar autenticacion por contrasena (solo llaves SSH)
PasswordAuthentication no

# Limitar el numero de intentos de autenticacion
MaxAuthTries 3

# Tiempo maximo de sesion sin autenticar (segundos)
LoginGraceTime 30

# Deshabilitar el reenvio X11 si no se necesita
X11Forwarding no

Despues de modificar el archivo, reiniciar el servicio SSH:

sudo systemctl restart sshd

Autenticacion por llaves SSH (recomendado)

La autenticacion por llaves SSH es mas segura que las contrasenas porque requiere poseer el archivo de llave privada, que nunca se transmite por la red. El proceso para configurarla:

  1. Generar el par de llaves en el equipo local:
ssh-keygen -t ed25519 -C "comentario_descriptivo"
  1. Copiar la llave publica al servidor:
ssh-copy-id usuario@ip_del_servidor
  1. Verificar que la conexion funciona con la llave antes de deshabilitar la autenticacion por contrasena.

Tabla de configuraciones de seguridad SSH

ConfiguracionValor recomendadoImpacto en seguridad
Puerto SSHPuerto no estandar (ej: 2222)Reduce ataques automatizados en port 22
PermitRootLoginnoObliga a escalar privilegios despues de conectar
PasswordAuthenticationno (con llaves configuradas)Elimina el riesgo de fuerza bruta
AllowUsersLista de usuarios permitidosBloquea intentos con usuarios inexistentes
Fail2banInstalado y configuradoBloquea IPs tras intentos fallidos

Instalar y configurar Fail2ban para SSH

sudo apt install fail2ban
# Configuracion basica para SSH en /etc/fail2ban/jail.local
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
bantime = 3600
Was this answer helpful? 0 Users Found This Useful (0 Votes)