Bastionado de servidores Linux en producción: del default a CIS
Guía operativa para endurecer un servidor Debian/CentOS recién provisionado siguiendo controles del CIS Benchmark, con énfasis en SSH, auditd y módulos del kernel.

El problema con la imagen por defecto
Una instalación limpia de Debian o CentOS deja activos servicios, módulos del kernel y permisos que no son aceptables para un servidor expuesto. rpcbind escuchando en todas las interfaces, /tmp sin noexec, módulos como cramfs, freevxfs, jffs2 o usb-storage cargables a demanda y SSH aceptando root con contraseña son la norma, no la excepción.
El primer paso disciplinado es ejecutar un baseline contra CIS Benchmark — entonces con Bastille y lynis, hoy con OpenSCAP — y tratar cada desviación como un ticket. La mayoría se resuelve con un puñado de cambios en /etc/ssh/sshd_config, /etc/sysctl.conf, /etc/security/limits.conf y un par de unit files de systemd.
SSH: el único puerto que debería estar abierto
Reglas no negociables: PermitRootLogin no, PasswordAuthentication no, AllowUsers acotado a la cuenta operativa, MaxAuthTries 3, LoginGraceTime 20, y Protocol 2 explícito. Las claves del cliente, ed25519 — RSA de 2048 ya no se considera prudente para nuevos despliegues.
Sobre esa base, fail2ban con jail específico para sshd y un puerto no estándar reducen el ruido de los logs en uno o dos órdenes de magnitud. No es seguridad por oscuridad — es economía operativa: menos eventos para auditar.
# /etc/ssh/sshd_config Protocol 2 PermitRootLogin no PasswordAuthentication no PubkeyAuthentication yes AllowUsers ops MaxAuthTries 3 LoginGraceTime 20 ClientAliveInterval 300 ClientAliveCountMax 0 X11Forwarding no AllowTcpForwarding no
auditd, sysctl y particiones
auditd con un ruleset que cubra ejecuciones bajo /tmp, modificaciones a /etc/passwd, /etc/shadow, /etc/sudoers y carga de módulos del kernel. /tmp, /var/tmp y /home montados con nodev, nosuid y noexec donde el workload lo permita. En sysctl: kernel.randomize_va_space=2, net.ipv4.conf.all.rp_filter=1, net.ipv4.tcp_syncookies=1 y desactivación de redirects ICMP. Son cambios baratos que cierran clases completas de ataques.
