En este documento, se describe el nivel de cumplimiento que tienen los clústeres de Anthos en VMware (GKE On-Prem) con la comparativa de CIS para Ubuntu.
Versiones
En este documento, se hace referencia a las siguientes versiones:
Versión de Anthos | Versión de Ubuntu | Versión de la comparativa de CIS para Ubuntu | Nivel de CIS |
---|---|---|---|
1.9 | 18.04 LTS | v2.0.1 | Servidor de nivel 2 |
Accede a la comparativa
La comparativa de CIS para Ubuntu está disponible en el sitio web de CIS.
Perfil de configuración
En el documento de la comparativa de CIS para Ubuntu, puedes leer sobre los perfiles de configuración. Las imágenes de Ubuntu que usan los clústeres de Anthos alojados en VMware se endurecen para cumplir con el perfil del servidor de nivel 2.
Evaluación en clústeres de Anthos alojados en VMware
Usamos los siguientes valores para especificar el estado de las recomendaciones de Ubuntu en clústeres de Anthos alojados en VMware.
Estado | Descripción |
---|---|
Pass | Cumple con una recomendación de comparativa. |
Reprobadas | No cumple con una recomendación de comparativa. |
Control equivalente | No cumple con los términos exactos de una recomendación de comparativa, pero otros mecanismos en los clústeres de Anthos alojados en VMware proporcionan controles de seguridad equivalentes. |
Depende del entorno | Los clústeres de Anthos alojados en VMware no configuran elementos relacionados con una recomendación de comparativa. Tu configuración determina si tu entorno cumple con la recomendación. |
Estado de los clústeres de Anthos alojados en VMware
Las imágenes de Ubuntu que se usan con los clústeres de Anthos alojados en VMware se endurecen para cumplir con el perfil del servidor de nivel 2 de CIS. En la siguiente tabla, se proporcionan justificaciones sobre por qué los componentes de los clústeres de Anthos alojados en VMware no aprobaron ciertas recomendaciones.
# | Recomendación | Con puntuación/Sin puntuación | Estado | Justificación | Componentes afectados |
---|---|---|---|---|---|
1.1.2 | Asegúrate de que /tmp esté configurado | Con puntuación | Reprobadas | En este momento, Canonical no tiene planes de modificar las particiones de imagen en la nube. | Todos los nodos del clúster, la estación de trabajo de administrador, Seesaw |
1.1.6 | Asegúrate de que exista una partición independiente para /var | Puntuados | No se corregirá | En este momento, Canonical no tiene planes de modificar las particiones de imagen en la nube. | Todos los nodos del clúster, la estación de trabajo de administrador, Seesaw |
1.1.7 | Asegúrate de que exista una partición independiente para /var/tmp | Puntuados | No se corregirá | En este momento, Canonical no tiene planes de modificar las particiones de imagen en la nube. | Todos los nodos del clúster, la estación de trabajo de administrador, Seesaw |
1.1.11 | Asegúrate de que exista una partición independiente para /var/log | Puntuados | No se corregirá | En este momento, Canonical no tiene planes de modificar las particiones de imagen en la nube. | Todos los nodos del clúster, la estación de trabajo de administrador, Seesaw |
1.1.12 | Asegúrate de que exista una partición independiente para /var/log/audit | Puntuados | No se corregirá | En este momento, Canonical no tiene planes de modificar las particiones de imagen en la nube. | Todos los nodos del clúster, la estación de trabajo de administrador, Seesaw |
1.1.13 | Asegúrate de que exista una partición independiente para /home | Con puntuación | No se corregirá | En este momento, Canonical no tiene planes de modificar las particiones de imagen en la nube. | Todos los nodos del clúster, la estación de trabajo de administrador, Seesaw |
1.1.21 | Asegúrate de que el bit persistente esté configurado en todos los directorios que admiten escritura pública | Con puntuación | Reprobadas | Esto podría interferir con la funcionalidad de Anthos y sus servicios, y no está habilitado de forma predeterminada | Todos los nodos del clúster, la estación de trabajo de administrador |
1.5.1 | Asegúrate de que los permisos en la configuración del bootloader estén configurados | Con puntuación | Reprobadas | Los permisos se dejaron como predeterminados. | Todos los nodos del clúster, Seesaw |
1.5.2 | Asegúrate de que la contraseña de bootloader esté configurada | Con puntuación | Depende del entorno | No se configuró una contraseña raíz en las imágenes de Ubuntu en la nube. | Todos los nodos del clúster, la estación de trabajo de administrador, Seesaw |
1.5.3 | Asegúrate de que se requiera la autenticación para el modo de usuario único | Con puntuación | Depende del entorno | No se configuró una contraseña raíz en las imágenes de Ubuntu en la nube. | Todos los nodos del clúster, la estación de trabajo de administrador, Seesaw |
1.8.1.2 | Asegúrate de que el banner de advertencia de acceso local esté configurado correctamente | Puntuados | Control equivalente | Anthos también aplica el endurecimiento DISA-STIG a los nodos, lo que actualiza el banner de advertencia según corresponda | Todos los nodos del clúster, Seesaw |
3.1.2 | Asegúrate de que el reenvío de IP esté inhabilitado | Con puntuación | Reprobadas | El reenvío de IP es necesario para que Kubernetes (GKE) funcione y enrute el tráfico de forma correcta | Todos los nodos del clúster, la estación de trabajo de administrador, Seesaw |
3.2.7 | Asegúrate de que el filtrado de ruta de acceso inversa esté habilitado. | Puntuados | Depende del entorno | El enrutamiento asíncrono y el origen de la ruta de acceso inversa son requisitos para entregar el balanceo de cargas del clúster | Seesaw |
3.5.2.5 | Asegúrate de que las reglas de firewall existan para todos los puertos abiertos | Sin puntuación | Depende del entorno | Se recomienda que Anthos en VMware se implemente en una red privada con las protecciones de firewall adecuadas. Puedes encontrar las reglas de firewall necesarias aquí. | Todos los nodos del clúster, la estación de trabajo de administrador, Seesaw |
3.5.4.1.1 | Asegúrate de tener una política de denegación de firewall predeterminada | Puntuados | Depende del entorno | Se recomienda que Anthos en VMware se implemente en una red privada con las protecciones de firewall adecuadas. Puedes encontrar las reglas de firewall necesarias aquí. | Todos los nodos del clúster, la estación de trabajo de administrador, Seesaw |
3.5.4.1.2 | Asegúrate de que el tráfico de bucle invertido esté configurado | Con puntuación | Depende del entorno | La utilización de la interfaz de bucle invertido se limita dada la funcionalidad de balanceo de cargas que se usa. | Seesaw |
3.5.4.2.1 | Asegúrate de que la política de denegación de firewall de IPv6 sea predeterminada | Con puntuación | Depende del entorno | Se recomienda que Anthos en VMware se implemente en una red privada con las protecciones de firewall adecuadas. Puedes encontrar las reglas de firewall necesarias aquí. Anthos no tiene requisitos para IPv6 compatible con GA. | Todos los nodos del clúster, la estación de trabajo de administrador, Seesaw |
3.5.4.2.2 | Asegúrate de que el tráfico de bucle invertido de IPv6 esté configurado | Con puntuación | Depende del entorno | Anthos no tiene requisitos para IPv6 compatible con GA. | Plano de control del administrador, Seesaw |
4.1.1.3 | Asegúrate de que la auditoría para los procesos que se inician antes de que se audite esté habilitada | Con puntuación | Reprobadas | Un problema conocido con nuestro proceso de compilación marca esto como con errores, sin embargo, esto se debe considerar una falsa alarma. Esto se solucionará en el futuro. | Todos los nodos del clúster, Seesaw |
4.1.1.11 | Asegúrate de que se recopile el uso de comandos con privilegios | Puntuados | Reprobadas | Algunos objetos binarios se instalan en el tiempo de ejecución, por lo que se necesita su solución. | Todos los nodos del clúster, la estación de trabajo de administrador, Seesaw |
4.2.1.5 | Asegúrate de que rsyslog esté configurado para enviar registros a un host de registro remoto | Con puntuación | Depende del entorno | Por el momento, Anthos en VMWare recopila todos los registros de journald (de los servicios del sistema). Estos podrán ver los registros en “k8s_node” | Todos los nodos del clúster, la estación de trabajo de administrador, Seesaw |
4.2.3 | Asegúrate de que los permisos de todos los archivos de registro estén configurados | Con puntuación | Reprobadas | Esta prueba específica es demasiado restrictiva y poco realista, ya que muchos servicios pueden requerir que un grupo escriba archivos de registro. Es posible que se quite este elemento en una comparativa futura. | Todos los nodos del clúster, la estación de trabajo de administrador, Seesaw |
5.2.12 | Asegúrate de que SSH PermitUserEnvironment esté inhabilitado | Con puntuación | Reprobadas | Esta configuración entra en conflicto con la configuración de endurecimiento de DISA-STIG. | Todos los nodos del clúster, Seesaw |
5.2.13 | Asegúrate de que solo se usen algoritmos de cifrado sólidos | Con puntuación | Control equivalente | La aplicación de DISA-STIG usa una lista alternativa de algoritmos de cifrado compatibles que no se alinean 1:1 con los que usa esta comparativa | Todos los nodos del clúster |
5.2.18 | Asegúrate de que el acceso SSH sea limitado | Con puntuación | Depende del entorno | No se configura de forma predeterminada. Puede configurarse para cumplir con los requisitos específicos. | Todos los nodos del clúster, la estación de trabajo de administrador, Seesaw |
5.2.19 | Asegúrate de que el banner de advertencia de SSH esté configurado | Con puntuación | Control equivalente | La aplicación de la configuración de endurecimiento de DISA-STIG modifica el banner de advertencia SSH | Todos los nodos del clúster, Seesaw |
6,1.6 | Asegúrate de que los permisos en /etc/passwd estén configurados | Con puntuación | Reprobadas | Esta prueba específica es demasiado restrictiva y Canonical la está actualizando (vínculo). | Todos los nodos del clúster, la estación de trabajo de administrador, Seesaw |
6.1.10 | Asegúrate de que no existan archivos que admitan la escritura pública | Puntuados | Reprobadas | Los permisos se dejaron como predeterminados. | Todos los nodos del clúster |
6.1.11 | Asegúrate de que no existan archivos ni directorios sin propietario | Con puntuación | Reprobadas | Los permisos se dejaron como predeterminados. | Todos los nodos del clúster |
6.1.12 | Asegúrate de que no existan archivos ni directorios no agrupados | Puntuados | Reprobadas | Los permisos se dejaron como predeterminados. | Todos los nodos del clúster |
6.2.10 | Asegúrate de que los dotfiles de los usuarios no admitan la escritura grupal ni pública | Con puntuación | Reprobadas | La configuración predeterminada para Ubuntu permite los permisos de grupos de dotfiles debido a la compatibilidad | Estación de trabajo de administrador |
Configura un trabajo cron de AIDE
AIDE es una herramienta de verificación de integridad de archivos que garantiza el cumplimiento de la comparativa CIS L1 Server 1.4 Filesystem Integrity Checking
. En los clústeres de Anthos alojados en VMware, el proceso AIDE generó problemas de alto uso de recursos.
A partir de la versión 1.9.7, el proceso AIDE en los nodos se inhabilita de forma predeterminada para evitar problemas de recursos. Esto afectará el cumplimiento de la comparativa de CIS L1 Server 1.4.2: Ensure
filesystem integrity is regularly checked.
Si deseas aceptar y ejecutar el trabajo cron de AIDE, completa los siguientes pasos para volver a habilitar AIDE:
Crea un DaemonSet.
A continuación, se muestra un manifiesto para un DaemonSet:
apiVersion: apps/v1 kind: DaemonSet metadata: name: enable-aide-pool1 spec: selector: matchLabels: app: enable-aide-pool1 template: metadata: labels: app: enable-aide-pool1 spec: hostIPC: true hostPID: true nodeSelector: cloud.google.com/gke-nodepool: pool-1 containers: - name: update-audit-rule image: ubuntu command: ["chroot", "/host", "bash", "-c"] args: - | set -x while true; do # change daily cronjob schedule minute=30;hour=5 sed -E "s/([0-9]+ [0-9]+)(.*run-parts --report \/etc\/cron.daily.*)/$minute $hour\2/g" -i /etc/crontab # enable aide chmod 755 /etc/cron.daily/aide sleep 3600 done volumeMounts: - name: host mountPath: /host securityContext: privileged: true volumes: - name: host hostPath: path: /
En el manifiesto anterior, se dan las siguientes situaciones:
El trabajo cron de AIDE solo se ejecutará en el grupo de nodos
pool-1
según lo especificado por el nodeSelectorcloud.google.com/gke-nodepool: pool-1
. Puedes configurar el proceso de AIDE para que se ejecute en tantos grupos de nodos como desees si especificas los grupos en el camponodeSelector
. Para ejecutar la misma programación de trabajo cron en diferentes grupos de nodos, quita el camponodeSelector
. Sin embargo, para evitar las congestión de recursos del host, te recomendamos que mantengas programas independientes.El trabajo cron está programado para ejecutarse a las 5:30 a.m. según lo especificado por la configuración
minute=30;hour=5
. Puedes configurar diferentes programas para el trabajo cron de AIDE según sea necesario.
Copia el manifiesto en un archivo llamado
enable-aide.yaml
y crea el DaemonSet:
kubectl apply --kubeconfig USER_CLUSTER_KUBECONFIG -f enable-aide.yaml
En el ejemplo anterior, USER_CLUSTER_KUBECONFIG es la ruta de acceso del archivo kubeconfig del clúster de usuario.