anthcourtney.cis-amazon-linux
anthcourtney.cis-amazon-linux
Estado de Construcción
Rama | Estado |
---|---|
Maestro | |
Construcción |
Desarrollo
Vamos a usar la rama "maestro" solo para cambios completamente probados.
De aquí en adelante, por favor envía tus solicitudes de extracción a la rama "build".
Necesitamos más apoyo de la comunidad para hacer cambios y, lo más importante, para probar y revisar esos cambios. Si deseas participar, por favor envía un mensaje a Anth o Chandan.
Los trabajos principales que se deben hacer son:
- CIS Benchmark v2.2.0
- Ansible 2.5 y superiores
- Amazon Linux 2 LTS
Introducción
Este rol de ansible aplica la versión v2.0.0 del CIS Amazon Linux Benchmark. https://benchmarks.cisecurity.org/tools2/linux/CIS_Amazon_Linux_Benchmark_v2.0.0.pdf
Este rol fue desarrollado y probado en Amazon Linux 2016.03. También ha sido probado con éxito en Amazon Linux 2016.09.
¿Por qué usaría este rol?
Si estás tratando de cumplir con un estándar de seguridad aceptado por la industria, como PCI DSS, APRA o ISO 27001, entonces necesitas demostrar que has aplicado estándares de endurecimiento documentados en todos los sistemas que están bajo evaluación.
Si estás usando Amazon Linux, este rol intenta proporcionar una parte de la solución para el cumplimento.
¡Aquí hay dragones!
Si estás considerando aplicar este rol a servidores, deberías tener un conocimiento básico del CIS Benchmark (o benchmarks similares) y una comprensión del impacto que puede tener en un sistema.
Tómate el tiempo para familiarizarte con el estándar y con los valores predeterminados configurables, y excluye cualquier elemento antes de aplicarlo a un sistema.
Un ejemplo de elementos que deben considerarse para la exclusión inmediata (o al menos, para la modificación de los valores predeterminados relacionados) incluye:
3.4.2
y3.4.3
, que por defecto limitan efectivamente el acceso al host (incluyendo a través de ssh) solo a localhost.
Amazon Linux y SE Linux
Por defecto, SElinux está deshabilitado a través de grub en amazon linux.
Para habilitarlo, edita;
/boot/grub/menu.lst
Modifica selinux=0
a selinux=1
touch /etc/selinux/config
Además, instala el siguiente paquete para permitir que el módulo SElinux de ansible funcione en el host.
yum install libselinux-python
Se requerirá reiniciar para que los cambios surtan efecto.
Ejemplo de Playbook
Un ejemplo de playbook que usa este rol es el siguiente:
---
- hosts: localhost
connection: local
gather_facts: true
become: yes
roles:
- anthcourtney.cis-amazon-linux
Un ejemplo más avanzado, que incluye modificaciones a los valores predeterminados utilizados, así como la exclusión de algunos elementos en el benchmark que se consideran 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:
- anthcourtney.cis-amazon-linux
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 la preferencia.
Opciones
Se pueden usar etiquetas (y combinaciones de ellas) para ejecutar un nivel particular del estándar CIS, una sección, o una recomendación individual. Por ejemplo:
- Ejecutar solo tareas del 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
Por el momento, solo se han implementado los ítems del Nivel 1 del benchmark. Los ítems del Nivel 2 se agregarán a medida que se disponga de tiempo.
Las siguientes comprobaciones no han sido implementadas:
- 3.6.2. Los conjuntos de reglas del firewall son específicos del entorno.
- 3.6.3. Los conjuntos de reglas del firewall son específicos del entorno.
- 3.6.4. Los conjuntos de reglas del firewall son específicos del entorno.
- 3.6.5. Los conjuntos de reglas del firewall son específicos del entorno.
- 4.2.1.2. La determinación de lo que se debería registrar y la destinación de los mensajes es específica del entorno.
- 4.2.2.2. La determinación de lo que se debería registrar y la destinación de los mensajes es específica del entorno.
- 4.2.2.3. La edición en línea del archivo de configuración de syslog-ng se considera demasiado imprecisa y se resuelve mejor con un archivo de configuración proporcionado que aborde este y otros requisitos relacionados.
- 4.2.2.4. La edición en línea del archivo de configuración de syslog-ng se considera demasiado imprecisa y se resuelve mejor con un archivo de configuración proporcionado que aborde este y otros requisitos relacionados.
- 4.2.2.5. La edición en línea del archivo de configuración de syslog-ng se considera demasiado imprecisa y se resuelve mejor con un archivo de configuración proporcionado que aborde este y otros requisitos relacionados.
- 4.3. La configuración de logrotate es específica del sitio.
- 5.3.2. La edición de varias líneas de archivos de configuración pam se considera demasiado imprecisa y peligrosa, y se resuelve mejor con un archivo de configuración proporcionado que aborde este y otros requisitos relacionados.
- 5.3.3. La edición de varias líneas de archivos de configuración pam se considera demasiado imprecisa y peligrosa, y se resuelve mejor con un archivo de configuración proporcionado que aborde este y otros requisitos relacionados.
Compatibilidad
Este rol es compatible con las siguientes versiones de ansible:
- 2.3
- 2.4
- 2.5
- 2.6
- 2.7
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 remedian las advertencias que se consideren apropiadas. Consultamake review
. - El rol se aplica contra un contenedor de docker usando tanto ansible v2.1.3 como ansible v2.2. consulta
make test
.
Las siguientes pruebas se han marcado pero aún no están implementadas:
- Test de aplicación del rol contra la imagen Vagrant
mvbcoding/awslinux
, usando el proveedor ansible.
Lint
Por favor, ejecuta make lint
para asegurarte de que estamos siguiendo los estándares de ansible.
Licencia
MIT.
Información del Autor
Este rol fue desarrollado por Anth Courtney.
Se agradecen y son bienvenidos todos los comentarios, problemas y solicitudes de extracción.
ansible-galaxy install anthcourtney.cis-amazon-linux