Saltar a contenido

Limitar core dumps

Cuando un proceso falla, el sistema operativo puede verter el contenido de su memoria a un fichero en disco — un core dump. En un servidor de producción, estos ficheros pueden contener contraseñas, claves privadas o datos sensibles en claro, y ocupar espacio innecesariamente.

Qué hace

Se limitan core dumps en dos niveles independientes:

  • Límites del usuario (limits.d) — impiden que cualquier proceso del usuario pueda escribir core dumps al iniciar sesión.
  • Configuración del kernel (sysctl.d) — desactiva la generación de core dumps para procesos con privilegios (setuid), que son los más peligrosos porque ejecutan con permisos elevados.

Configurar

Procesos del usuario

Limita a 0 el tamaño de core dump que se puede escribir:

  1. Crear el drop-in de límites:

    sudo vim /etc/security/limits.d/99-hardening.conf
    

    Contenido:

    * hard core 0
    * soft core 0
    
    # También se puede escribir como:
    * - core 0
    
  2. Aplicar: no hay servicio que reiniciar, pero los límites solo se leen al iniciar sesión, así que hace falta entrar por SSH de nuevo:

    ssh hosting@<ip-servidor>
    
  3. Verificar (ya en la nueva sesión):

    ulimit -Hc
    ulimit -Sc
    

Procesos privilegiados

  1. Crear el drop-in de sysctl:

    sudo vim /etc/sysctl.d/99-hardening.conf
    

    Contenido:

    fs.suid_dumpable = 0
    
  2. Aplicar — sysctl --system recarga todos los ficheros de /etc/sysctl.d/ y /usr/lib/sysctl.d/. Si solo quieres aplicar el tuyo:

    sudo sysctl -p /etc/sysctl.d/99-hardening.conf
    
  3. Verificar:

    sudo sysctl fs.suid_dumpable
    

Verificar

Comprobar que ambos niveles están activos:

ulimit -Hc
ulimit -Sc
sudo sysctl fs.suid_dumpable

Debe salir 0 en los tres casos.

Y ahora qué

Los core dumps están limitados. El servidor está endurecido. Para una visión completa del estado de seguridad, ejecuta una auditoría con Lynis y compara la puntuación con la inicial.