Neste documento, descrevemos o nível de conformidade que o GKE no VMware tem com o CIS Benchmark do Ubuntu.
Versões
Este documento se refere a estas versões:
Versão Anthos | Versão do Ubuntu | Versão do comparativo de mercado do Ubuntu da CIS | Nível da CIS |
---|---|---|---|
1.16 | 20.04 LTS | v1.0.0 | Servidor de nível 2 |
Acessar o comparativo de mercado
O comparativo de mercado do Ubuntu da CIS está disponível no site da CIS:
Perfil de configuração
No documento do comparativo de mercado do Ubuntu da CIS, é possível ler sobre os perfis de configuração. As imagens do Ubuntu usadas pelo GKE no VMware são reforçadas para atender ao Nível 2: perfil do servidor.
Avaliação no GKE no VMware
Usamos os seguintes valores para especificar o status das recomendações do Ubuntu no GKE no VMware.
Status | Descrição |
---|---|
Pass | Está em conformidade com uma recomendação do comparativo de mercado. |
Reprovado | Não está em conformidade com uma recomendação do comparativo de mercado. |
Controle equivalente | Não está em conformidade com os termos exatos de uma recomendação de comparativo de mercado, mas outros mecanismos no GKE no VMware fornecem controles de segurança equivalentes. |
Depende do ambiente | O GKE no VMware não configura itens relacionados a uma recomendação de comparativo de mercado. A configuração determina se o ambiente está em conformidade com a recomendação. |
Status do GKE no VMware
As imagens do Ubuntu usadas com o GKE no VMware são reforçadas para atender ao nível 2 do perfil do servidor do CIS. A tabela a seguir fornece justificativas para o motivo dos componentes do GKE no VMware não aprovarem determinadas recomendações.
# | Recomendação | Pontuou/Não pontuou | Status | Justificativa | Componentes afetados |
---|---|---|---|---|---|
1.1.2 | Verifique se /tmp está configurado. | Pontuou | Reprovado | A Canonical não tem o plano de modificar as partições de imagem em nuvem no momento. | Todos os nós do cluster, estação de trabalho do administrador, Seesaw |
1.1.10 | Verifique se há uma partição separada para /var | Pontuou | Não corrigir | A Canonical não tem o plano de modificar as partições de imagem em nuvem no momento. | Todos os nós do cluster, estação de trabalho do administrador, Seesaw |
1.1.11 | Verifique se há uma partição separada para /var/tmp | Pontuou | Não corrigir | A Canonical não tem o plano de modificar as partições de imagem em nuvem no momento. | Todos os nós do cluster, estação de trabalho do administrador, Seesaw |
1.1.15 | Verifique se há uma partição separada para /var/log | Pontuou | Não corrigir | A Canonical não tem o plano de modificar as partições de imagem em nuvem no momento. | Todos os nós do cluster, estação de trabalho do administrador, Seesaw |
1.1.16 | Verifique se há uma partição separada para /var/log/audit | Pontuou | Não corrigir | A Canonical não tem o plano de modificar as partições de imagem em nuvem no momento. | Todos os nós do cluster, estação de trabalho do administrador, Seesaw |
1.1.17 | Verifique se existe uma partição separada para /home | Pontuou | Não corrigir | A Canonical não tem o plano de modificar as partições de imagem em nuvem no momento. | Todos os nós do cluster, estação de trabalho do administrador, Seesaw |
1.1.22 | Certifique-se de que o bit fixo esteja definido em todos os diretórios graváveis globalmente | Pontuou | Reprovado | Isso pode interferir na funcionalidade do Anthos e dos serviços dele e não é ativado por padrão. | Todos os nós do cluster, estação de trabalho do administrador |
1.5.1 | Verifique se as permissões na configuração do carregador de inicialização estão definidas | Pontuou | Reprovado | As permissões foram mantidas como padrão. | Todos os nós de cluster, Seesaw |
1.5.2 | Verifique se a senha do carregador de inicialização está definida | Pontuou | Depende do ambiente | Nenhuma senha raiz é definida nas imagens da nuvem do Ubuntu. | Todos os nós do cluster, estação de trabalho do administrador, Seesaw |
1.5.3 | Certifique-se de que o modo de usuário único seja autenticado | Pontuou | Depende do ambiente | Nenhuma senha raiz é definida nas imagens da nuvem do Ubuntu. | Todos os nós do cluster, estação de trabalho do administrador, Seesaw |
2.3.6 | Verificar se a RPC não está instalada | Pontuou | Falhou | O rpcbind é instalado na imagem da nuvem canônica, embora não esteja ativado por padrão. A regra está falhando porque exige que ela não seja instalada. | Todos os nós do cluster |
3.2.2 | Verifique se o encaminhamento de IP está desativado | Pontuou | Reprovado | O encaminhamento de IP é necessário para que o Kubernetes (GKE) funcione e encaminhe o tráfego corretamente | Todos os nós do cluster, estação de trabalho do administrador, Seesaw |
3.2.7 | Verifique se a filtragem de caminho reverso está ativada | Pontuou | Depende do ambiente | O roteamento assíncrono e a origem do caminho reverso são um requisito para o balanceamento de carga do cluster. | Seesaw |
3.5.3.2.1 | Certifique-se de que a política de firewall de negação padrão | Pontuou | Depende do ambiente | É recomendável que o GKE no VMware seja implantado em uma rede particular com as proteções de firewall apropriadas. As regras de firewall necessárias podem ser encontradas aqui. | Todos os nós de cluster, a estação de trabalho do administrador e o Seesaw |
3.5.3.2.2 | Verifique se o tráfego de loopback está configurado | Pontuou | Depende do ambiente | O uso da interface de loopback é limitado devido à funcionalidade de balanceamento de carga usada. | Seesaw |
3.5.3.2.4 | Verifique se existem regras de firewall para todas as portas abertas | Não pontuou | Depende do ambiente | É recomendável que o GKE no VMware seja implantado em uma rede particular com as proteções de firewall apropriadas. As regras de firewall necessárias podem ser encontradas aqui. | Todos os nós do cluster, estação de trabalho do administrador, Seesaw |
3.5.3.3.1 | Certifique-se de que a política de firewall de negação padrão IPv6 | Pontuou | Depende do ambiente | É recomendável que o GKE no VMware seja implantado em uma rede particular com as proteções de firewall apropriadas. As regras de firewall necessárias podem ser encontradas aqui. Além disso, o Anthos não tem requisitos para IPv6 compatível com GA. | Todos os nós do cluster, estação de trabalho do administrador, Seesaw |
3.5.3.3.2 | Verifique se o tráfego de loopback do IPv6 está configurado | Pontuou | Depende do ambiente | O Anthos não tem requisitos para IPv6 de acordo com o suporte do GA. | Plano de controle de administrador, Seesaw |
4.1.1.3 | Verificar se a auditoria de processos iniciados antes da auditoria está ativada | Pontuou | Reprovado | Um problema conhecido com nosso processo de compilação sinaliza isso como "Falha", mas isso deve ser considerado um alarme falso. Isso será corrigido no futuro. | Todos os nós de cluster, Seesaw |
4.1.11 | Garantir que o uso de comandos com privilégios seja coletado | Pontuou | Reprovado | Alguns binários são instalados no ambiente de execução. Portanto, a correção é necessária. | Todos os nós do cluster, estação de trabalho do administrador, Seesaw |
4.2.1.5 | Verificar se o rsyslog está configurado para enviar registros a um host de registro remoto | Pontuou | Depende do ambiente | O GKE no VMWare atualmente coleta todos os registros gravados (dos serviços do sistema). Eles podem ser vistos em "k8s_node". | Todos os nós do cluster, estação de trabalho do administrador, Seesaw |
4.2.3 | Verifique se as permissões em todos os arquivos de registro estão configuradas | Pontuou | Reprovado | Esse teste específico é muito restritivo e pouco realista, porque muitos serviços podem exigir que um grupo grave arquivos de registros. Este item pode ser removido em um comparativo de mercado futuro. | Todos os nós do cluster, estação de trabalho do administrador, Seesaw |
4.4 | Verifique se o logrotate atribui as permissões apropriadas | Pontuou | Falhou | O cumprimento dessa regra pode afetar a funcionalidade de geração de registros atual | Todos os nós de cluster, Seesaw |
5.2.18 | Verifique se o acesso SSH está limitado | Pontuou | Depende do ambiente | Isso não é configurado por padrão. Ele pode ser configurado para atender aos seus requisitos específicos. | Todos os nós do cluster, estação de trabalho do administrador, Seesaw |
5.2.20 | Verifique se o SSH AllowTcpForwarding está desativado | Pontuou | Falhou | O cumprimento dessa regra pode afetar a funcionalidade atual do túnel SSH | Todos os nós do cluster |
5.4.1.1 | Garanta que a validade da senha seja de 365 dias ou menos | Pontuou | Controle equivalente | As VMs do GKE no VMware dependem da chave SSH para login do usuário, em vez de senha | Todos os nós do cluster |
6.1.10 | Verifique se não há arquivos graváveis mundiais | Pontuou | Reprovado | As permissões foram mantidas como padrão. | Todos os nós do cluster |
6.1.11 | Verifique se não há arquivos ou diretórios não proprietários | Pontuou | Reprovado | As permissões foram mantidas como padrão. | Todos os nós do cluster |
6.1.12 | Verifique se não há arquivos ou diretórios desagrupados | Pontuou | Reprovado | As permissões foram mantidas como padrão. | Todos os nós do cluster |
6.2.7 | Verifique se os arquivos dos pontos dos usuários não são graváveis ou agrupados | Pontuou | Reprovado | As configurações padrão do Ubuntu aceitam permissões do grupo de arquivos de ponto devido à compatibilidade | Estação de trabalho do administrador |
Configurar cron job do AIDE
O AIDE é uma ferramenta de verificação de integridade de arquivos que garante a conformidade com a referência de servidor CIS L1
1.4 Filesystem Integrity Checking
. No GKE no VMware,
o processo do AIDE está causando problemas de alto uso de recursos.
A partir da versão 1.12, o processo AIDE nos nós é desativado por padrão para evitar problemas de recursos. Isso afetará a conformidade com o comparativo de mercado do servidor CIS L1 1.4.2: Ensure
filesystem integrity is regularly checked.
Se você quiser ativar a execução do cron job do AIDE, conclua as etapas a seguir para reativá-lo:
Crie um DaemonSet.
Aqui está um manifesto para um BackendConfig.
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: /
No manifesto acima:
O job cron do AIDE só será executado no pool de nós
pool-1
conforme especificado pelo nodeSelectorcloud.google.com/gke-nodepool: pool-1
. É possível configurar o processo do AIDE para ser executado em quantos pools de nós você quiser especificando os pools no camponodeSelector
. Para executar a mesma programação de cron jobs em diferentes pools de nós, remova o camponodeSelector
. No entanto, para evitar congestionamentos de recursos de host, recomendamos manter programações separadas.O cron job está programado para ser executado diariamente às 5h30, conforme especificado pela configuração
minute=30;hour=5
. É possível configurar programações diferentes para o cron job do AIDE, conforme necessário.
Copie o manifesto para um arquivo chamado
enable-aide.yaml
e crie o DaemonSet:
kubectl apply --kubeconfig USER_CLUSTER_KUBECONFIG -f enable-aide.yaml
em que USER_CLUSTER_KUBECONFIG é o caminho do arquivo kubeconfig do cluster de usuário.