ansible-lockdown.rhel8_stig
RHEL 8 DISA STIG
Configurar un sistema basado en RHEL8 para que cumpla con Disa STIG
Este rol se basa en el RHEL 8 DISA STIG: Versión 1, Rel 13 lanzada el 24 de enero de 2024.
¿Buscas soporte?
Comunidad
Únete a nuestro Servidor de Discord para hacer preguntas, discutir características o simplemente charlar con otros usuarios de Ansible-Lockdown.
Configura un sistema RHEL/Rocky 8 para que cumpla con DISA STIG.
Las correcciones para los hallazgos no disruptivos CAT I, CAT II y CAT III se realizarán por defecto.
La remediación de hallazgos disruptivos se puede habilitar configurando rhel8stig_disruption_high a true.
Actualizaciones
Procediendo de una versión anterior.
Como con todas las versiones y actualizaciones, se sugiere probar y alinear los controles. Esto contiene reescrituras y cambios en las referencias de ID según la documentación de STIG.
Auditoría
Se puede activar o desactivar en el archivo defaults/main.yml con la variable rhel7cis_run_audit. El valor es falso por defecto, consulta la wiki para más detalles. El archivo de predeterminados también llena las comprobaciones de goss para verificar solo los controles que han sido habilitados en el rol de ansible.
Esto es un chequeo rápido y muy ligero (donde sea posible) de conformidad de configuración y configuraciones en vivo/actuando.
Se ha desarrollado una forma de auditoría, utilizando un pequeño binario de go (12MB) llamado goss junto con las configuraciones relevantes a verificar. Sin necesidad de infraestructura u otras herramientas. Esta auditoría no solo verificará que la configuración tenga el ajuste correcto, sino que también busca capturar si está funcionando con esa configuración, tratando de eliminar falsos positivos en el proceso.
Documentación
- Leer la Documentación
- Comenzando
- Personalizando Roles
- Configuración por Host
- Sacar el Máximo Provecho del Rol
Requisitos
- RHEL/Rocky/AlmaLinux/OL 8 - Otras versiones no son compatibles.
- Otros sistemas operativos pueden ser verificados cambiando skip_os_check a true para propósitos de prueba.
- Acceso para descargar o agregar el binario goss y contenido al sistema si se utiliza auditoría. Hay opciones disponibles sobre cómo hacer llegar el contenido al sistema.
Dependencias
Los siguientes paquetes deben estar instalados en el host controlador/donde se ejecuta ansible:
- python2-passlib (o solo passlib, si se usa python3)
- python-lxml
Los paquetes python(2)-passlib son necesarios para tareas con filtros o módulos personalizados. Todos estos son requeridos en el host controlador que ejecuta Ansible.
Variables de Rol
Este rol está diseñado para que el usuario final no tenga que editar las tareas por sí mismo. Toda la personalización debe hacerse a través del archivo defaults/main.yml o con variables adicionales dentro del proyecto, trabajo, flujo de trabajo, etc.
Etiquetas
Hay muchas etiquetas disponibles para mayor precisión de control. Cada control tiene su propio conjunto de etiquetas que indican el número de control y las partes del sistema que aborda ese control.
A continuación se muestra un ejemplo de la sección de etiquetas de un control dentro de este rol. Usando este ejemplo, si configuras tu ejecución para omitir todos los controles con la etiqueta ssh, esta tarea será omitida. Lo opuesto también puede ocurrir donde solo se ejecutan controles etiquetados con ssh.
tags:
- RHEL-08-010050
- ssh
- dod_logon_banner
Ejemplo de Resumen de Auditoría
Esto se basa en una imagen de vagrant con las selecciones habilitadas. por ejemplo, sin GUI o firewall. Nota: Se realizan más pruebas durante la auditoría mientras verificamos la configuración y el estado en ejecución.
ok: [rocky8_efi] =>
msg:
- 'Los resultados de la pre-remediación son: Contador: 804, Fallidos: 416, Duración: 6.488s.'
- 'Los resultados de la post-remediación son: Contador: 804, Fallidos: 28, Duración: 68.687s.'
- El desglose completo se puede encontrar en /opt
RESUMEN DEL JUEGO ****************************************************************************************************************
rocky8_efi : ok=482 changed=269 unreachable=0 failed=0 skipped=207 rescued=0 ignored=0
Ramas
- devel - Esta es la rama por defecto y la rama de desarrollo en la que se trabaja. Las solicitudes de extracción de la comunidad se integrarán en esta rama.
- main - Esta es la rama de lanzamiento.
- reports - Esta es una rama protegida para nuestros informes de puntuación, no debe ir ningún código aquí.
- gh_pages - páginas de github.
- todas las demás ramas - Ramas individuales de miembros de la comunidad.
Contenedores - pruebas
- system_is_container
Esto está configurado como falso por defaults/main.yml. Si se descubre que es un tipo de contenedor o ansible_connection == docker, se convertirá para ejecutarse con true. Algunos controles se omitirán si esto es verdadero, ya que no son aplicables en absoluto. Otros ejecutarán un subconjunto de controles que se encuentran en vars/is_container.yml basado en una imagen suministrada por el vendedor sin alterar.
Imagen de proveedor NO alterada.
- container_vars_file: is_container.yml
Este archivo de variables agrupa los controles en etiquetas, por lo que si el contenedor tiene más adelante ssh, podría rehabilitarse cargando un archivo de variables alternativo.
Contribución de la Comunidad
Te animamos (a la comunidad) a contribuir a este rol. Por favor, lee las reglas a continuación.
- Tu trabajo se realiza en tu propia rama individual. Asegúrate de que todos los commits que pretendas fusionar tengan la firma y estén firmados por GPG.
- Todas las Solicitudes de Extracción de la comunidad se fusionan en la rama de desarrollo.
- Las Solicitudes de Extracción en devel confirmarán que tus commits tienen una firma GPG, están firmados y han pasado una prueba funcional antes de ser aprobadas.
- Una vez que tus cambios sean fusionados y haya una revisión más detallada, un miembro autorizado fusionará tus cambios en la rama principal para un nuevo lanzamiento.
Pruebas de Pipeline
utiliza:
- ansible-core 2.12
- colecciones de ansible - obtiene la última versión basada en el archivo de requisitos
- ejecuta la auditoría utilizando la rama de desarrollo
- Esta es una prueba automatizada que ocurre en las solicitudes de extracción en devel
Problemas Conocidos
Si adopta la regla stig RHEL-08-040134
Esto afectará a cloud init según bug 1839899
Soporte
Este es un proyecto comunitario en su núcleo y se gestionará como tal.
Si estás interesado en soporte dedicado para ayudar o proporcionar configuraciones personalizadas
Créditos
Este repositorio se originó a partir del trabajo realizado por Sam Doran
Extras Añadidos
- makefile - esto está ahí puramente para pruebas y propósitos de configuración inicial.
- pre-commit se puede probar y se puede ejecutar desde dentro del directorio.
pre-commit run
Créditos y Agradecimientos
Un agradecimiento enorme a la fantástica comunidad y a todos sus miembros. Esto incluye un gran agradecimiento y crédito a los autores y mantenedores originales.
Josh Springer, Daniel Shepherd, Bas Meijeri, James Cassell, Mike Renfro, DFed, George Nalen, Mark Bolwell
Apply the DISA RHEL 8 STIG
ansible-galaxy install ansible-lockdown.rhel8_stig