florianutz.ubuntu1804_cis
Ubuntu 18.04 CIS STIG
Configura la máquina Ubuntu 18.04 para que cumpla con CIS. Los hallazgos de los niveles 1 y 2 se corregirán por defecto.
Este rol hará cambios en el sistema que podrían romperlo. No es una herramienta de auditoría, sino una herramienta de remediación que se utiliza después de realizar una auditoría.
PASO IMPORTANTE DE INSTALACIÓN
Si deseas instalar esto mediante el comando ansible-galaxy
, debes ejecutarlo de la siguiente manera:
ansible-galaxy install -p roles -r requirements.yml
Con esto en el archivo requirements.yml:
- src: https://github.com/florianutz/Ubuntu1804-CIS.git
Basado en CIS Ubuntu Benchmark v2.0.1 - 01-03-2020.
Este repositorio se originó a partir del trabajo realizado por MindPointGroup.
Requisitos
Debes leer cuidadosamente las tareas para asegurarte de que estos cambios no romperán tus sistemas antes de ejecutar este playbook.
Variables del Rol
Hay muchas variables de rol definidas en defaults/main.yml. Esta lista muestra las más importantes.
ubuntu1804cis_notauto: Ejecutar verificaciones de CIS que normalmente NO queremos automatizar debido a la alta probabilidad de romper el sistema (Predeterminado: falso)
ubuntu1804cis_section1: CIS - Configuraciones Generales (Sección 1) (Predeterminado: verdadero)
ubuntu1804cis_section2: CIS - Configuraciones de Servicios (Sección 2) (Predeterminado: verdadero)
ubuntu1804cis_section3: CIS - Configuraciones de Red (Sección 3) (Predeterminado: verdadero)
ubuntu1804cis_section4: CIS - Configuraciones de Registro y Auditoría (Sección 4) (Predeterminado: verdadero)
ubuntu1804cis_section5: CIS - Configuraciones de Acceso, Autenticación y Autorización (Sección 5) (Predeterminado: verdadero)
ubuntu1804cis_section6: CIS - Configuraciones de Mantenimiento del Sistema (Sección 6) (Predeterminado: verdadero)
Desactivar todas las funciones de selinux
ubuntu1804cis_selinux_disable: false
Variables de servicio:
Estas controlan si un servidor debería o no continuar ejecutando estos servicios
ubuntu1804cis_avahi_server: false
ubuntu1804cis_cups_server: false
ubuntu1804cis_dhcp_server: false
ubuntu1804cis_ldap_server: false
ubuntu1804cis_telnet_server: false
ubuntu1804cis_nfs_server: false
ubuntu1804cis_rpc_server: false
ubuntu1804cis_ntalk_server: false
ubuntu1804cis_rsyncd_server: false
ubuntu1804cis_tftp_server: false
ubuntu1804cis_rsh_server: false
ubuntu1804cis_nis_server: false
ubuntu1804cis_snmp_server: false
ubuntu1804cis_squid_server: false
ubuntu1804cis_smb_server: false
ubuntu1804cis_dovecot_server: false
ubuntu1804cis_httpd_server: false
ubuntu1804cis_vsftpd_server: false
ubuntu1804cis_named_server: false
ubuntu1804cis_bind: false
ubuntu1804cis_vsftpd: false
ubuntu1804cis_httpd: false
ubuntu1804cis_dovecot: false
ubuntu1804cis_samba: false
ubuntu1804cis_squid: false
ubuntu1804cis_net_snmp: false
Designar el servidor como servidor de correo
ubuntu1804cis_is_mail_server: false
Parámetros de red del sistema (solo host O host y enrutador)
ubuntu1804cis_is_router: false
IPv6 requerido
ubuntu1804cis_ipv6_required: true
AIDE
ubuntu1804cis_config_aide: true
Configuraciones del cron de AIDE
ubuntu1804cis_aide_cron:
cron_user: root
cron_file: /etc/crontab
aide_job: '/usr/sbin/aide --check'
aide_minute: 0
aide_hour: 5
aide_day: '*'
aide_month: '*'
aide_weekday: '*'
Establecer en 'true' si X Windows es necesario en tu entorno
ubuntu1804cis_xwindows_required: no
Requisitos de aplicaciones cliente
ubuntu1804cis_openldap_clients_required: false
ubuntu1804cis_telnet_required: false
ubuntu1804cis_talk_required: false
ubuntu1804cis_rsh_required: false
ubuntu1804cis_ypbind_required: false
Sincronización de Tiempo
ubuntu1804cis_time_synchronization: chrony
ubuntu1804cis_time_Synchronization: ntp
ubuntu1804cis_time_synchronization_servers:
- uri: "0.pool.ntp.org"
config: "minpoll 8"
- uri: "1.pool.ntp.org"
config: "minpoll 8"
- uri: "2.pool.ntp.org"
config: "minpoll 8"
- uri: "3.pool.ntp.org"
config: "minpoll 8"
- nombre: "CALIFICADO | 1.1.5 | PARCHE | Asegúrese de que la opción noexec esté configurada en la partición /tmp"
No está implementado, noexec para /tmp interrumpirá apt. /tmp contiene scripts ejecutables durante la instalación de paquetes
1.5.3 | PARCHE | Asegúrese de que se requiera autenticación para el modo de un solo usuario
Está deshabilitado por defecto ya que establece una contraseña aleatoria para root. Para habilitarlo, configure:
ubuntu1804cis_rule_1_5_3: true
Para usar otra contraseña que no sea aleatoria:
ubuntu1804cis_root_password: 'nueva contraseña'
3.4.2 | PARCHE | Asegúrese de que /etc/hosts.allow esté configurado
ubuntu1804cis_host_allow:
- "10.0.0.0/255.0.0.0"
- "172.16.0.0/255.240.0.0"
- "192.168.0.0/255.255.0.0"
ubuntu1804cis_firewall: firewalld
ubuntu1804cis_firewall: iptables
5.3.1 | PARCHE | Asegúrese de que se configuren los requisitos de creación de contraseñas
ubuntu1804cis_pwquality:
- key: 'minlen'
value: '14'
- key: 'dcredit'
value: '-1'
- key: 'ucredit'
value: '-1'
- key: 'ocredit'
value: '-1'
- key: 'lcredit'
value: '-1'
Dependencias
Ansible >= 2.4 y <= 2.7 (2.8 aún no es compatible)
Ejemplo de Playbook
- name: Asegurar Servidor
hosts: servers
become: yes
roles:
- Ubuntu1804-CIS
Para ejecutar las tareas en este repositorio, primero crea este archivo un nivel por encima del repositorio
(es decir, el archivo playbook .yml y el directorio Ubuntu1804-CIS
deben estar uno al lado del otro),
luego revisa el archivo defaults/main.yml
y desactiva cualquier regla/sección que no desees ejecutar.
Suponiendo que nombraste el archivo site.yml
, ejecútalo con:
ansible-playbook site.yml
Tags
Hay muchas etiquetas disponibles para un control preciso de lo que se cambia y lo que no.
Algunos ejemplos de uso de etiquetas:
# Auditar y parchear el sitio
ansible-playbook site.yml --tags="patch"
Licencia
MIT
Ansible role to apply Ubuntu 18.04 CIS Baseline
ansible-galaxy install florianutz.ubuntu1804_cis