florianutz.ubuntu2004_cis

Ubuntu 20.04 CIS STIG

Estado de Compilación Rol de Ansible

Este rol se basa en la migración de 18.04. Las tareas son correctas en contenido, pero deben reordenarse para ajustar al Benchmark de 20.04. Contribuciones son bienvenidas.

Configura una máquina Ubuntu 20.04 para que sea compatible con CIS. Las fallas de nivel 1 y 2 se corregirán por defecto.

Este rol realizará cambios en el sistema que podrían romper cosas. No es una herramienta de auditoría, sino una herramienta de remediación que se utiliza después de haber realizado una auditoría.

Basado en CIS Ubuntu Linux 20.04 LTS Benchmark - v1.0.0 - 21-07-2020.

Comentarios

  • Si te gusta nuestro trabajo pero no puedes contribuir al código del rol, por favor tómate un momento para calificarlo en Ansible Galaxy. Allí puedes dar fácilmente comentarios positivos a los desarrolladores sobre su trabajo. Calificación de la Comunidad Galaxy
  • Si encuentras un error en el rol y no puedes solucionarlo tú mismo, crea un ticket con tantos detalles como sea posible. Ten en cuenta que todos los desarrolladores trabajan en el proyecto en su tiempo libre, y puede llevar tiempo recibir comentarios. Página de Problemas

PASO IMPORTANTE PARA LA INSTALACIÓN

Si deseas instalar esto a través del 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/ubuntu2004_cis.git

Ejemplo de Playbook

Puedes encontrar un ejemplo de playbook a continuación. Lee la documentación de todos modos y verifica las configuraciones para tu caso. Por ejemplo, ¡las configuraciones predeterminadas desinstalan el servidor X!

- name: Asegurar Servidor
  hosts: servers
  become: yes

  roles:
    - ubuntu2004_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 ubuntu2004_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.

Asumiendo que nombraste el archivo site.yml, ejecútalo con:

ansible-playbook site.yml

Requisitos

Debes leer cuidadosamente las tareas para asegurarte de que estos cambios no rompan 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.

ubuntu2004cis_notauto: Realizar verificaciones CIS que normalmente NO queremos automatizar debido a la alta probabilidad de romper el sistema (Predeterminado: falso)

ubuntu2004cis_section1: CIS - Configuraciones Generales (Sección 1) (Predeterminado: verdadero)

ubuntu2004cis_section2: CIS - Configuraciones de Servicios (Sección 2) (Predeterminado: verdadero)

ubuntu2004cis_section3: CIS - Configuraciones de Red (Sección 3) (Predeterminado: verdadero)

ubuntu2004cis_section4: CIS - Configuraciones de Registro y Auditoría (Sección 4) (Predeterminado: verdadero)

ubuntu2004cis_section5: CIS - Configuraciones de Acceso, Autenticación y Autorización (Sección 5) (Predeterminado: verdadero)

ubuntu2004cis_section6: CIS - Configuraciones de Mantenimiento del Sistema (Sección 6) (Predeterminado: verdadero)

Desactivar todas las funciones de SELinux

ubuntu2004cis_selinux_disable: falso

Variables de Servicio

Estas controlan si se permite o no que un servidor siga ejecutando estos servicios

ubuntu2004cis_avahi_server: falso  
ubuntu2004cis_cups_server: falso  
ubuntu2004cis_dhcp_server: falso  
ubuntu2004cis_ldap_server: falso  
ubuntu2004cis_telnet_server: falso  
ubuntu2004cis_nfs_server: falso  
ubuntu2004cis_rpc_server: falso  
ubuntu2004cis_ntalk_server: falso  
ubuntu2004cis_rsyncd_server: falso  
ubuntu2004cis_tftp_server: falso  
ubuntu2004cis_rsh_server: falso  
ubuntu2004cis_nis_server: falso  
ubuntu2004cis_snmp_server: falso  
ubuntu2004cis_squid_server: falso  
ubuntu2004cis_smb_server: falso  
ubuntu2004cis_dovecot_server: falso  
ubuntu2004cis_httpd_server: falso  
ubuntu2004cis_vsftpd_server: falso  
ubuntu2004cis_named_server: falso  
ubuntu2004cis_allow_autofs: falso

Designar el servidor como un Servidor de Correo

ubuntu2004cis_is_mail_server: falso

Parámetros de red del sistema (solo host O host y enrutador)

ubuntu2004cis_is_router: falso

IPv6 requerido

ubuntu2004cis_ipv6_required: verdadero

AIDE

ubuntu2004cis_config_aide: verdadero

Configuraciones de cron de AIDE

ubuntu2004cis_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 como 'verdadero' si se necesita X Windows en tu entorno

ubuntu2004cis_xwindows_required: no

Requerimientos de aplicaciones cliente

ubuntu2004cis_openldap_clients_required: falso
ubuntu2004cis_telnet_required: falso
ubuntu2004cis_talk_required: falso  
ubuntu2004cis_rsh_required: falso
ubuntu2004cis_ypbind_required: falso
ubuntu2004cis_rpc_required: falso

Sincronización de tiempo

ubuntu2004cis_time_synchronization: chrony
ubuntu2004cis_time_synchronization: ntp

ubuntu2004cis_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"

- name: "PUNTUADO | 1.1.5 | PARCHE | Asegurar que la opción noexec esté establecida en la partición /tmp"

No está implementado, noexec para /tmp interrumpirá apt. /tmp contiene scripts ejecutables durante la instalación del paquete.


1.5.3 | PARCHE | Asegurar que se requiera autenticación para el modo de un solo usuario

Está deshabilitado por defecto ya que configura una contraseña aleatoria para root. Para habilitarlo, establece:

ubuntu2004cis_rule_1_5_3: verdadero

Para usar algo diferente a la contraseña aleatoria:

ubuntu2004cis_root_password: 'nueva contraseña'
ubuntu2004cis_firewall: firewalld
ubuntu2004cis_firewall: iptables

5.3.1 | PARCHE | Asegurar que se configuren los requisitos para la creación de contraseñas

ubuntu2004cis_pwquality:
  - key: 'minlen'
    value: '14'
  - key: 'dcredit'
    value: '-1'
  - key: 'ucredit'
    value: '-1'
  - key: 'ocredit'
    value: '-1'
  - key: 'lcredit'
    value: '-1'

Dependencias

Desarrollado y probado con Ansible 2.10

Etiquetas

Hay muchas etiquetas disponibles para un control preciso de lo que se cambia y lo que no.

Algunos ejemplos de usar etiquetas:

    # Auditar y parchear el sitio
    ansible-playbook site.yml --tags="patch"

Lista de Recomendaciones:

1 Configuración Inicial

  • 1.1 Configuración del Sistema de Archivos
    • 1.1.1 Desactivar sistemas de archivos no utilizados
      • 1.1.1.1 Asegurar que la montaje de sistemas de archivos cramfs esté desactivada (Automatizado)
      • 1.1.1.2 Asegurar que la montaje de sistemas de archivos freevxfs esté desactivada - (Automatizado)
      • 1.1.1.3 Asegurar que la montaje de sistemas de archivos jffs2 esté desactivada (Automatizado)
      • 1.1.1.4 Asegurar que la montaje de sistemas de archivos hfs esté desactivada (Automatizado)
      • 1.1.1.5 Asegurar que la montaje de sistemas de archivos hfsplus esté desactivada - (Automatizado)
      • 1.1.1.6 Asegurar que la montaje de sistemas de archivos udf esté desactivada (Automatizado)
      • 1.1.1.7 Asegurar que la montaje de sistemas de archivos FAT esté limitada (Manual)
    • 1.1.2 Asegurar que /tmp esté configurado (Automatizado)
    • 1.1.3 Asegurar que la opción nodev esté establecida en la partición /tmp (Automatizado)
    • 1.1.4 Asegurar que la opción nosuid esté establecida en la partición /tmp (Automatizado)
    • 1.1.5 Asegurar que la opción noexec esté establecida en la partición /tmp (Automatizado)
    • 1.1.6 Asegurar que /dev/shm esté configurado (Automatizado)
    • 1.1.7 Asegurar que la opción nodev esté establecida en la partición /dev/shm (Automatizado)
    • 1.1.8 Asegurar que la opción nosuid esté establecida en la partición /dev/shm (Automatizado)
    • 1.1.9 Asegurar que la opción noexec esté establecida en la partición /dev/shm (Automatizado)
    • 1.1.10 Asegurar que exista una partición separada para /var (Automatizado)
    • 1.1.11 Asegurar que exista una partición separada para /var/tmp (Automatizado)
    • 1.1.12 Asegurar que la opción nodev esté establecida en la partición /var/tmp (Automatizado)
    • 1.1.13 Asegurar que la opción nosuid esté establecida en la partición /var/tmp (Automatizado)
    • 1.1.14 Asegurar que la opción noexec esté establecida en la partición /var/tmp (Automatizado)
    • 1.1.15 Asegurar que exista una partición separada para /var/log (Automatizado)
    • 1.1.16 Asegurar que exista una partición separada para /var/log/audit - (Automatizado)
    • 1.1.17 Asegurar que exista una partición separada para /home (Automatizado)
    • 1.1.18 Asegurar que la opción nodev esté establecida en la partición /home (Automatizado)
    • 1.1.19 Asegurar que la opción nodev esté establecida en las particiones de medios extraíbles (Manual)
    • 1.1.20 Asegurar que la opción nosuid esté establecida en las particiones de medios extraíbles - (Manual)
    • 1.1.21 Asegurar que la opción noexec esté establecida en las particiones de medios extraíbles - (Manual)
    • 1.1.22 Asegurar que se establezca el bit sticky en todos los directorios con permisos de escritura mundial - (Automatizado)
    • 1.1.23 Desactivar el Automontaje (Automatizado)
    • 1.1.24 Desactivar el Almacenamiento USB (Automatizado)
  • 1.2 Configurar Actualizaciones de Software
    • 1.2.1 Asegurar que los repositorios del gestor de paquetes estén configurados (Manual)
    • 1.2.2 Asegurar que las claves GPG estén configuradas (Manual)
  • 1.3 Configurar sudo
    • 1.3.1 Asegurar que sudo esté instalado (Automatizado)
    • 1.3.2 Asegurar que los comandos sudo usen pty (Automatizado)
    • 1.3.3 Asegurar que exista un archivo de registro para sudo (Automatizado)
  • 1.4 Verificación de la Integridad del Sistema de Archivos
    • 1.4.1 Asegurar que AIDE esté instalado (Automatizado)
    • 1.4.2 Asegurar que la integridad del sistema de archivos se verifique regularmente (Automatizado)
  • 1.5 Configuraciones de Arranque Seguro
    • 1.5.1 Asegurar que se establezca una contraseña para el gestor de arranque (Automatizado)
    • 1.5.2 Asegurar que se configuren los permisos en la configuración del gestor de arranque - (Automatizado)
    • 1.5.3 Asegurar que se requiera autenticación para el modo de un solo usuario (Automatizado)
  • 1.6 Endurecimiento Adicional del Proceso
    • 1.6.1 Asegurar que el soporte XD/NX esté habilitado (Automatizado)
    • 1.6.2 Asegurar que la aleatorización de diseño del espacio de direcciones (ASLR) esté habilitada - (Automatizado)
    • 1.6.3 Asegurar que el prelink esté deshabilitado (Automatizado)
    • 1.6.4 Asegurar que las volcadas de núcleo estén restringidas (Automatizado)
  • 1.7 Control de Acceso Obligatorio
    • 1.7.1 Configurar AppArmor
      • 1.7.1.1 Asegurar que AppArmor esté instalado (Automatizado)
      • 1.7.1.2 Asegurar que AppArmor esté habilitado en la configuración del gestor de arranque - (Automatizado)
      • 1.7.1.3 Asegurar que todos los Perfiles de AppArmor estén en modo de cumplimiento o quejas - (Automatizado)
      • 1.7.1.4 Asegurar que todos los Perfiles de AppArmor estén en cumplimiento (Automatizado)
  • 1.8 Banners de Advertencia
    • 1.8.1 Banners de Advertencia en la Línea de Comando
      • 1.8.1.1 Asegurar que el mensaje del día esté configurado correctamente (Automatizado)
      • 1.8.1.2 Asegurar que el banner de advertencia para el inicio de sesión local esté configurado correctamente - (Automatizado)
      • 1.8.1.3 Asegurar que el banner de advertencia para el inicio de sesión remoto esté configurado correctamente - (Automatizado)
      • 1.8.1.4 Asegurar que los permisos en /etc/motd estén configurados (Automatizado)
      • 1.8.1.5 Asegurar que los permisos en /etc/issue estén configurados (Automatizado)
      • 1.8.1.6 Asegurar que los permisos en /etc/issue.net estén configurados - (Automatizado)
  • 1.9 Asegurar que se instalen actualizaciones, parches y software de seguridad adicional (Manual)
  • 1.10 Asegurar que se elimine GDM o que el inicio de sesión esté configurado (Automatizado)

2 Servicios

  • 2.1 Servicios inetd
    • 2.1.1 Asegurar que xinetd no esté instalado (Automatizado)
    • 2.1.2 Asegurar que openbsd-inetd no esté instalado (Automatizado)
  • 2.2 Servicios de Propósito Especial
    • 2.2.1 Sincronización de Tiempo
      • 2.2.1.1 Asegurar que se use la sincronización de tiempo (Automatizado)
      • 2.2.1.2 Asegurar que systemd-timesyncd esté configurado (Manual)
      • 2.2.1.3 Asegurar que chrony esté configurado (Automatizado)
      • 2.2.1.4 Asegurar que ntp esté configurado (Automatizado)
    • 2.2.2 Asegurar que el sistema X Window no esté instalado (Automatizado)
    • 2.2.3 Asegurar que el Servidor Avahi no esté instalado (Automatizado)
    • 2.2.4 Asegurar que CUPS no esté instalado (Automatizado)
    • 2.2.5 Asegurar que el Servidor DHCP no esté instalado (Automatizado)
    • 2.2.6 Asegurar que el servidor LDAP no esté instalado (Automatizado)
    • 2.2.7 Asegurar que NFS no esté instalado (Automatizado)
    • 2.2.8 Asegurar que el Servidor DNS no esté instalado (Automatizado)
    • 2.2.9 Asegurar que el Servidor FTP no esté instalado (Automatizado)
    • 2.2.10 Asegurar que el servidor HTTP no esté instalado (Automatizado)
    • 2.2.11 Asegurar que el servidor IMAP y POP3 no estén instalados (Automatizado)
    • 2.2.12 Asegurar que Samba no esté instalado (Automatizado)
    • 2.2.13 Asegurar que el Servidor Proxy HTTP no esté instalado (Automatizado)
    • 2.2.14 Asegurar que el Servidor SNMP no esté instalado (Automatizado)
    • 2.2.15 Asegurar que el agente de transferencia de correo esté configurado para el modo solo-local - (Automatizado)
    • 2.2.16 Asegurar que el servicio rsync no esté instalado (Automatizado)
    • 2.2.17 Asegurar que el Servidor NIS no esté instalado (Automatizado)
  • 2.3 Clientes de Servicio
    • 2.3.1 Asegurar que el Cliente NIS no esté instalado (Automatizado)
    • 2.3.2 Asegurar que el cliente rsh no esté instalado (Automatizado)
    • 2.3.3 Asegurar que el cliente talk no esté instalado (Automatizado)
    • 2.3.4 Asegurar que el cliente telnet no esté instalado (Automatizado)
    • 2.3.5 Asegurar que el cliente LDAP no esté instalado (Automatizado)
    • 2.3.6 Asegurar que RPC no esté instalado (Automatizado)
  • 2.4 Asegurar que se eliminen o se enmascaren los servicios no esenciales (Manual)

3 Configuración de Red

  • 3.1 Desactivar protocolos y dispositivos de red no utilizados
    • 3.1.1 Desactivar IPv6 (Manual)
    • 3.1.2 Asegurar que las interfaces inalámbricas estén desactivadas (Automatizado)
  • 3.2 Parámetros de Red (Solo Host)
    • 3.2.1 Asegurar que el envío de redireccionamientos de paquetes esté desactivado (Automatizado)
    • 3.2.2 Asegurar que el reenvío IP esté desactivado (Automatizado)
  • 3.3 Parámetros de Red (Host y Enrutador)
    • 3.3.1 Asegurar que no se acepten paquetes de ruta origen (Automatizado)
    • 3.3.2 Asegurar que no se acepten redireccionamientos ICMP (Automatizado)
    • 3.3.3 Asegurar que no se acepten redireccionamientos ICMP seguros (Automatizado)
    • 3.3.4 Asegurar que se registren paquetes sospechosos (Automatizado)
    • 3.3.5 Asegurar que las solicitudes ICMP de difusión sean ignoradas (Automatizado)
    • 3.3.6 Asegurar que se ignoren respuestas ICMP falsas (Automatizado)
    • 3.3.7 Asegurar que se habilite el Filtrado de Ruta Inversa (Automatizado)
    • 3.3.8 Asegurar que se habiliten las Cookies TCP SYN (Automatizado)
    • 3.3.9 Asegurar que no se acepten anuncios de enrutador IPv6 (Automatizado)
  • 3.4 Protocolos de Red Poco Comunes
    • 3.4.1 Asegurar que DCCP esté deshabilitado (Automatizado)
    • 3.4.2 Asegurar que SCTP esté deshabilitado (Automatizado)
    • 3.4.3 Asegurar que RDS esté deshabilitado (Automatizado)
    • 3.4.4 Asegurar que TIPC esté deshabilitado (Automatizado)
  • 3.5 Configuración del Firewall
    • 3.5.1 Configurar UncomplicatedFirewall
      • 3.5.1.1 Asegurar que Uncomplicated Firewall esté instalado (Automatizado)
      • 3.5.1.2 Asegurar que iptables-persistent no esté instalado (Automatizado)
      • 3.5.1.3 Asegurar que el servicio ufw esté habilitado (Automatizado)
      • 3.5.1.4 Asegurar que el tráfico de loopback esté configurado (Automatizado)
      • 3.5.1.5 Asegurar que se configuren las conexiones salientes (Manual)
      • 3.5.1.6 Asegurar que existan reglas de firewall para todos los puertos abiertos (Manual)
      • 3.5.1.7 Asegurar que la política de firewall predeterminada sea de denegación (Automatizado)
    • 3.5.2 Configurar nftables
      • 3.5.2.1 Asegurar que nftables esté instalado (Automatizado)
      • 3.5.2.2 Asegurar que Uncomplicated Firewall no esté instalado o deshabilitado - (Automatizado)
      • 3.5.2.3 Asegurar que se haya limpiado iptables (Manual)
      • 3.5.2.4 Asegurar que exista una tabla (Automatizado)
      • 3.5.2.5 Asegurar que existan cadenas base (Automatizado)
      • 3.5.2.6 Asegurar que el tráfico de loopback esté configurado (Automatizado)
      • 3.5.2.7 Asegurar que se configuren las conexiones salientes y establecidas - (Manual)
      • 3.5.2.8 Asegurar que la política de firewall predeterminada sea de denegación (Automatizado)
      • 3.5.2.9 Asegurar que el servicio nftables esté habilitado (Automatizado)
      • 3.5.2.10 Asegurar que las reglas de nftables sean permanentes (Automatizado)
    • 3.5.3 Configurar iptables
      • 3.5.3.1.1 Asegurar que los paquetes de iptables estén instalados (Automatizado)
      • 3.5.3.1.2 Asegurar que nftables no esté instalado (Automatizado)
      • 3.5.3.1.3 Asegurar que Uncomplicated Firewall no esté instalado o deshabilitado - (Automatizado)
      • 3.5.3.2.1 Asegurar que la política de firewall predeterminada sea de denegación (Automatizado)
      • 3.5.3.2.2 Asegurar que el tráfico de loopback esté configurado (Automatizado)
      • 3.5.3.2.3 Asegurar que se configuren las conexiones salientes y establecidas - (Manual)
      • 3.5.3.2.4 Asegurar que existan reglas de firewall para todos los puertos abiertos (Automatizado)
      • 3.5.3.3.1 Asegurar que la política de firewall predeterminada para IPv6 sea de denegación (Automatizado)
      • 3.5.3.3.2 Asegurar que el tráfico de loopback IPv6 esté configurado (Automatizado)
      • 3.5.3.3.3 Asegurar que se configuren las conexiones salientes y establecidas en IPv6 - (Manual)
      • 3.5.3.3.4 Asegurar que existan reglas de firewall para IPv6 en todos los puertos abiertos - (Manual)

4 Registro y Auditoría

  • 4.1 Configurar la Contabilidad del Sistema (auditd)
    • 4.1.1 Asegurar que la auditoría esté habilitada
      • 4.1.1.1 Asegurar que auditd esté instalado (Automatizado)
      • 4.1.1.2 Asegurar que el servicio auditd esté habilitado (Automatizado)
      • 4.1.1.3 Asegurar que se habilite la auditoría para los procesos que se inician antes de auditd - (Automatizado)
      • 4.1.1.4 Asegurar que audit_backlog_limit sea suficiente (Automatizado)
    • 4.1.2 Configurar la Retención de Datos
      • 4.1.2.1 Asegurar que el tamaño de almacenamiento de registros de auditoría esté configurado (Automatizado)
      • 4.1.2.2 Asegurar que los registros de auditoría no se eliminen automáticamente (Automatizado)
      • 4.1.2.3 Asegurar que el sistema esté deshabilitado cuando los registros de auditoría estén llenos - (Automatizado)
    • 4.1.3 Asegurar que se recojan eventos que modifiquen la fecha y hora (Automatizado)
    • 4.1.4 Asegurar que se recojan eventos que modifiquen la información del usuario/grupo (Automatizado)
    • 4.1.5 Asegurar que se recojan eventos que modifiquen el entorno de red del sistema (Automatizado)
    • 4.1.6 Asegurar que se recojan eventos que modifiquen los Controles de Acceso Obligatorio del sistema (Automatizado)
    • 4.1.7 Asegurar que se recojan eventos de inicio y cierre de sesión (Automatizado)
    • 4.1.8 Asegurar que se recojan información de iniciación de sesión (Automatizado)
    • 4.1.9 Asegurar que se recojan eventos de modificación de permisos de acceso discrecional (Automatizado)
    • 4.1.10 Asegurar que se recojan intentos no autorizados de acceso a archivos (Automatizado)
    • 4.1.11 Asegurar que se recojan el uso de comandos privilegiados (Automatizado)
    • 4.1.12 Asegurar que se recojan los montajes exitosos del sistema de archivos (Automatizado)
    • 4.1.13 Asegurar que se recojan los eventos de eliminación de archivos por usuarios (Automatizado)
    • 4.1.14 Asegurar que se recojan los cambios en el alcance de administración del sistema (sudoers) (Automatizado)
    • 4.1.15 Asegurar que se recojan las ejecuciones de comandos por parte del administrador del sistema (sudo) (Automatizado)
    • 4.1.16 Asegurar que se recojan la carga y descarga de módulos del núcleo (Automatizado)
    • 4.1.17 Asegurar que la configuración de auditoría sea inmutable (Automatizado)
  • 4.2 Configurar Registro
    • 4.2.1 Configurar rsyslog
      • 4.2.1.1 Asegurar que rsyslog esté instalado (Automatizado)
      • 4.2.1.2 Asegurar que el servicio rsyslog esté habilitado (Automatizado)
      • 4.2.1.3 Asegurar que el registro esté configurado (Manual)
      • 4.2.1.4 Asegurar que se configuren los permisos de archivo predeterminados de rsyslog - (Automatizado)
      • 4.2.1.5 Asegurar que rsyslog esté configurado para enviar registros a un host remoto - (Automatizado)
      • 4.2.1.6 Asegurar que los mensajes remotos de rsyslog se acepten solo en hosts de registro designados. (Manual)
    • 4.2.2 Configurar journald
      • 4.2.2.1 Asegurar que journald esté configurado para enviar registros a rsyslog - (Automatizado)
      • 4.2.2.2 Asegurar que journald esté configurado para comprimir archivos de registro grandes - (Automatizado)
      • 4.2.2.3 Asegurar que journald esté configurado para escribir archivos de registro en disco persistente (Automatizado)
    • 4.2.3 Asegurar que se configuren los permisos en todos los archivos de registro (Automatizado)
  • 4.3 Asegurar que logrotate esté configurado (Manual)
  • 4.4 Asegurar que logrotate asigne permisos adecuados (Automatizado)

5 Acceso, Autenticación y Autorización

  • 5.1 Configurar programadores de trabajos basados en tiempo
    • 5.1.1 Asegurar que el demonio cron esté habilitado y en ejecución (Automatizado)
    • 5.1.2 Asegurar que se configuren los permisos en /etc/crontab (Automatizado)
    • 5.1.3 Asegurar que se configuren los permisos en /etc/cron.hourly (Automatizado)
    • 5.1.4 Asegurar que se configuren los permisos en /etc/cron.daily (Automatizado)
    • 5.1.5 Asegurar que se configuren los permisos en /etc/cron.weekly (Automatizado)
    • 5.1.6 Asegurar que se configuren los permisos en /etc/cron.monthly (Automatizado)
    • 5.1.7 Asegurar que se configuren los permisos en /etc/cron.d (Automatizado)
    • 5.1.8 Asegurar que cron esté restringido a usuarios autorizados (Automatizado)
    • 5.1.9 Asegurar que at esté restringido a usuarios autorizados (Automatizado)
  • 5.2 Configurar el Servidor SSH
    • 5.2.1 Asegurar que se configuren los permisos en /etc/ssh/sshd_config - (Automatizado)
    • 5.2.2 Asegurar que se configuren los permisos en los archivos de clave privada del host SSH - (Automatizado)
    • 5.2.3 Asegurar que se configuren los permisos en los archivos de clave pública del host SSH - (Automatizado)
    • 5.2.4 Asegurar que el nivel de registro SSH sea apropiado (Automatizado)
    • 5.2.5 Asegurar que el reenvío X11 de SSH esté deshabilitado (Automatizado)
    • 5.2.6 Asegurar que el MaxAuthTries de SSH esté configurado en 4 o menos (Automatizado)
    • 5.2.7 Asegurar que SSH IgnoreRhosts esté habilitado (Automatizado)
    • 5.2.8 Asegurar que la Autenticación basada en Host SSH esté deshabilitada (Automatizado)
    • 5.2.9 Asegurar que el inicio de sesión SSH root esté deshabilitado (Automatizado)
    • 5.2.10 Asegurar que PermitEmptyPasswords de SSH esté deshabilitado (Automatizado)
    • 5.2.11 Asegurar que PermitUserEnvironment de SSH esté deshabilitado (Automatizado)
    • 5.2.12 Asegurar que se utilicen solo cifrados fuertes (Automatizado)
    • 5.2.13 Asegurar que se utilicen solo algoritmos MAC fuertes (Automatizado)
    • 5.2.14 Asegurar que se utilicen solo algoritmos de intercambio de claves fuertes - (Automatizado)
    • 5.2.15 Asegurar que se configure el intervalo de tiempo de espera inactivo de SSH (Automatizado)
    • 5.2.16 Asegurar que el LoginGraceTime de SSH esté configurado en un minuto o menos - (Automatizado)
    • 5.2.17 Asegurar que se limite el acceso SSH (Automatizado)
    • 5.2.18 Asegurar que se configure un banner de advertencia para SSH (Automatizado)
    • 5.2.19 Asegurar que SSH PAM esté habilitado (Automatizado)
    • 5.2.20 Asegurar que AllowTcpForwarding de SSH esté deshabilitado (Automatizado)
    • 5.2.21 Asegurar que se configure MaxStartups de SSH (Automatizado)
    • 5.2.22 Asegurar que MaxSessions de SSH esté limitado (Automatizado)
  • 5.3 Configurar PAM
    • 5.3.1 Asegurar que se configuren los requisitos para la creación de contraseñas - (Automatizado)
    • 5.3.2 Asegurar que se configure el bloqueo por intentos fallidos de contraseña - (Automatizado)
    • 5.3.3 Asegurar que se limite la reutilización de contraseñas (Automatizado)
    • 5.3.4 Asegurar que el algoritmo de hashing de contraseñas sea SHA-512 (Automatizado)
  • 5.4 Cuentas de Usuario y Entorno
    • 5.4.1 Configurar Parámetros de la Suite de Contraseñas
      • 5.4.1.1 Asegurar que la expiración de la contraseña sea de 365 días o menos (Automatizado)
      • 5.4.1.2 Asegurar que se configuren los días mínimos entre cambios de contraseña - (Automatizado)
      • 5.4.1.3 Asegurar que los días de advertencia de expiración de contraseña sean 7 o más - (Automatizado)
      • 5.4.1.4 Asegurar que el bloqueo de contraseña inactiva sea de 30 días o menos (Automatizado)
      • 5.4.1.5 Asegurar que la última fecha de cambio de contraseña de todos los usuarios esté en el pasado - (Automatizado)
    • 5.4.2 Asegurar que las cuentas del sistema estén aseguradas (Automatizado)
    • 5.4.3 Asegurar que el grupo predeterminado para la cuenta root sea GID 0 (Automatizado)
    • 5.4.4 Asegurar que el umask predeterminado de los usuarios sea 027 o más restrictivo - (Automatizado)
    • 5.4.5 Asegurar que el tiempo de espera del shell de usuario predeterminado sea de 900 segundos o menos - (Automatizado)
  • 5.5 Asegurar que el inicio de sesión root esté restringido a la consola del sistema (Manual)
  • 5.6 Asegurar que el acceso al comando su esté restringido (Automatizado)

6 Mantenimiento del Sistema

  • 6.1 Permisos de Archivos del Sistema
    • 6.1.1 Auditar permisos de archivos del sistema (Manual)
    • 6.1.2 Asegurar que se configuren los permisos en /etc/passwd (Automatizado)
    • 6.1.3 Asegurar que se configuren los permisos en /etc/gshadow- (Automatizado)
    • 6.1.4 Asegurar que se configuren los permisos en /etc/shadow (Automatizado)
    • 6.1.5 Asegurar que se configuren los permisos en /etc/group (Automatizado)
    • 6.1.6 Asegurar que se configuren los permisos en /etc/passwd- (Automatizado)
    • 6.1.7 Asegurar que se configuren los permisos en /etc/shadow- (Automatizado)
    • 6.1.8 Asegurar que se configuren los permisos en /etc/group- (Automatizado)
    • 6.1.9 Asegurar que se configuren los permisos en /etc/gshadow (Automatizado)
    • 6.1.10 Asegurar que no existan archivos de escritura mundial (Automatizado)
    • 6.1.11 Asegurar que no existan archivos o directorios sin dueño (Automatizado)
    • 6.1.12 Asegurar que no existan archivos o directorios sin grupo (Automatizado)
    • 6.1.13 Auditar ejecutables SUID (Manual)
    • 6.1.14 Auditar ejecutables SGID (Manual)
  • 6.2 Configuración de Usuarios y Grupos
    • 6.2.1 Asegurar que los campos de contraseña no estén vacíos (Automatizado)
    • 6.2.2 Asegurar que root sea la única cuenta UID 0 (Automatizado)
    • 6.2.3 Asegurar la Integridad del PATH de root (Automatizado)
    • 6.2.4 Asegurar que existan los directorios home de todos los usuarios (Automatizado)
    • 6.2.5 Asegurar que los permisos de los directorios home de los usuarios sean 750 o más restrictivos (Automatizado)
    • 6.2.6 Asegurar que los usuarios sean dueños de sus directorios home (Automatizado)
    • 6.2.7 Asegurar que los archivos . de los usuarios no sean de escritura grupal o mundial - (Automatizado)
    • 6.2.8 Asegurar que no haya usuarios con archivos .forward (Automatizado)
    • 6.2.9 Asegurar que no haya usuarios con archivos .netrc (Automatizado)
    • 6.2.10 Asegurar que los archivos .netrc de los usuarios no sean accesibles a grupos o mundialmente - (Automatizado)
    • 6.2.11 Asegurar que no haya usuarios con archivos .rhosts (Automatizado)
    • 6.2.12 Asegurar que todos los grupos en /etc/passwd existan en /etc/group - (Automatizado)
    • 6.2.13 Asegurar que no existan duplicados de UID (Automatizado)
    • 6.2.14 Asegurar que no existan duplicados de GID (Automatizado)
    • 6.2.15 Asegurar que no existan duplicados de nombres de usuario (Automatizado)
    • 6.2.16 Asegurar que no existan duplicados de nombres de grupo (Automatizado)
    • 6.2.17 Asegurar que el grupo shadow esté vacío (Automatizado)

Licencia

MIT

Otro

Este repositorio se originó a partir del trabajo realizado por MindPointGroup

Acerca del proyecto

Ansible role to apply Ubuntu 20.04 CIS Baseline

Instalar
ansible-galaxy install florianutz.ubuntu2004_cis
Licencia
mit
Descargas
7.9k
Propietario