Skip to content

CIS Hardening Guide

Configuración necesaria para RKE2

Pasos:

  1. Establecer una sesión como el usuario student a lab-#-master
    export LAB=X
    
    ssh student@lab-${LAB}-master 
    
  2. Cambiar al usuario root
    sudo -i
    
  3. Detener servicio de rke2.
    systemctl stop rke2-server
    rke2-killall.sh
    
  4. En nuestro ambiente la instalación se ha realizado utilizando el método tar. RKE2, incluye parámetros pre definidos que pueden ser activados por el operador del sistema operativo.

    cp -f /usr/local/share/rke2/rke2-cis-sysctl.conf /etc/sysctl.d/60-rke2-cis.conf
    
    Valide estos parámetros:
    cat /etc/sysctl.d/60-rke2-cis.conf
    
    Salida de ejemplo:
    vm.panic_on_oom=0
    vm.overcommit_memory=1
    kernel.panic=10
    kernel.panic_on_oops=1
    

    Parámetro Descripción
    vm.panic_on_oom=0 Configura que el sistema no entre en pánico cuando se produzca una condición de "Out of Memory" (OOM).
    vm.overcommit_memory=1 Permite la asignación de más memoria de la que físicamente está disponible, útil en sistemas con swap.
    kernel.panic=10 Establece que, en caso de pánico del kernel, el sistema se reinicie automáticamente después de 10 segundos.
    kernel.panic_on_oops=1 Configura que el sistema entre en pánico si ocurre un "oops" (error no fatal en el kernel).
  5. Aplicamos el cambio en el sistema operativo.

    systemctl restart systemd-sysctl
    

  6. Crear usuario para etcd.
    useradd -r -c "etcd user" -s /sbin/nologin -M etcd -U
    
  7. Validar o cambiar permisos para etcd.
    chown -R etcd. /var/lib/rancher/rke2/server/db
    
  8. Crear un archivo personalizado /etc/rancher/rke2/rke2-pss-custom.yaml para PSS y poder utiliar Rancher Server. Con el siguiente contenido:
apiVersion: apiserver.config.k8s.io/v1
kind: AdmissionConfiguration
plugins:
  - name: PodSecurity
    configuration:
      apiVersion: pod-security.admission.config.k8s.io/v1
      kind: PodSecurityConfiguration
      defaults:
        enforce: "restricted"
        enforce-version: "latest"
        audit: "restricted"
        audit-version: "latest"
        warn: "restricted"
        warn-version: "latest"
      exemptions:
        usernames: []
        runtimeClasses: []
        namespaces: [calico-apiserver,
                     calico-system,
                     cattle-alerting,
                     cattle-csp-adapter-system,
                     cattle-elemental-system,
                     cattle-epinio-system,
                     cattle-externalip-system,
                     cattle-fleet-local-system,
                     cattle-fleet-system,
                     cattle-gatekeeper-system,
                     cattle-global-data,
                     cattle-global-nt,
                     cattle-impersonation-system,
                     cattle-istio,
                     cattle-istio-system,
                     cattle-logging,
                     cattle-logging-system,
                     cattle-monitoring-system,
                     cattle-neuvector-system,
                     cattle-prometheus,
                     cattle-provisioning-capi-system,
                     cattle-resources-system,
                     cattle-sriov-system,
                     cattle-system,
                     cattle-ui-plugin-system,
                     cattle-windows-gmsa-system,
                     cert-manager,
                     cis-operator-system,
                     fleet-default,
                     ingress-nginx,
                     istio-system,
                     kube-node-lease,
                     kube-public,
                     kube-system,
                     longhorn-system,
                     rancher-alerting-drivers,
                     security-scan,
                     tigera-operator]
  1. Editar configuración de rke2. Editando config.yaml Agregando:

    profile: cis
    pod-security-admission-config-file: /etc/rancher/rke2/rke2-pss-custom.yaml
    

  2. Reinicie el servicio de rke2.

    systemctl restart rke2-server
    

  3. Proceda a validar su sistema.

📝 ESTE PROCEDIMIENTO DEBE REALIZARLO EN TODOS LOS SERVERS Y AGENTES

📝 EN LOS AGENTES SE DEBE OMITIR LOS CAMBIOS A RKE2 (config.yaml) Y etcd.

Recursos Adicionales