Prácticas recomendadas para el refuerzo de servidores dedicados Actualizado el 3 de marzo de 2026. por Sam Page 6 minutos y 2 segundos para leer Un servidor dedicado recién aprovisionado no es un servidor seguro. Las configuraciones predeterminadas están diseñadas para ofrecer una amplia compatibilidad, no para minimizar la superficie de ataque. Cada puerto abierto que no debería estarlo, cada credencial predeterminada que no se ha cambiado, cada archivo legible por todos con contenido confidencial es una vulnerabilidad a la espera de ser descubierta. El endurecimiento del servidor es el proceso de reducir ese ataque... Índice Comienza con el inventario de la superficie de ataque. Fortalecimiento de SSH Configuración del cortafuegos con nftables Gestión de cuentas de usuario Fortalecimiento del núcleo mediante sysctl Seguridad del sistema de archivos Gestión de software y paquetes Detección de intrusiones y supervisión de registros Programación de auditorías periódicas Comienza con el inventario de la superficie de ataque. Antes de cambiar nada, averigua qué se está ejecutando: # All listening ports ss -tlnp # Running services systemctl list-units --type=service --state=running # SUID/SGID files (privilege escalation candidates) find / -perm /6000 -type f 2>/dev/null # World-writable directories find / -xdev -type d -perm -0002 2>/dev/null Documenta para qué sirve cada puerto abierto y cada servicio en ejecución. Si no puedes responder inmediatamente a la pregunta «¿por qué está abierto este puerto?», eso es lo primero que debes investigar. Fortalecimiento de SSH SSH es el principal vector de acceso administrativo en los servidores Linux, y el objetivo principal de los ataques de fuerza bruta. El refuerzo de SSH bloquea la vía de ataque más común antes que cualquier otra configuración. Edita /etc/ssh/sshd_config y aplica estos ajustes: # Disable password authentication entirely PasswordAuthentication no ChallengeResponseAuthentication no # Disable root login over SSH PermitRootLogin no # Use a non-standard port (reduces automated scan noise) Port 2222 # Limit SSH to specific users AllowUsers deploy_user admin_user # Reduce authentication timeout window LoginGraceTime 30 MaxAuthTries 3 # Disable legacy protocol features Protocol 2 X11Forwarding no AllowAgentForwarding no AllowTcpForwarding no # Keep-alive settings to terminate idle sessions ClientAliveInterval 300 ClientAliveCountMax 2 La autenticación basada en claves es obligatoria una vez que se desactiva la autenticación por contraseña. Genera claves en tu máquina local con ssh-keygen -t ed25519 y copia la clave pública en ~/.ssh/authorized_keys en el servidor antes de desactivar las contraseñas. Aplica los cambios: systemctl restart sshd. Comprueba que aún puedes conectarte mediante la clave antes de cerrar la sesión actual. La publicación especial 800-123 del NIST ofrece una guía completa sobre la configuración de SSH en entornos de producción, incluidas prácticas clave de gestión. Configuración del cortafuegos con nftables Las distribuciones modernas de Linux utilizan nftables como marco de trabajo preferido para los cortafuegos. Un conjunto mínimo de reglas para un servidor web: #!/usr/sbin/nft -f flush ruleset table inet filter { chain input { type filter hook input priority 0; policy drop; # Accept established/related connections ct state established,related accept # Accept loopback iif lo accept # Accept ICMP (ping) - limit rate icmp type echo-request limit rate 5/second accept icmpv6 type echo-request limit rate 5/second accept # SSH on custom port tcp dport 2222 ct state new limit rate 10/minute accept # HTTP and HTTPS tcp dport { 80, 443 } accept # Log and drop everything else log prefix "Dropped: " drop } chain forward { type filter hook forward priority 0; policy drop; } chain output { type filter hook output priority 0; policy accept; } } Guarda en /etc/nftables.conf y habilita: systemctl enable –now nftables. La política predeterminada es rechazar el tráfico entrante; solo se permite el tráfico explícitamente autorizado. Para los servidores que ejecutan cPanel, cPanel sus propias reglas de firewall. Utiliza ConfigServer Security & Firewall (CSF), que se integra con WHM y proporciona una interfaz de usuario para la gestión de reglas sin anular los puertos requeridos cPanel. Gestión de cuentas de usuario Cada cuenta de usuario es un vector de compromiso potencial. Presta especial atención a: Desactiva las cuentas del sistema que no se usen: comprueba en /etc/passwd si hay cuentas con shells de inicio de sesión que no deberían tenerlos. Establece su shell en /sbin/nologin: usermod -s /sbin/nologin cuenta_sin_usar Elimina los privilegios sudo innecesarios: visudo para revisar /etc/sudoers. Cada línea que concede NOPASSWD sudo es una vía de escalada de privilegios si esa cuenta se ve comprometida. Exige una contraseña para todas las operaciones sudo en producción. Utiliza cuentas de usuario basadas en roles: los servicios de aplicación deben ejecutarse como su propio usuario del sistema dedicado con permisos mínimos. El servidor web no debe ejecutarse como root. MySQL no debe ejecutarse como root. Crea usuarios específicos para la aplicación: useradd -r -s /sbin/nologin -d /var/www/app appuser chown -R appuser:appuser /var/www/app Audita los últimos inicios de sesión con regularidad: lastlog | grep -v Nunca muestra las cuentas que se han utilizado para iniciar sesión. Las cuentas que no esperabas ver en ese resultado merecen ser investigadas. Fortalecimiento del núcleo mediante sysctl Varios parámetros del núcleo reducen la superficie de ataque para los exploits a nivel de red: # /etc/sysctl.d/99-hardening.conf # Disable IP source routing (used in some spoofing attacks) net.ipv4.conf.all.accept_source_route = 0 net.ipv4.conf.default.accept_source_route = 0 # Disable ICMP redirect acceptance net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.default.accept_redirects = 0 # Enable reverse path filtering (anti-spoofing) net.ipv4.conf.all.rp_filter = 1 # Disable ping broadcasts net.ipv4.icmp_echo_ignore_broadcasts = 1 # Log martian packets (packets with impossible source addresses) net.ipv4.conf.all.log_martians = 1 # Disable IPv6 if not in use net.ipv6.conf.all.disable_ipv6 = 1 # Kernel pointer hiding kernel.kptr_restrict = 2 kernel.dmesg_restrict = 1 Aplica con sysctl -p /etc/sysctl.d/99-hardening.conf. Seguridad del sistema de archivos Establece los permisos correctos en los directorios confidenciales: chmod 750 /root chmod 644 /etc/passwd chmod 640 /etc/shadow chmod 600 /etc/ssh/sshd_config Opciones de montaje que reducen los riesgos de escalada de privilegios: Edita /etc/fstab para añadir noexec, nosuid y nodev a las particiones que no deben contener archivos ejecutables: /dev/sdb1 /var/tmp ext4 defaults,noexec,nosuid,nodev 0 2 Audita la integridad de los archivos con AIDE: AIDE (Advanced Intrusion Detection Environment) crea una base de datos con las sumas de comprobación de los archivos y puede alertar cuando estos cambian de forma inesperada. Inicializa con aide –init y, a continuación, ejecuta aide –check periódicamente o mediante cron. Los cambios inesperados en los binarios, las bibliotecas o los archivos de configuración del sistema indican que se ha producido una vulneración. Gestión de software y paquetes Mantén los paquetes actualizados: las vulnerabilidades sin parchear en el kernel, OpenSSL, glibc y otras bibliotecas del sistema son la vía más común para comprometer los servidores después de las credenciales débiles. # CentOS/AlmaLinux/Rocky Linux dnf update --security -y # Ubuntu/Debian apt-get upgrade -y Automatiza las actualizaciones de seguridad: dnf-automatic (familia RHEL) o unattended-upgrades (familia Debian) se pueden configurar para aplicar automáticamente los parches de seguridad, dejando las actualizaciones de versiones principales para su revisión manual. Auditar los paquetes instalados: eliminar los paquetes que se instalaron para realizar pruebas y nunca se eliminaron. Cada paquete instalado es una vulnerabilidad potencial. rpm -qa (RHEL) o dpkg -l (Debian) muestra una lista de todo lo que está instalado. Eliminar las herramientas de desarrollo de los servidores de producción: los compiladores, depuradores y herramientas de creación de paquetes no deben estar en los servidores de producción. Un atacante que obtenga acceso limitado puede utilizarlos para compilar código malicioso. Eliminar gcc, make y herramientas similares si están presentes. Detección de intrusiones y supervisión de registros Fail2Ban supervisa los archivos de registro y bloquea las direcciones IP que muestran patrones sospechosos, como intentos fallidos repetidos de inicio de sesión SSH, inundaciones de errores Nginx y otras señales de abuso. Fail2Ban se puede instalar a través del gestor de paquetes en todas las principales distribuciones de Linux y funciona con cualquier formato de archivo de registro. Centralización de registros: enviar registros a un servidor syslog remoto significa que, incluso si el servidor se ve comprometido y se borran los registros locales, conservas el registro de auditoría. rsyslog admite el registro remoto de forma nativa. Para los equipos que ya ejecutan una pila ELK (Elasticsearch, Logstash, Kibana) o un servicio de agregación de registros gestionado, configura el archivo rsyslog.conf del servidor para que reenvíe los registros al receptor central. Detección de malware Monarx: el paquete Premier Care de InMotion incluye Monarx, un motor de detección de malware que analiza archivos y está diseñado específicamente para entornos de alojamiento web. Monarx detecta cargas de shells web, inyecciones PHP maliciosas y mineros de criptomonedas, que son los tipos de malware más comunes que atacan a los servidores Linux en contextos de alojamiento web. Se ejecuta a nivel del kernel sin el impacto en el rendimiento de las soluciones antivirus tradicionales. Programación de auditorías periódicas El endurecimiento en el momento del aprovisionamiento se degrada con el tiempo si no se mantiene. Establece un ciclo de revisión trimestral que cubra: Revisa los puertos abiertos en función de los requisitos actuales de la aplicación. Auditar las cuentas de usuario y las claves autorizadas SSH para todos los usuarios. Comprueba la base de datos de integridad de AIDE en busca de cambios inesperados en los archivos. Revisa las concesiones de sudo y elimina aquellas que ya no sean necesarias. Aplica los parches de seguridad que no se hayan aplicado automáticamente. Revisa los registros de Fail2Ban y del cortafuegos para detectar cambios en los patrones de ataque. Los servidores con los registros de seguridad más limpios no son los que se reforzaron una vez y se olvidaron. Son aquellos en los que alguien comprueba el trabajo según un calendario. Lectura relacionada: Estrategias de protección contra ataques DDoS para infraestructuras dedicadas | Seguridad Zero Trust en Bare Metal Comparte este artículo Artículos relacionados Los servidores ecológicos InMotion Hosting: ¿qué ofrece realmente el hardware empresarial reacondicionado? RAM DDR4 vs DDR5: Una comparación en profundidad AMD EPYC frente a Intel Xeon: lo que los compradores de alojamiento web realmente necesitan saber Alojamiento en servidor dedicado para Moodle: por qué los recursos compartidos merman el rendimiento del LMS Guía de decisión para agencias que evalúan la infraestructura de alojamiento Servidores dedicados bare metal: qué son y cómo evaluar a los proveedores Cómo elegir un plan de servidor dedicado: un marco basado en la carga de trabajo ¿Qué es IPMI y por qué es importante para la gestión de servidores dedicados? Procesamiento de datos de alta frecuencia en servidores dedicados Análisis del coste total de propiedad: propiedad de un servidor dedicado durante 3 años frente a 5 años