Español

Proteger la conexión SSH

Proteger la conexión SSH contra ataques de fuerza bruta

El puerto SSH predeterminado (22) es un objetivo frecuente de ataques automatizados. Esta guía explica cómo cambiar el puerto y reforzar la configuración de SSH.

📋 Requisitos previos

  • VPS con acceso root o sudo
  • Conexión SSH activa
  • UFW instalado y configurado (ver Instalar UFW)

⚠️ IMPORTANTE: Mantenga una sesión SSH abierta

Importante: Antes de empezar, mantenga una sesión SSH activa. Abra dos terminales SSH en paralelo: una para trabajar y otra de respaldo.

🔧 Cambiar el puerto SSH

Paso 1: Elegir un nuevo puerto

Elija un puerto entre 1024 y 65535. Evite 22, 80, 443, 3306 y 5432. Ejemplos: 2222, 2200, 1022.

Paso 2: Modificar la configuración

Bash
# Editar el archivo de configuración SSH sudo nano /etc/ssh/sshd_config

Paso 3: Cambiar el puerto

# Antes
#Port 22

# Después (reemplace 2222 por su puerto)
Port 2222

Paso 4: Guardar y verificar

Bash
sudo sshd -t

Paso 5: Permitir el nuevo puerto en UFW

Bash
1# Permitir el nuevo puerto SSH (reemplace 2222) 2sudo ufw allow 2222/tcp 3 4# Opcional: eliminar el puerto 22 5sudo ufw delete allow 22/tcp 6 7sudo ufw reload 8sudo ufw status | grep 2222

Paso 6: Reiniciar SSH y probar

Bash
sudo systemctl restart sshd sudo systemctl status sshd

En una nueva terminal, pruebe la conexión:

Bash
ssh -p 2222 user@your-ip

🔒 Opciones de seguridad adicionales

Desactivar el acceso root

Importante: Asegúrese de tener un usuario con sudo antes de aplicar este cambio.

Bash
sudo nano /etc/ssh/sshd_config # PermitRootLogin no sudo sshd -t sudo systemctl restart sshd

Limitar intentos de conexión

Bash
MaxAuthTries 3 LoginGraceTime 30

Desactivar autenticación por contraseña (solo claves SSH)

Bash
PasswordAuthentication no PubkeyAuthentication yes

Advertencia: Solo active esto si ya ha configurado y probado su clave SSH.

Configuración recomendada

Port 2222
PermitRootLogin no
MaxAuthTries 3
LoginGraceTime 30
Protocol 2
X11Forwarding no
AllowTcpForwarding no
ClientAliveInterval 300
ClientAliveCountMax 2

Tras cada modificación:

Bash
sudo sshd -t sudo systemctl restart sshd

🔄 Crear un usuario con sudo

Bash
sudo adduser myuser sudo usermod -aG sudo myuser su - myuser sudo whoami

✅ Verificación final

Bash
sudo systemctl status sshd sudo ss -tlnp | grep ssh sudo sshd -T | grep port sudo tail -f /var/log/auth.log

🛡️ Protección adicional con fail2ban

Bash
sudo apt update sudo apt install fail2ban -y sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local sudo nano /etc/fail2ban/jail.local

Configuración recomendada:

INI
1[sshd] 2enabled = true 3port = 2222 4maxretry = 3 5bantime = 3600 6findtime = 600
Bash
sudo systemctl start fail2ban sudo systemctl enable fail2ban sudo fail2ban-client status sshd

🆘 Solución de problemas

No puedo conectarme por SSH

  1. Use su sesión de respaldo
  2. Si no tiene sesión de respaldo: consola VNC/KVM del panel o soporte Infrawire
  3. Restaure temporalmente Port 22 en /etc/ssh/sshd_config

El puerto SSH no responde

Bash
sudo ss -tlnp | grep ssh sudo ufw status | grep 2222 sudo journalctl -u sshd -n 50

📚 Recursos adicionales

❓ Preguntas frecuentes

P: ¿Qué puerto debo elegir?
R: Entre 1024 y 65535, evitando puertos comunes. 2222 o 2200 son buenas opciones.

P: ¿Es necesario cambiar el puerto SSH?
R: Muy recomendable. Reduce significativamente los ataques automatizados.

P: ¿Cómo conectarme con el nuevo puerto?
R: ssh -p 2222 user@your-ip


¡Buena seguridad! 🚀

¿Necesita ayuda?

¿Preguntas sobre esta guía? Nuestro equipo y la comunidad están aquí para ayudarle.

Mantente al día con las últimas ofertas, descuentos y promociones especiales.

Ver promociones