Ir directamente al contenido

Ajustes de cookies

Elija por tipo qué cookies permite. Puede cambiar su elección en cualquier momento en Ajustes de cookies, al pie de cada página. Declaración de privacidad

Necesarias

Siempre activadas

Necesarias para iniciar sesión, conservar su carrito y recordar sus preferencias. Siempre están activadas.

¿Qué cookies?
  • weboke_sessie, weboke_klant, weboke_remember: su sesión y mantener la sesión iniciada
  • weboke_basket: su carrito
  • wkBtwIncl: mostrar los precios con o sin IVA
  • wok_cookies: su elección de cookies, 12 meses

Mide qué anuncio lleva a una visita o a un pedido, para no pagar por anuncios que no sirven de nada.

¿Qué cookies?
  • Google Ads a través de Google Tag Manager (_gcl_au, _gcl_aw), hasta 90 días
  • OpenAI Ads, anuncios en ChatGPT
  • wok_aff: a través de qué socio llegó a nosotros (programa de afiliados), 60 días

4,6

País e idioma

Cada país tiene su propio sitio, con los precios y el IVA de ese país.

Ver

Módulo 10 · 10.1

Hardening y principios CIS

Módulo 10: Mantener la seguridad · Tiempo de lectura: 11 minutos

Objetivo de aprendizaje: Después de esta lección podrá explicar qué es el hardening y qué principios hay detrás, sabrá qué son los CIS Benchmarks y cómo usarlos con criterio, y podrá revisar su servidor de forma sistemática con Lynis.

Conceptos clave: hardening, superficie de ataque, instalación mínima, privilegios mínimos (least privilege), defensa en capas (defense in depth), CIS Benchmarks, Level 1 y Level 2, CIS Controls, Lynis, hardening index, AppArmor, SELinux, sysctl, sincronización de la hora

¿Qué es el hardening?

Una instalación nueva de Debian o Ubuntu es razonablemente segura, pero está pensada para funcionar en el mayor número posible de situaciones. El hardening (bastionado o endurecimiento) consiste en adaptar su servidor exactamente a su uso: eliminar todo lo que no necesita y endurecer todo lo que se pueda endurecer, sin que sus propios servicios dejen de funcionar.

En los módulos anteriores ya lo ha hecho poco a poco: SSH con claves (módulo 2), un usuario normal con sudo (módulo 3), actualizaciones automáticas (módulo 4), un firewall y fail2ban (módulo 5), servicios con sus propios usuarios (módulo 6). Esta lección reúne esas medidas sueltas en un marco común, para que vea lo que todavía falta.

Cuatro principios

1. Una superficie de ataque pequeña. Lo que no existe no se puede romper. Cada servicio instalado, cada puerto abierto y cada cuenta es una posible puerta de entrada (lección 5.1). Instale lo mínimo y elimine lo que ya no utilice:

anna@web1:~$ systemctl list-units --type=service --state=running
anna@web1:~$ sudo ss -tulpn
anna@web1:~$ apt list --installed | wc -l

Si hay un servicio en marcha que no conoce, averigüe qué hace (lección 6.1). Si no lo necesita, elimine el paquete.

2. Privilegios mínimos. Cada usuario y cada programa recibe solo los permisos que necesita (lección 3.2). Nada de trabajo diario como root, servicios con sus propios usuarios, usuarios de base de datos con permisos únicamente sobre su propia base de datos, nada de chmod 777.

3. Defensa en capas. Parta de la idea de que una medida puede fallar. Una base de datos que solo escucha en 127.0.0.1 y está detrás de un firewall y tiene una contraseña robusta sigue siendo segura aunque una de esas tres medidas falle por accidente. Esto se llama defense in depth.

4. Saber lo que ocurre. El hardening no consiste solo en cerrar, sino también en ver: registros que se conservan (lección 6.2), una supervisión que avisa (lección 8.3) y copias de seguridad con las que puede volver atrás (módulo 8). Sin eso, solo se dará cuenta de una intrusión cuando ya sea demasiado tarde.

Los CIS Benchmarks

El Center for Internet Security (CIS) es una organización estadounidense sin ánimo de lucro que elabora los CIS Benchmarks: listas detalladas de configuraciones recomendadas para cada producto, redactadas por voluntarios del mundo de la seguridad. Hay más de cien, también para Debian Linux y Ubuntu Linux, para cada versión. Puede descargar los PDF de forma gratuita para uso no comercial, después de crear una cuenta.

Un benchmark para Linux contiene cientos de recomendaciones, cada una con una explicación, una forma de comprobarla y una forma de aplicarla. Están divididas en perfiles:

  • Level 1: medidas básicas que puede aplicar con bastante rapidez, con una clara ventaja de seguridad y sin que el servidor pierda mucha utilidad. Para la mayoría de los servidores, este es el objetivo.
  • Level 2: medidas adicionales para entornos en los que la seguridad es lo primero (defensa en capas). Pueden costar funcionalidades o rendimiento y, según el propio CIS, causar daños si se aplican sin cuidado.

En Linux hay perfiles separados para servidores y para estaciones de trabajo.

Ejemplos de temas en un benchmark de Linux: particiones separadas para /tmp y /var/log, desactivar sistemas de archivos y protocolos de red que no se usan, sincronización de la hora, registro de auditoría, configuración de SSH (gran parte la conoce de la lección 2.2), política de contraseñas, permisos de archivos importantes y el firewall.

Además de los Benchmarks existen los CIS Controls (actualmente la versión 8.1): no son configuraciones por producto, sino una lista de dieciocho grupos de medidas para toda una organización, como "inventario de software", "gestión de vulnerabilidades" y "recuperación de datos". Para un solo servidor, los Benchmarks son más útiles; los Controls le ayudan cuando piensa en su empresa en conjunto.

Use un benchmark con criterio

Un benchmark no es un botón que se pulsa sin más. Algunas reglas:

  • Primero entender, luego aplicar. Cada recomendación tiene una explicación. Si no entiende el motivo, no la aplique todavía.
  • Un cambio cada vez, y probar. Una configuración estricta del kernel o de la red puede romper su aplicación. Haga una instantánea, cambie una sola cosa y compruebe que todo sigue funcionando.
  • No todo es para usted. Una recomendación de crear una partición /var/log separada es complicada en un VPS existente y aporta poco. Elija de forma consciente y anote por qué no aplica algo.
  • Tenga cuidado con los scripts de hardening ya preparados que encuentra en internet y que aplican "todo CIS" de una vez. Pueden modificar SSH, su firewall o sus registros de tal manera que usted mismo se quede sin acceso, y después ya no sabrá qué se ha cambiado.

Lynis: una auditoría desde dentro

Lynis es un programa gratuito de código abierto (GPL) de CISOfy que recorre su servidor desde dentro y ofrece avisos y sugerencias por tema. No cambia nada por sí mismo; solo informa.

anna@web1:~$ sudo apt install lynis
anna@web1:~$ sudo lynis audit system
...
  -[ Lynis 3.x Results ]-

  Warnings (1):
  ----------------------------
  ! Found one or more vulnerable packages. [PKGS-7392]

  Suggestions (34):
  ----------------------------
  * Consider hardening SSH configuration [SSH-7408]
      - Details  : AllowTcpForwarding (set YES to NO)
  ...
  Lynis security scan details:

  Hardening index : 66 [#############       ]
  Tests performed : 262

Cómo interpretarlo:

  • Los Warnings (avisos) son cosas que realmente debe revisar, como paquetes con vulnerabilidades conocidas (en ese caso tiene actualizaciones pendientes, lección 4.1).
  • Las Suggestions (sugerencias) son consejos. Muchas son útiles, algunas no encajan con su servidor. Por ejemplo, una sugerencia de desactivar AllowTcpForwarding rompe sus túneles SSH (lección 2.3). Elija de forma consciente.
  • Cada mensaje tiene un código entre corchetes, como [SSH-7408]. Con él puede buscar en el registro /var/log/lynis.log qué se ha comprobado exactamente.
  • El hardening index es un número de hasta 100. Es una orientación, no una nota que haya que perseguir. Un aumento después de sus cambios muestra que avanza; un 100 no es el objetivo.

La versión de Lynis en los repositorios de su distribución puede ir algo retrasada. Para una primera auditoría eso no es un problema.

Otros tres temas, en breve

  • AppArmor y SELinux son capas de seguridad adicionales en el kernel que definen, para cada programa, lo que puede hacer. Debian y Ubuntu usan AppArmor, activado de forma predeterminada; AlmaLinux y Rocky usan SELinux. No los desactive "porque algo no funciona": busque el mensaje en el journal y resuelva el problema de forma específica.
  • sysctl ajusta parámetros del kernel, por ejemplo para la red. Los valores predeterminados de Debian y Ubuntu son razonables. Si quiere cambiar algo, póngalo en un archivo propio en /etc/sysctl.d/ (Debian 13 ya no lee /etc/sysctl.conf).
  • La hora: un servidor con la hora incorrecta hace que los registros sean inservibles y puede considerar no válidos los certificados. Compruebe con timedatectl que aparece "System clock synchronized: yes".

En la práctica

En WebOké, igual que con otros proveedores de VPS, usted gestiona la seguridad dentro de su propio servidor: el proveedor se encarga del hardware, la red y la plataforma de virtualización. Este curso es de autoayuda: nadie supervisa su servidor. Antes de una ronda de hardening, haga una instantánea en el panel y asegúrese de saber cómo abrir la consola por si se queda sin acceso.

Resumen

  • El hardening consiste en adaptar su servidor a su propio uso: eliminar lo que no se necesita y endurecer lo que se pueda.
  • Cuatro principios: una superficie de ataque pequeña, privilegios mínimos, defensa en capas y ver lo que ocurre.
  • Los CIS Benchmarks ofrecen cientos de recomendaciones por producto en los perfiles Level 1 (básico) y Level 2 (estricto); úselos entendiéndolos, paso a paso.
  • Lynis revisa su servidor desde dentro y ofrece avisos, sugerencias y un hardening index; no cambia nada por sí mismo.
  • No desactive AppArmor/SELinux; sus propios parámetros del kernel en /etc/sysctl.d/; compruebe la sincronización de la hora.

Cuestionario

1. ¿Cuál es la idea de la defensa en capas (defense in depth)?



2. ¿Cuál es la diferencia entre Level 1 y Level 2 en los CIS Benchmarks?



3. Lynis sugiere desactivar AllowTcpForwarding en SSH. Usted utiliza túneles SSH para acceder a su base de datos. ¿Qué hace?



4. Un compañero encuentra en internet un script que aplica "todas las recomendaciones CIS de una vez" en su servidor. ¿Cuál es el mayor riesgo?



5. Su aplicación no funciona y en el journal aparece un rechazo de AppArmor. ¿Cuál es el enfoque correcto?



Ejercicio

Ejercicio O10.1: Una auditoría con Lynis. Haga una instantánea, instale Lynis en su servidor y ejecute sudo lynis audit system. Anote el hardening index, todos los avisos y cinco sugerencias. Elija tres sugerencias que vaya a aplicar y una que de forma consciente no aplicará, con el motivo. Después, vuelva a ejecutar la auditoría y anote el nuevo índice.

Ejercicio O10.1: Una auditoría con Lynis

Este ejercicio lo hace usted mismo; nadie lo revisa. Marque lo que haya hecho y señale el ejercicio como realizado.




Sus marcas y notas se quedan solo en este navegador; no las enviamos a ningún sitio. Si ha iniciado sesión, en Mis cursos solo guardamos que ha realizado el ejercicio.

Para saber más

Un momento…

Configure sus dominios

Configure para cada dominio los servidores de nombres, la vinculación a su hosting y quién será el titular.

Cargando sus dominios…