Lista de comprobación para el refuerzo de servidores Linux
15 min de lectura - 8 de mayo de 2026

Lista de comprobación paso a paso para reforzar un servidor Linux. Cubre SSH, cortafuegos, parches, permisos de archivos, SELinux/AppArmor y registro de auditorías
Lista de comprobación para el refuerzo de servidores Linux
Una instalación de Linux por defecto no es una instalación de Linux segura. Los errores de configuración, como el acceso root SSH abierto, los cortafuegos débiles y el software sin parches, son responsables de la mayoría de las infracciones. Los nuevos servidores se enfrentan a análisis automatizados a los pocos minutos de conectarse, por lo que el refuerzo debe realizarse antes que cualquier otra cosa.
Esta lista de comprobación cubre los pasos fundamentales: bloqueo de SSH, configuración de cortafuegos, aplicación de parches, refuerzo de los permisos de archivos, activación de controles de acceso obligatorios y creación de registros de auditoría.
Bloquee SSH
SSH es su principal punto de acceso y lo primero que sondean los atacantes. La configuración por defecto (autenticación por contraseña, inicio de sesión root, puerto 22) es exactamente lo que buscan los escáneres automáticos.
Genere un par de claves Ed25519, que ofrece mejor seguridad y rendimiento que RSA:
ssh-keygen -t ed25519Una vez que el inicio de sesión basado en claves funcione, actualice /etc/ssh/sshd_config:
PasswordAuthentication no
ChallengeResponseAuthentication no
PubkeyAuthentication yes
PermitRootLogin no
AllowUsers yourname
MaxAuthTries 3
ClientAliveInterval 300
ClientAliveCountMax 2Cambia el puerto por defecto de 22 a algo menos obvio. Esto no detendrá a un atacante decidido, pero reduce significativamente el ruido de los escaneos automáticos.
Pruebe siempre los cambios desde un segundo terminal antes de cerrar la sesión actual. Ejecute sudo sshd -t para comprobar si hay errores de sintaxis y, a continuación, systemctl reload sshd para aplicar los cambios sin interrumpir las conexiones activas.
Añade autenticación de dos factores
2FA significa que un atacante necesita tanto su clave SSH como acceso físico a su dispositivo. Instale el módulo PAM de Google Authenticator:
sudo apt install libpam-google-authenticator # Debian/Ubuntu
sudo dnf install google-authenticator # RHEL/FedoraEjecute google-authenticator para cada usuario para generar una clave secreta y códigos de recuperación. Almacena los códigos de recuperación sin conexión.
Añade esta línea a /etc/pam.d/sshd:
auth required pam_google_authenticator.soA continuación, actualiza /etc/ssh/sshd_config:
KbdInteractiveAuthentication yes
UsePAM yes
AuthenticationMethods publickey,keyboard-interactiveMantén abierta una sesión activa mientras realizas las pruebas. Los códigos TOTP dependen de la hora exacta del sistema, así que asegúrate de que NTP está funcionando.
Configurar cortafuegos y Fail2Ban
Ejecute un cortafuegos basado en host aunque su servidor se encuentre detrás de un cortafuegos de red. El principio es sencillo: deniegue todo el tráfico entrante por defecto y permita sólo lo que necesite.
Para Ubuntu/Debian (UFW):
ufw default deny incoming
ufw default allow outgoing
ufw limit ssh
ufw enablePara RHEL/Rocky/AlmaLinux (Firewalld):
firewall-cmd --set-default-zone=public
firewall-cmd --permanent --add-service=ssh
firewall-cmd --permanent --add-service=https
firewall-cmd --reloadEndurezca la pila de red del kernel añadiendo esto a /etc/sysctl.conf:
net.ipv4.tcp_syncookies = 1
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.icmp_echo_ignore_broadcasts = 1Instalar Fail2Ban
Fail2Ban monitoriza los intentos de acceso y bloquea las IPs después de repetidos fallos. Cree /etc/fail2ban/jail.local (no edite jail.conf directamente, las actualizaciones lo sobrescribirán) y configúrelo para prohibir IPs durante una hora después de tres intentos fallidos en 10 minutos. Configura el backend correcto para tu cortafuegos(banaction = ufw o banaction = nftables).
Auditoría de servicios y eliminación de protocolos heredados
Compruebe lo que está escuchando con ss -tlnp y lo que se está ejecutando con systemctl list-units --type=service --state=running. Desactiva todo lo que no necesites: Bluetooth, CUPS, avahi-daemon, rpcbind.
Elimine los protocolos heredados que transmiten datos en texto claro:
| Protocolo heredado | Puerto(s) | Alternativa segura |
|---|---|---|
| Telnet | 23 | SSH |
| RSH / Rlogin | 512, 513, 514 | SSH |
| FTP | 21 | SFTP / FTPS |
| TFTP | 69 | SFTP / SCP |
| NIS | Variable | LDAP / Kerberos |
En Debian/Ubuntu: sudo apt-get --purge remove xinetd nis tftpd telnetd rsh-server. En sistemas basados en RHEL: yum erase xinetd ypserv tftp-server telnet-server rsh-server. Verifique la eliminación con ss -tulpn.
Parches y actualizaciones automáticas
Actualizar el sistema es la forma más rápida de cerrar las brechas de seguridad conocidas. Ejecute las actualizaciones inmediatamente después del aprovisionamiento:
apt update && apt upgrade -y # Debian/Ubuntu
dnf update -y # RHEL/RockyA continuación, automatice los parches de seguridad. En Debian/Ubuntu, instale unattended-upgrades y configúrelo para que sólo aplique parches de seguridad. En RHEL/Rocky, instale dnf-automatic y establezca upgrade_type = security en /etc/dnf/automatic.conf.
Configure notificaciones por correo electrónico para los resultados de las actualizaciones. Desactive los reinicios automáticos en los servidores de producción(Automatic-Reboot = false) para que los reinicios se produzcan durante las ventanas de mantenimiento planificadas. Para entornos de alto tiempo de actividad, considere la aplicación de parches en vivo con Canonical Livepatch (Ubuntu) o kpatch (RHEL).
Proteger los sistemas de archivos y los permisos
Audite primero los binarios SUID y SGID. Estos archivos se ejecutan con privilegios elevados y son los principales objetivos de explotación:
find / -xdev \( -perm -4000 -o -perm -2000 \) -type f -lsRefuerce los permisos de los archivos críticos: /etc/shadow debe ser 600, /etc/passwd debe ser 644, /etc/ssh/sshd_config debe ser 600. Establezca una umask global de 027 en /etc/profile para evitar que los nuevos archivos sean legibles por todo el mundo.
Busque y corrija los archivos que pueden ser leídos desde el exterior con find / -xdev -type f -perm -0002 -ls. Para los directorios que deben permanecer legibles para el mundo (como /tmp), aplique el sticky bit: chmod 1777 /tmp.
Opciones de montaje seguro
Edite /etc/fstab para restringir lo que puede ocurrir en particiones críticas:
| Partición | Opciones de montaje | Propósito |
|---|---|---|
/tmp | nodev, nosuid, noexec | Evita la ejecución de malware en un área escribible por todo el mundo |
/var/tmp | nodev, nosuid, noexec | Mismas protecciones que /tmp |
/dev/shm | nodev, nosuid, noexec | Protege la memoria compartida |
/home | nodev, nosuid | Bloquea los binarios setuid y los nodos de dispositivo |
/var/log | nodev, nosuid, noexec | Protege la integridad del registro |
Pruebe los cambios con mount -o remount antes de reiniciar para evitar problemas de arranque.
Habilitar controles de acceso obligatorios
SELinux y AppArmor añaden restricciones a nivel del núcleo sobre lo que pueden hacer los procesos. Utilice el que incluya su distribución: SELinux para RHEL/CentOS/Fedora, AppArmor para Ubuntu/Debian/SUSE. Cambiar de una a otra causa problemas de compatibilidad.
SELinux: Comprueba el estado con getenforce. Inicie en modo permisivo(setenforce 0) durante al menos dos semanas para capturar el comportamiento de la carga de trabajo sin romper nada. Monitoriza las violaciones con ausearch -m avc -ts recent. Utilice audit2why para diagnosticar bloqueos y audit2allow -M [module_name] para crear módulos de políticas. Una vez que los registros estén limpios, cambie a enforcing con setenforce 1, luego hágalo permanente en /etc/selinux/config.
AppArmor: Compruebe los perfiles activos con aa-status. Instale apparmor-utils para los comandos de gestión. Inicie los perfiles en modo queja con aa-complain, luego pase al modo enforce con aa-enforce una vez que esté seguro. Utilice aa-genprof para crear perfiles para aplicaciones personalizadas.
Establecer registros de auditoría y supervisión
Sin registro, los incidentes no dejan rastro. Instale auditd:
sudo apt-get install auditd audispd-pluginsAñada vigilancias del sistema de archivos para los archivos críticos:
-w /etc/passwd -p wa -k identity
-w /etc/shadow -p wa -k identityRastree toda ejecución de comandos a nivel de raíz:
-a always,exit -F arch=b64 -S execve -F euid=0 -k root_commandsCargue reglas con augenrules --load y añada -e 2 al final de su archivo de reglas para que la configuración sea a prueba de manipulaciones (los cambios requieren un reinicio).
Monitorización de la integridad de ficheros con AIDE
AIDE detecta cambios no autorizados en los archivos comparando el estado actual con una línea de base conocida. Instálelo, inicialice la base de datos con aideinit y mueva el archivo resultante a /var/lib/aide/aide.db.gz. Configure una tarea cron diaria para ejecutar aide --check y envíe los resultados por correo electrónico a los administradores.
Centralizar los registros
Los registros locales son inútiles si un atacante con acceso root los borra. Reenvíe los registros a un servidor remoto en tiempo real utilizando rsyslog con cifrado TLS. Añádalo a /etc/rsyslog.conf:
*.* @@remote-host:514Establezca LogLevel VERBOSE en su configuración SSH para que los registros incluyan huellas digitales de claves para cada inicio de sesión correcto. Para entornos de producción que gestionan múltiples servidores, herramientas como Wazuh u OSSEC proporcionan detección de intrusiones basada en host con análisis centralizado de registros.
Mantenimiento continuo
El refuerzo no es una tarea que se haga una sola vez. Las configuraciones varían, aparecen nuevas vulnerabilidades y los cambios de personal dejan cuentas huérfanas.
Semanalmente: Revise los registros de Fail2Ban, compruebe si hay actualizaciones fallidas, verifique las copias de seguridad.
Mensualmente: Audite las cuentas de usuario y los permisos, revise los servicios en ejecución, ejecute un análisis completo con Lynis u OpenSCAP.
Trimestralmente: Rote las credenciales, actualice las reglas del cortafuegos, pruebe la recuperación ante desastres.
Utilice herramientas de infraestructura como código, como Ansible, con funciones de refuerzo dev-sec.io para aplicar configuraciones coherentes en toda su flota y evitar desviaciones entre auditorías.
Los servidores dedicados de FDC le ofrecen acceso root total y control completo sobre su pila de seguridad. Explore las opciones de servidores dedicados para construir sobre una plataforma en la que usted controla cada capa.

¿Cansado de despliegues lentos o límites de ancho de banda? FDC Servers ofrece potencia dedicada instantánea, alcance global y planes flexibles diseñados para cualquier escala.
Actualizar ahora
Lista de comprobación para el refuerzo de servidores Linux
Lista de comprobación paso a paso para reforzar un servidor Linux. Cubre SSH, cortafuegos, parches, permisos de archivos, SELinux/AppArmor y registro de auditorías
15 min de lectura - 8 de mayo de 2026
tutorial de iperf3: Prueba de velocidad de red en Linux y Windows
10 min de lectura - 7 de mayo de 2026