Tu servidor está expuesto desde el minuto uno. Esta guía cubre todo lo que necesitas hacer para dejarlo seguro — paso a paso, con comandos reales y una opción para automatizarlo todo en 30 segundos.
Instalar en 30 segundosNo hace falta que tengas una web importante. Da igual si es un VPS de 5 euros en DigitalOcean, un dedicado en Hetzner o un servidor en Contabo. Los bots escanean todo el rango IPv4 en menos de 45 minutos buscando puertos SSH abiertos, bases de datos expuestas y aplicaciones sin parchear. En Latinoamérica y España, los ataques a servidores Linux crecieron un 38% en 2025. Tu servidor no es un objetivo especial — es uno de millones.
sshd: Failed password for root from 185.220.101.7 port 43992
sshd: Invalid user admin from 45.83.64.11 port 55120
nginx: 103.145.13.90 "GET /wp-login.php HTTP/1.1" 404
nginx: 91.108.4.30 "POST /../../../etc/passwd HTTP/1.1" 400
sshd: Failed password for ubuntu from 45.83.64.11 port 22180
... miles más hoy
SSH es el vector de ataque número 1. Si tu servidor tiene el puerto 22 abierto con autenticación por contraseña, estás recibiendo ataques de fuerza bruta ahora mismo. Garantizado.
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
MaxAuthTries 3
Port 2222 # Opcional: cambiar puerto por defecto
# En tu máquina local:
ssh-keygen -t ed25519 -C "tu@email.com"
ssh-copy-id -i ~/.ssh/id_ed25519.pub usuario@servidor
# Reiniciar SSH:
sudo systemctl restart sshd
Bloquear IPs automáticamente: Puedes instalar fail2ban y configurar jails para SSH... o instalar Defensia, que detecta 15 patrones de ataque SSH y bloquea IPs automáticamente sin configuración.
Un firewall bien configurado es la primera línea de defensa. Cierra todo lo que no necesites. Da igual si usas UFW en Ubuntu o firewalld en Rocky Linux — lo importante es que solo los puertos necesarios estén abiertos.
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp # SSH
sudo ufw allow 80/tcp # HTTP
sudo ufw allow 443/tcp # HTTPS
sudo ufw enable
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
Consejo: Un firewall estático no detecta ataques a nivel de aplicación. Para eso necesitas un WAF o una herramienta como Defensia que lea los logs y bloquee IPs dinámicamente via ipset.
Las vulnerabilidades conocidas (CVE) son el pan de cada día. Los atacantes escanean servidores buscando versiones vulnerables de OpenSSH, nginx, Apache y PHP. Si no actualizas, estás dejando la puerta abierta.
sudo apt update && sudo apt upgrade -y
# Actualizaciones automáticas:
sudo apt install unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades
sudo dnf update -y
# Actualizaciones automáticas:
sudo dnf install dnf-automatic
sudo systemctl enable --now dnf-automatic.timer
Defensia va más allá: El escaneo de CVE analiza todos los paquetes instalados, los cruza con la base de datos NVD, las puntuaciones EPSS y el catálogo CISA KEV, y te avisa cuando tienes software con vulnerabilidades críticas que ya están siendo explotadas activamente.
Si sirves páginas web, necesitas cabeceras de seguridad, ocultar la versión del servidor y, idealmente, un Web Application Firewall. Los ataques web representan más del 40% de las intrusiones a servidores Linux según OWASP.
server_tokens off;
add_header X-Content-Type-Options "nosniff" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header Strict-Transport-Security "max-age=31536000" always;
Un WAF detecta ataques a nivel HTTP: inyección SQL, XSS, path traversal, Remote Code Execution, SSRF y más. La opción clásica es ModSecurity con reglas OWASP CRS, pero la configuración es compleja y el rendimiento puede sufrir. Defensia lee los access logs de nginx y Apache directamente y detecta 15+ tipos de ataque OWASP sin tocar tu web server ni añadir módulos.
Los servidores Linux también tienen malware. Web shells PHP en directorios de uploads, criptomineros consumiendo toda la CPU, rootkits escondidos en /tmp. Si alojas WordPress, Joomla, Laravel o cualquier aplicación PHP, eres un objetivo prioritario.
Gratuito, pero lento. Las firmas están orientadas a malware de email, no a web shells PHP. Tasa de detección baja para malware de servidor.
clamscan -ri /var/www /tmpBusca rootkits conocidos, binarios modificados y permisos sospechosos. Útil pero requiere actualizaciones manuales de firmas.
sudo rkhunter --check64.000+ firmas hash + 684 patrones dinámicos. Detecta web shells, criptomineros, rootkits, binarios modificados y credenciales expuestas. Cuarentena automática.
Incluido en Defensia Pro Securizar es importante, pero si no monitorizas, no sabes si te están atacando. Revisar logs a mano con grep y tail -f no escala cuando tienes 3, 5 o 20 servidores.
Defensia proporciona un dashboard en tiempo real con feed de eventos en vivo, gráficas de ataques por tipo, timeline de bans, distribución geográfica y alertas configurables a Slack, email o Discord. Todo sin abrir un terminal. Si gestionas servidores para clientes, puedes ver el estado de todos en un solo panel.
Los 6 pasos anteriores requieren tiempo, conocimiento técnico y mantenimiento continuo. Defensia los automatiza todos con un solo comando:
15 patrones de detección. Bloqueo automático en segundos via ipset. Soporta 65K+ bans simultáneos.
15+ tipos de ataque OWASP detectados desde los logs de nginx y Apache. Sin módulos, sin configuración.
64K+ firmas. Escaneo programado, cuarentena automática, puntuación de seguridad 0-100.
Defensia funciona en cualquier servidor Linux con systemd e iptables. Da igual si tu servidor está en España, México, Argentina, Colombia o cualquier otro país.
Resumen de lo que deberías hacer y cómo lo cubre Defensia.
| Paso | Manual | Defensia |
|---|---|---|
| Bloquear ataques SSH | fail2ban + config | ✓ |
| Detectar ataques web (WAF) | ModSecurity + reglas | ✓ |
| Escanear malware | ClamAV + cron | ✓ |
| Detectar CVEs | apt audit manual | ✓ |
| Geobloqueo por país | iptables + GeoIP DB | ✓ |
| Dashboard en tiempo real | No disponible | ✓ |
| Propagación de bans multi-servidor | No disponible | ✓ |
| Detectar puertos de BD expuestos | nmap manual | ✓ |
| Puntuación de seguridad (0-100) | Lynis + revisión | ✓ |
| Detección de rootkits | rkhunter + chkrootkit | ✓ |
| Alertas (Slack / email / Discord) | Scripts custom | ✓ |
| Monitorizar contenedores Docker | docker logs + scripts | ✓ |
Desactivar el login de root por SSH, configurar autenticación por clave pública y activar un firewall (UFW o firewalld). Estos tres pasos eliminan la gran mayoría de ataques automatizados. También es recomendable cambiar el puerto SSH por defecto y desactivar servicios innecesarios.
Linux es más seguro que otros sistemas operativos por diseño, pero un servidor expuesto a internet sin hardening es vulnerable. Puertos abiertos, servicios por defecto y software sin parchear son vectores de ataque reales. La seguridad requiere configuración activa.
Idealmente, aplica actualizaciones de seguridad semanalmente como mínimo. Configura unattended-upgrades (Debian/Ubuntu) o dnf-automatic (RHEL) para que los parches críticos se apliquen automáticamente. Defensia complementa esto con escaneo CVE que te avisa de vulnerabilidades con exploit activo.
Si sirves páginas web, sí. Un firewall tradicional no detecta ataques a nivel HTTP como SQL injection o XSS. Un WAF analiza las peticiones HTTP y bloquea las maliciosas antes de que lleguen a tu aplicación.
Para SSH, fail2ban es la opción clásica. Para malware, ClamAV + rkhunter. Pero si quieres todo integrado con dashboard, WAF y escaneo de CVE, Defensia ofrece un plan gratuito para 1 servidor que cubre SSH, dashboard y funciones básicas. Pro cuesta 9 euros al mes por servidor.
Busca: CPU al 100% sin razón, procesos desconocidos en /tmp o /dev/shm, claves SSH que no reconoces en ~/.ssh/authorized_keys, cron jobs nuevos, archivos PHP en directorios de uploads. Defensia detecta todo esto automáticamente con su escáner de malware y puntuación de seguridad.
Cómo detectar y limpiar malware de tu servidor Linux.
Comparación completa: fail2ban vs Defensia.
Versión en inglés de esta guía.
Checklist completa para securizar un VPS.
Full comparison: fail2ban vs Defensia.
Find and remove malware from Linux servers.
Un comando. Menos de 30 segundos. Gratis para un servidor.
Sin tarjeta de crédito. Sin compromiso.