CIS Ubuntu 벤치마크

이 문서에서는 CIS Ubuntu 벤치마크로 VMware용 Anthos 클러스터(GKE On-Prem)의 규정 준수 수준을 설명합니다.

버전

이 문서에서는 다음과 같은 버전이 사용됩니다.

Anthos 버전 Ubuntu 버전 CIS Ubuntu 벤치마크 버전 CIS 수준
1.9 18.04 LTS v2.0.1 수준 2 서버

벤치마크 액세스

CIS Ubuntu 벤치마크는 CIS 웹사이트에서 제공됩니다.

구성 프로필

CIS Ubuntu 벤치마크 문서에서 구성 프로필에 대한 정보를 읽을 수 있습니다. VMware용 Anthos 클러스터에서 사용되는 Ubuntu 이미지는 수준 2 - 서버 프로필을 충족하도록 강화되었습니다.

VMware용 Anthos 클러스터 평가

다음 값을 사용하여 VMware용 Anthos 클러스터에서 Ubuntu 권장 수준의 상태를 지정합니다.

상태 설명
통과 벤치마크 권장 수준을 준수합니다.
실패 벤치마크 권장 수준을 준수하지 않습니다.
동등 제어 벤치마크 권장 수준의 조항을 정확하게 준수하지 않지만 VMware용 Anthos 클러스터의 다른 메커니즘에서 동등한 보안 제어를 제공합니다.
환경에 따라 다름 VMware용 Anthos 클러스터는 벤치마크 권장 수준과 관련된 항목을 구성하지 않습니다. 구성에 따라 환경이 권장 수준을 준수하는지가 결정됩니다.

VMware용 Anthos 클러스터 상태

VMware용 Anthos 클러스터에서 사용되는 Ubuntu 이미지는 CIS 수준 2 - 서버 프로필을 충족하도록 강화되었습니다. 다음 표에서는 VMware용 Anthos 클러스터 구성요소가 특정 권장 수준을 통과하지 못한 이유에 대한 근거를 제공합니다.

# 권장사항 점수 있음/점수 없음 상태 근거 영향을 받는 구성요소
1.1.2 /tmp가 구성되었는지 확인 점수 있음 실패 현재 Canonical에 클라우드 이미지 파티션을 수정할 계획이 없습니다. 모든 클러스터 노드, 관리자 워크스테이션, Seesaw
1.1.6 /var에 대해 별개의 파티션이 있는지 확인 점수 있음 해결되지 않음 현재 Canonical에 클라우드 이미지 파티션을 수정할 계획이 없습니다. 모든 클러스터 노드, 관리자 워크스테이션, Seesaw
1.1.7 /var/tmp에 대해 별개의 파티션이 있는지 확인 점수 있음 해결되지 않음 현재 Canonical에 클라우드 이미지 파티션을 수정할 계획이 없습니다. 모든 클러스터 노드, 관리자 워크스테이션, Seesaw
1.1.11 /var/log에 대해 별개의 파티션이 있는지 확인 점수 있음 해결되지 않음 현재 Canonical에 클라우드 이미지 파티션을 수정할 계획이 없습니다. 모든 클러스터 노드, 관리자 워크스테이션, Seesaw
1.1.12 /var/log/audit에 대해 별개의 파티션이 있는지 확인 점수 있음 해결되지 않음 현재 Canonical에 클라우드 이미지 파티션을 수정할 계획이 없습니다. 모든 클러스터 노드, 관리자 워크스테이션, Seesaw
1.1.13 /home에 대해 별개의 파티션이 있는지 확인 점수 있음 해결되지 않음 현재 Canonical에 클라우드 이미지 파티션을 수정할 계획이 없습니다. 모든 클러스터 노드, 관리자 워크스테이션, Seesaw
1.1.21 고정 비트가 공개 쓰기 가능한 디렉터리에 설정되었는지 확인 점수 있음 실패 Anthos 및 해당 서비스의 기능이 간섭받을 수 있으며 기본적으로 사용 설정되지 않음 모든 클러스터 노드, 관리자 워크스테이션
1.5.1 부트로더 구성에 대한 권한이 구성되었는지 확인 점수 있음 실패 권한이 기본값으로 남아 있습니다. 모든 클러스터 노드, Seesaw
1.5.2 부트로더 비밀번호가 설정되었는지 확인 점수 있음 환경에 따라 다름 루트 비밀번호가 Ubuntu 클라우드 이미지에 설정되지 않습니다. 모든 클러스터 노드, 관리자 워크스테이션, Seesaw
1.5.3 단일 사용자 모드에 필요한 인증 확인 점수 있음 환경에 따라 다름 루트 비밀번호가 Ubuntu 클라우드 이미지에 설정되지 않습니다. 모든 클러스터 노드, 관리자 워크스테이션, Seesaw
1.8.1.2 로컬 로그인 경고 배너가 올바르게 구성되었는지 확인 점수 있음 동등 제어 또한 Anthos가 DISA-STIG 강화를 노드에 적용하고 그에 따라 경고 배너를 업데이트함 모든 클러스터 노드, Seesaw
3.1.2 IP 전달이 중지되었는지 확인 점수 있음 실패 Kubernetes(GKE)가 올바르게 작동하고 트래픽을 라우팅하려면 IP 전달이 필요함 모든 클러스터 노드, 관리자 워크스테이션, Seesaw
3.2.7 역방향 경로 필터링이 사용 설정되었는지 확인 점수 있음 환경에 따라 다름 클러스터 부하 분산을 제공하려면 비동기 라우팅 및 역방향 경로 원본이 필요함 Seesaw
3.5.2.5 모든 열린 포트에 방화벽 규칙이 있는지 확인 점수 없음 환경에 따라 다름 VMware용 Anthos를 적절한 방화벽으로 보호되는 비공개 네트워크에 배포하는 것이 좋습니다. 여기에서 필요한 방화벽 규칙을 찾을 수 있습니다. 모든 클러스터 노드, 관리자 워크스테이션, Seesaw
3.5.4.1.1 기본 거부 방화벽 정책 확인 점수 있음 환경에 따라 다름 VMware용 Anthos를 적절한 방화벽으로 보호되는 비공개 네트워크에 배포하는 것이 좋습니다. 여기에서 필요한 방화벽 규칙을 찾을 수 있습니다. 모든 클러스터 노드, 관리자 워크스테이션, Seesaw
3.5.4.1.2 루프백 트래픽이 구성되었는지 확인 점수 있음 환경에 따라 다름 루프백 인터페이스 사용은 사용되는 부하 분산 기능에 따라 제한됩니다. Seesaw
3.5.4.2.1 IPv6 기본 거부 방화벽 정책 확인 점수 있음 환경에 따라 다름 VMware용 Anthos를 적절한 방화벽으로 보호되는 비공개 네트워크에 배포하는 것이 좋습니다. 여기에서 필요한 방화벽 규칙을 찾을 수 있습니다. 또한 Anthos에는 GA 지원 시 IPv6에 대한 요구사항이 없습니다. 모든 클러스터 노드, 관리자 워크스테이션, Seesaw
3.5.4.2.2 IPv6 루프백 트래픽이 구성되었는지 확인 점수 있음 환경에 따라 다름 Anthos에는 GA 지원 시 IPv6에 대한 요구사항이 없습니다. 관리자 제어 영역, Seesaw
4.1.1.3 감사 전에 시작되는 프로세스에 대한 감사가 사용 설정되었는지 확인 점수 있음 실패 빌드 프로세스의 알려진 문제는 이를 실패라고 플래그를 지정하지만 잘못된 정보로 간주해야 합니다. 이 문제는 이후에 해결될 예정입니다. 모든 클러스터 노드, Seesaw
4.1.1.11 권한이 있는 명령어 사용이 수집되는지 확인 점수 있음 실패 일부 바이너리가 런타임에 설치되므로 런타임 수정이 필요합니다. 모든 클러스터 노드, 관리자 워크스테이션, Seesaw
4.2.1.5 로그를 원격 로그 호스트에 전송하도록 rsyslog가 구성되었는지 확인 점수 있음 환경에 따라 다름 VMware용 Anthos는 현재 시스템 서비스에서 모든 journald 로그를 수집합니다. 'k8s_node'에서 이러한 로그를 볼 수 있습니다. 모든 클러스터 노드, 관리자 워크스테이션, Seesaw
4.2.3 모든 로그 파일에 대한 권한이 구성되었는지 확인 점수 있음 실패 이 특정 테스트는 여러 서비스에서 한 그룹이 로그 파일을 작성하도록 요구할 수 있으므로 너무 제한적이고 비현실적입니다. 이 항목은 이후 벤치마크에서 삭제될 수 있습니다. 모든 클러스터 노드, 관리자 워크스테이션, Seesaw
5.2.12 SSH PermitUserEnvironment가 중지되었는지 확인 점수 있음 실패 이 설정은 DISA-STIG 강화 설정과 충돌합니다. 모든 클러스터 노드, Seesaw
5.2.13 강력한 암호화만 사용되는지 확인 점수 있음 동등 제어 DISA-STIG 적용에 이 벤치마크에서 사용하는 암호화와 1:1로 정렬되지 않는 지원되는 암호화의 대체 목록이 사용됩니다. 모든 클러스터 노드
5.2.18 SSH 액세스가 제한되었는지 확인 점수 있음 환경에 따라 다름 기본적으로 구성되지 않습니다. 특정 요구사항에 맞게 구성될 수 있습니다. 모든 클러스터 노드, 관리자 워크스테이션, Seesaw
5.2.19 SSH 경고 배너가 구성되었는지 확인 점수 있음 동등 제어 SSH 경고 배너는 DIST-STIG 강화 구성 적용으로 수정됨 모든 클러스터 노드, Seesaw
6.1.6 /etc/passwd에 대한 권한이 구성되었는지 확인 점수 있음 실패 이 특정 테스트는 너무 제한적이며 Canonical에 의해 업데이트되는 중입니다(링크). 모든 클러스터 노드, 관리자 워크스테이션, Seesaw
6.1.10 공개 쓰기 가능한 파일이 없는지 확인 점수 있음 실패 권한이 기본값으로 남아 있습니다. 모든 클러스터 노드
6.1.11 소유하지 않은 파일이나 디렉터리가 없는지 확인 점수 있음 실패 권한이 기본값으로 남아 있습니다. 모든 클러스터 노드
6.1.12 그룹화되지 않은 파일이나 디렉터리가 없는지 확인 점수 있음 실패 권한이 기본값으로 남아 있습니다. 모든 클러스터 노드
6.2.10 사용자의 dot 파일이 그룹 또는 공개 쓰기 가능한 파일이 아닌지 확인 점수 있음 실패 Ubuntu의 기본 설정은 호환성으로 인해 dot 파일 그룹 권한을 허용함 관리 워크스테이션

AIDE 크론 작업 구성

AIDE는 CIS L1 서버 벤치마크 1.4 Filesystem Integrity Checking 규정 준수를 보장하는 파일 무결성 확인 도구입니다. VMware용 Anthos 클러스터에서 AIDE 프로세스가 높은 리소스 사용 문제를 일으켰습니다.

1.9.7부터는 리소스 문제를 방지하기 위해 노드의 AIDE 프로세스가 기본적으로 중지됩니다. 이는 CIS L1 서버 벤치마크 1.4.2를 준수하는 데 영향을 미칩니다. Ensure filesystem integrity is regularly checked.

AIDE 크론 작업을 실행하도록 선택하려면 다음 단계를 완료하여 AIDE를 다시 사용 설정합니다.

  1. DaemonSet를 만듭니다.

    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: /
    

    위의 매니페스트에서 각 항목은 다음과 같습니다.

    • AIDE 크론 작업은 nodeSelector cloud.google.com/gke-nodepool: pool-1에 지정된 대로 pool-1 노드 풀에서만 실행됩니다. nodeSelector 필드 아래에 풀을 지정하여 AIDE 프로세스를 원하는 만큼의 노드 풀에서 실행하도록 구성할 수 있습니다. 여러 노드 풀에서 동일한 크론 작업 일정을 실행하려면 nodeSelector 필드를 삭제합니다. 하지만 호스트 리소스 정체를 방지하려면 별도의 일정을 유지하는 것이 좋습니다.

    • 크론 작업은 minute=30;hour=5 구성에 지정된 대로 오전 5시 30분에 매일 실행되도록 예약되어 있습니다. 필요에 따라 AIDE 크론 작업에 다른 일정을 구성할 수 있습니다.

  2. enable-aide.yaml 파일에 매니페스트를 복사하고 DaemonSet를 만듭니다.

kubectl apply --kubeconfig USER_CLUSTER_KUBECONFIG -f enable-aide.yaml

여기서 USER_CLUSTER_KUBECONFIG는 사용자 클러스터의 kubeconfig 파일 경로입니다.