Securización de sus VPS
Última actualización : 1 de enero de 2026
1. Configurar el acceso SSH con clave pública
Nivel: Esencial
El acceso SSH por contraseña es el principal objetivo de los ataques por fuerza bruta. La primera medida es pasar a una autenticación por clave pública/privada.
Paso 1 — Generar su par de claves en su máquina local:
ssh-keygen -t ed25519 -C "su@email.com"
# Siga las instrucciones y defina una passphrase fuertePaso 2 — Copiar la clave pública al VPS:
ssh-copy-id -i ~/.ssh/id_ed25519.pub root@su-ip-vpsPaso 3 — Desactivar la autenticación por contraseña:
nano /etc/ssh/sshd_config
PasswordAuthentication no
PermitRootLogin no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keyssystemctl restart sshd⚠️ Pruebe la conexión con su clave en un nuevo terminal ANTES de cerrar la sesión actual, para evitar quedarse bloqueado.
2. Crear un usuario no-root
Nivel: Esencial
Trabajar como root expone todo el sistema en caso de compromiso. Cree un usuario dedicado con privilegios sudo.
# Crear un usuario
adduser admin_cloudstore
# Añadir al grupo sudo
usermod -aG sudo admin_cloudstore
# Copiar las claves SSH a la nueva cuenta
rsync --archive --chown=admin_cloudstore:admin_cloudstore ~/.ssh /home/admin_cloudstore💡 Elija un nombre de usuario no genérico (evite "admin", "ubuntu", "user"). Un nombre personalizado dificulta el ataque por enumeración.
3. Cambiar el puerto SSH
Nivel: Esencial
El puerto 22 es el primero atacado por los bots. Cambiarlo a un puerto no estándar reduce drásticamente el ruido en sus logs.
nano /etc/ssh/sshd_config
# Cambiar la línea Port:
Port 2222
# Elija un puerto entre 1024 y 65535
systemctl restart sshd📌 No olvide abrir este nuevo puerto en su firewall antes de reiniciar SSH, y actualizar su comando de conexión: ssh -p 2222 user@ip
4. Configurar el firewall UFW
Nivel: Esencial
UFW (Uncomplicated Firewall) es la solución de firewall recomendada en Ubuntu/Debian. Aplique el principio del menor privilegio: bloquear todo por defecto, abrir solo lo necesario.
# Instalar UFW si no está
apt install ufw -y
# Política por defecto: bloquear todo en entrada
ufw default deny incoming
ufw default allow outgoing
# Permitir SSH en su nuevo puerto
ufw allow 2222/tcp
# Permitir HTTP/HTTPS si aloja un sitio web
ufw allow 80/tcp
ufw allow 443/tcp
# Activar el firewall
ufw enable
# Verificar el estado
ufw status verbose💡 Si utiliza una IP fija para conectarse, puede restringir SSH a esa IP únicamente: ufw allow from SU_IP to any port 2222
5. Instalar Fail2Ban
Nivel: Esencial
Fail2Ban supervisa los logs del sistema y banea temporalmente las IPs que realizan demasiados intentos de autenticación fallidos.
apt install fail2ban -y
# Crear una configuración local
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
nano /etc/fail2ban/jail.local
# Configurar estos parámetros en [DEFAULT]:
bantime = 3600 # Duración del baneo (1 hora)
findtime = 600 # Ventana de observación (10 min)
maxretry = 5 # Intentos antes del baneo
# Configurar la prisión SSH:
[sshd]
enabled = true
port = 2222
logpath = /var/log/auth.log
systemctl enable fail2ban && systemctl restart fail2ban
fail2ban-client status sshd6. Mantener el sistema actualizado
Nivel: Esencial
Las actualizaciones de seguridad corrigen vulnerabilidades conocidas. Una política de actualización rigurosa es indispensable.
# Actualizar manualmente
apt update && apt upgrade -y && apt autoremove -y
# Activar las actualizaciones de seguridad automáticas
apt install unattended-upgrades -y
dpkg-reconfigure --priority=low unattended-upgrades💡 Configure las actualizaciones automáticas únicamente para los parches de seguridad. Para las actualizaciones mayores (ej: nueva versión de PHP, MySQL), planifique una ventana de mantenimiento.
7. Gestionar los servicios activos
Nivel: Intermedio
Cada servicio activo es una puerta de entrada potencial. Desactive todo lo que no sea estrictamente necesario.
# Listar los servicios activos
systemctl list-units --type=service --state=active
# Desactivar un servicio innecesario (ejemplo)
systemctl disable bluetooth.service
systemctl stop bluetooth.service
# Verificar los puertos abiertos
ss -tuln- Desactive los servicios de escritorio (cups, avahi-daemon) en los VPS headless.
- Instale solo el software estrictamente necesario.
- Utilice
ss -tulnregularmente para auditar los puertos abiertos.
8. Implementar una estrategia de copia de seguridad
Nivel: Intermedio
Los ransomwares y los errores humanos pueden poner fin a su servicio en pocos segundos. Las copias de seguridad regulares no son negociables.
- Active los snapshots automáticos desde su área de cliente CLOUDSTORE.AFRICA
- Configure una copia de seguridad externa en un segundo VPS o un almacenamiento de objetos
- Pruebe la restauración de sus copias de seguridad regularmente (al menos una vez por trimestre)
- Aplique la regla 3-2-1: 3 copias, 2 soportes diferentes, 1 externa
- Cifre sus copias de seguridad si contienen datos sensibles
# Copia de seguridad MySQL con compresión
mysqldump --all-databases | gzip > /backup/mysql_$(date +%Y%m%d).sql.gz
# Rsync hacia un almacenamiento remoto
rsync -avz --delete /var/www/ backup_user@backup-server:/backups/www/9. Supervisar su VPS
Nivel: Intermedio
La supervisión proactiva permite detectar intrusiones, sobrecargas de recursos y comportamientos anormales.
# Instalar Netdata para la supervisión en tiempo real
bash <(curl -Ss https://my-netdata.io/kickstart.sh)
# Instalar logwatch para los informes diarios de logs
apt install logwatch -y
logwatch --output mail --mailto su@email.com --detail high- Supervise el uso de CPU, RAM y disco.
- Configure alertas sobre umbrales críticos (CPU > 90%, disco > 80%).
- Consulte regularmente
/var/log/auth.logy/var/log/syslog. - Utilice la supervisión integrada de su área de cliente CLOUDSTORE.AFRICA.
10. Securizar sus aplicaciones web
Nivel: Avanzado
Si su VPS aloja aplicaciones web, aplique estas medidas complementarias:
- Instale un certificado SSL/TLS (Let's Encrypt gratuito o SSL comercial vía CLOUDSTORE.AFRICA)
- Configure la redirección HTTP a HTTPS
- Active las cabeceras de seguridad HTTP (HSTS, X-Frame-Options, CSP, X-Content-Type-Options)
- Actualice regularmente WordPress, Joomla, y otros CMS
- Instale un WAF (Web Application Firewall) como ModSecurity con Nginx/Apache
- Desactive la visualización de errores PHP en producción (
display_errors = Off) - Utilice contraseñas fuertes para las bases de datos y no las exponga públicamente
11. Checklist de securización rápida
Verifique que ha realizado correctamente cada uno de estos pasos:
- ✅ Autenticación SSH por clave pública (desactivar la contraseña)
- ✅ Cuenta de usuario no-root para la administración
- ✅ Puerto SSH cambiado (no 22)
- ✅ Firewall UFW activado con reglas mínimas
- ✅ Fail2Ban instalado y configurado
- ✅ Sistema actualizado (actualizaciones automáticas de seguridad)
- ✅ Servicios innecesarios desactivados
- ✅ Copias de seguridad automáticas activadas y probadas
- ✅ Supervisión implementada
- ✅ Certificado SSL instalado para los servicios web
¿Necesita ayuda para asegurar su VPS?
Nuestro equipo de expertos puede auditar y configurar su servidor por usted. Contáctenos para obtener un presupuesto personalizado.