HarryHarcourt.ansible_rhel8_cis_benchmarks

HarryHarcourt.Ansible-RHEL8-CIS-Benchmarks

Todo el crédito va a anthcourtney por el marco original que se encuentra aquí: https://github.com/anthcourtney/ansible-role-cis-amazon-linux

Esta implementación ha sido adaptada para Red Hat Enterprise Linux 8.X y CentOS 8.X (nota: no se ha probado aún).

Esta implementación ha sido realizada de manera idempotente en muchos lugares, y sigue siendo así.

Esta implementación permite habilitar y configurar algunos servicios.

El documento de referencia del CIS RHEL Linux. https://benchmarks.cisecurity.org/tools2/linux/CIS_Red_Hat_Enterprise_Linux_7_Benchmark_v2.1.1.pdf

¿Por qué debería usar este rol?

Si intentas cumplir con un estándar de seguridad aceptado en la industria, como PCI DSS, APRA o ISO 27001, necesitas demostrar que has aplicado estándares de endurecimiento documentados en todos los sistemas que están bajo evaluación.

Si estás usando Red Hat Linux, entonces este rol intenta ofrecer una parte de la solución al rompecabezas de cumplimiento.

¡Cuidado!

Si estás considerando aplicar este rol a servidores, deberías tener un conocimiento básico del Benchmark del CIS (o benchmarks similares) y entender el impacto que puede tener en un sistema.

Tómate el tiempo para familiarizarte con el estándar y con los valores predeterminados que se pueden configurar, y excluye cualquier ítem antes de aplicar a un sistema.

Ejemplos de ítems que deberían ser considerados para exclusión inmediata (o al menos, para modificación de los valores predeterminados relacionados) incluyen:

  • 3.4.2 y 3.4.3, que por defecto efectivamente limitan el acceso al host (incluido a través de ssh) solo a localhost.

Ejemplo de Playbook

Un ejemplo de playbook que usa este rol es el siguiente:

---

- hosts: localhost
  connection: local
  gather_facts: true
  become: yes

  roles:
    - Ansible-RHEL8-CIS-Benchmarks 

Un ejemplo más avanzado, que incluye modificaciones a los valores predeterminados utilizados, así como la exclusión de algunos ítems en el benchmark considerados innecesarios para un entorno ficticio, es el siguiente:

---

- hosts: localhost
  connection: local
  gather_facts: true
  become: yes

  vars:
    cis_level_1_exclusions:
      - 5.4.4
      - 3.4.2
      - 3.4.3
      - 6.2.13   
    cis_pass_max_days: 45
    cis_umask_default: 002
 
  roles:
    - Ansible-RHEL8-CIS-Benchmarks

Ten en cuenta que el uso de become: yes es necesario ya que el 99% de las tareas requieren acceso privilegiado para ejecutarse.

Variables del Rol

Consulta defaults/main.yml para ver las variables que se pueden sobrescribir según tus preferencias.

Opciones

Se pueden usar etiquetas (y combinaciones de estas) para ejecutar un nivel particular del estándar CIS, una sección o una recomendación individual. Por ejemplo:

  • Ejecutar solo tareas de Nivel 1
ansible-playbook playbook.yml -t level-1
  • Ejecutar solo tareas de la Sección 3
ansible-playbook playbook.yml -t section-3
  • Ejecutar solo las tareas 1.3.1 y 2.2.10
ansible-playbook playbook.yml -t 1.3.1,2.2.10
  • Ejecutar solo tareas puntuadas
ansible-playbook playbook.yml -t scored

Limitaciones

En la actualidad, solo se han implementado los ítems de Nivel 1 del benchmark. Los ítems de Nivel 2 se agregarán cuando el tiempo lo permita.

Las siguientes verificaciones no se han implementado:

  • 3.6.2. Las reglas de firewall son específicas del entorno.
  • 3.6.3. Las reglas de firewall son específicas del entorno.
  • 3.6.4. Las reglas de firewall son específicas del entorno.
  • 3.6.5. Las reglas de firewall son específicas del entorno.
  • 4.2.1.2. Determinar qué debe ser registrado y el destino de los mensajes es específico del entorno.
  • 4.2.2.2. Determinar qué debe ser registrado y el destino de los mensajes es específico del entorno.
  • 4.2.2.3. La edición en línea del archivo de configuración de syslog-ng se considera imprecisa y es mejor resolverla con un archivo de configuración proporcionado que aborde esto y otros requisitos relacionados.
  • 4.2.2.4. La edición en línea del archivo de configuración de syslog-ng se considera imprecisa y es mejor resolverla con un archivo de configuración proporcionado que aborde esto y otros requisitos relacionados.
  • 4.2.2.5. La edición en línea del archivo de configuración de syslog-ng se considera imprecisa y es mejor resolverla con un archivo de configuración proporcionado que aborde esto y otros requisitos relacionados.
  • 4.3. La configuración de logrotate es específica del sitio.
  • 5.3.2. La edición de múltiples líneas de archivos de configuración de pam se considera imprecisa y peligrosa, y es mejor resolverla con un archivo de configuración proporcionado que aborde esto y otros requisitos relacionados.
  • 5.3.3. La edición de múltiples líneas de archivos de configuración de pam se considera imprecisa y peligrosa, y es mejor resolverla con un archivo de configuración proporcionado que aborde esto y otros requisitos relacionados.

Compatibilidad

Este rol es compatible con las siguientes versiones de Ansible:

  • 2.0.2
  • 2.1.3
  • 2.2.0
  • 2.3.0

Este rol no ha sido probado con ninguna otra versión de Ansible.

Pruebas

Los siguientes procesos de prueba son aplicados por el desarrollador de este rol:

  • Se verifica la sintaxis del rol. Consulta make syntax.
  • Se ejecuta ansible-review contra el rol y se corrigen las advertencias que se consideran adecuadas. Consulta make review.
  • El rol se aplica contra un contenedor de Docker utilizando tanto ansible v2.1.3 como ansible v2.2. Consulta make test.

Las siguientes pruebas han sido señaladas, pero aún no se han implementado:

  • Probar la aplicación del rol contra la imagen Vagrant mvbcoding/awslinux, utilizando el aprovisionador de ansible.

Licencia

BSD.

Información del Autor

El rol fue desarrollado originalmente por Anth Courtney.

Este rol fue desarrollado posteriormente por Ben Wright.

Se agradece y fomenta toda retroalimentación, problemas y PRs.

Acerca del proyecto

Idempotent CIS Benchmarks for RHEL/CentOS Linux V2

Instalar
ansible-galaxy install HarryHarcourt.ansible_rhel8_cis_benchmarks
Licencia
Unknown
Descargas
160
Propietario