ansible-lockdown.rhel9_cis

RHEL 9 CIS

Konfiguracja maszyny RHEL 9 zgodnie z wymaganiami CIS

Oparta na CIS RedHat Enterprise Linux 9 Benchmark v1.0.0 - 30-11-2022


Org Stars Stars Forks followers Twitter URL

Ansible Galaxy Quality Discord Badge

Release Branch Release Tag Release Date

Main Pipeline Status

Devel Pipeline Status Devel Commits

Issues Open Issues Closed Pull Requests

License


Potrzebujesz wsparcia?

Lockdown Enterprise

Wsparcie Ansible

Społeczność

Dołącz do nas na naszym serwerze Discord, aby zadawać pytania, omawiać funkcje lub po prostu rozmawiać z innymi użytkownikami Ansible-Lockdown.

Współpraca

Zachęcamy do zgłaszania problemów i pull requestów, prosimy o upewnienie się, że wszystkie zmiany są podpisane oraz posiadają podpis GPG. Zapoznaj się z Przewodnikiem dla współtwórców


Ostrzeżenie

Ta rola wprowadzi zmiany w systemie, które mogą mieć niezamierzone skutki. To nie jest narzędzie audytowe, lecz narzędzie do naprawy, które należy stosować po przeprowadzeniu audytu.

Tryb sprawdzania nie jest wspierany! Rola zakończy się w trybie sprawdzania bez błędów, ale nie jest wspierana i należy jej używać ostrożnie. Rola RHEL8-CIS-Audit lub skanery zapewniające zgodność powinny być używane do sprawdzenia zgodności zamiast trybu sprawdzania.

Ta rola została opracowana na czystej instalacji systemu operacyjnego. Jeśli wdrażasz ją w istniejącym systemie, zapoznaj się z tą rolą, aby sprawdzić, jakie zmiany specyficzne dla lokalizacji są potrzebne.

Aby użyć wersji wydania, proszę wskazać na gałąź main i odpowiednie wydanie dla benchmarku CIS, nad którym chcesz pracować.


Dopasowanie poziomu bezpieczeństwa dla CIS

Można uruchomić tylko kontrole poziomu 1 lub poziomu 2 dla CIS. Zarządza się tym przy pomocy znaczników:

  • level1-server
  • level1-workstation
  • level2-server
  • level2-workstation

Kontrola znajdująca się w głównych defaults też musi to odzwierciedlać, ponieważ kontrola ta to testowanie, które odbywa się, jeśli korzystasz z komponentu audytu.

Już używasz wcześniejszej wersji

Wersja CIS zawsze zawiera zmiany, zaleca się przerobić nowe odniesienia i dostępne zmienne. To znacznie się zmieniło od pierwotnego wydania ansible-lockdown. Teraz jest kompatybilny z python3, jeśli jest ustawiony jako domyślny interpreter. To wiąże się z wymaganiami, które odpowiednio konfigurowują system.

Szczegóły można zobaczyć w Dzienniku zmian

Audyt (nowość)

Można go włączyć lub wyłączyć w pliku defaults/main.yml przy użyciu zmiennych setup_audit i run_audit. Wartość domyślna to false. W celu uzyskania dalszych informacji, zapoznaj się z wiki. Plik domyślny również popularyzuje kontrole goss, aby sprawdzać tylko te kontrole, które zostały włączone w roli ansible.

To znacznie szybsze, bardzo lekkie sprawdzanie (gdzie to możliwe) zgodności konfiguracji i ustawień live/running.

Opracowano nową formę audytu przy użyciu małego (12MB) binarnego pliku go o nazwie goss wraz z odpowiednimi konfiguracjami, aby sprawdzić bez potrzeby użycia infrastruktury czy innych narzędzi. Ten audyt nie tylko sprawdzi, czy konfiguracja ma odpowiednie ustawienie, ale także ma na celu uchwycenie, czy działa z tą konfiguracją oraz próbuje usunąć fałszywe pozytywy w tym procesie.

Zapoznaj się z RHEL9-CIS-Audit.

Dokumentacja

Wymagania

RHEL 9 Almalinux 9 Rocky 9 OracleLinux 9

  • Dostęp do pobrania lub dodania binarnego pliku goss i treści do systemu, jeśli korzystasz z audytu (są dostępne inne opcje, jak dostarczyć treść do systemu).

CentOS Stream - mimo że zasadniczo powinno działać, nie jest wspierane i wymaga ustawienia następującej zmiennej

os_check: false

Ogólnie:

  • Podstawowa wiedza o Ansible, poniżej znajdują się linki do dokumentacji Ansible, aby pomóc w rozpoczęciu, jeśli nie jesteś zaznajomiony z Ansible

  • Funkcjonujący Ansible i/lub zainstalowany, skonfigurowany i działający Tower. Obejmuje to wszystkie podstawowe konfiguracje Ansible/Tower, potrzebne pakiety i ustawienia infrastruktury.

  • Proszę zapoznać się z zadaniami w tej roli, aby zrozumieć, co robi każda kontrola. Niektóre zadania mogą być zakłócające i mogą mieć niezamierzone skutki w działającym systemie produkcyjnym. Również należy zaznajomić się ze zmiennymi w pliku defaults/main.yml.

Zależności techniczne:

  • Python3
  • Ansible 2.10+
  • python-def (powinien być dołączony w RHEL 9)
  • libselinux-python
  • pakiety pip
    • jmespath
  • kolekcje znajdujące się w pliku collections/requirements.yml

pre-commit jest dostępny, jeśli zainstalowany na twoim hoście do testowania pull requestów.

Zmienne roli

Ta rola jest zaprojektowana tak, aby użytkownicy końcowi nie musieli edytować zadań. Wszystkie dostosowania powinny być wykonywane poprzez zastępowanie wymaganych zmiennych, jak znajdują się w pliku defaults/main.yml, np. poprzez inventory, group_vars, extra_vars.

Znaczniki

Dostępnych jest wiele znaczników dla lepszej precyzji kontroli. Każda kontrola ma swoje zestawy znaczników wskazujących, jaki poziom, czy jest oceniany/nieoceniany, do jakiego elementu systemu operacyjnego się odnosi, czy jest łatką czy audytem oraz numer reguły.

Poniżej znajduje się przykład sekcji znaczników z kontroli w tej roli. Używając tego przykładu, jeśli ustawisz pominięcie wszystkich kontroli z tagiem services, to to zadanie zostanie pominięte. Może się też zdarzyć odwrotna sytuacja, w której uruchomisz tylko kontrole oznaczone tagiem services.

      tags:
      - level1-server
      - level1-workstation
      - scored
      - avahi
      - services
      - patch
      - rule_2.2.4

Wkład społeczności

Zachęcamy Was (społeczność) do wniesienia wkładu do tej roli. Prosimy zapoznać się z poniższymi zasadami.

  • Twoja praca jest wykonywana w Twojej własnej gałęzi. Upewnij się, że podpisałeś wszystkie zmiany oraz dodałeś podpis GPG.
  • Wszystkie Pull Requesty społeczności są przynoszone do gałęzi devel.
  • Pull Requesty do devel potwierdzą, że Twoje zmiany mają podpis GPG, są podpisane oraz przeszły testy funkcjonalne przed zatwierdzeniem.
  • Po scaleniu zmian i dokładniejszej recenzji, autoryzowany członek połączy Twoje zmiany z główną gałęzią w celu nowego wydania.

Znane problemy

CIS 1.2.4 - repo_gpgcheck nie jest realizowane dla hostów RedHat, ponieważ domyślne repozytoria nie mają tej funkcji. To również dotyczy EPEL (nieobjęty zmienną). - Rocky i Alma nie są dotknięte. Używana zmienna do wyłączenia. rhel9cis_rhel_default_repo: true # należy ustawić na false, jeśli korzysta się z repozytoriów, które mają tę funkcję

Testowanie Pipeline

używa:

  • ansible-core 2.12
  • kolekcji ansible - pobiera najnowszą wersję na podstawie pliku wymagań
  • Uruchamia audyt, korzystając z gałęzi devel
  • Uruchamia konfigurację pre-commit w PR, aby upewnić się, że wszystko jest na swoim miejscu, jak oczekiwano.
  • To jest zautomatyzowany test, który odbywa się przy pull requestach do devel

Testowanie lokalne

  • Ansible

    • ansible-base 2.10.17 - python 3.8
    • ansible-core 2.13.4 - python 3.10
    • ansible-core 2.15.1 - python 3.11

Dodatkowe elementy

  • makefile - jest tylko do testowania i początkowej konfiguracji.
  • pre-commit można testować i uruchamiać w katalogu
pre-commit run

Podziękowania

Oparte na pierwotnej koncepcji Sam Doran

Ogromne podziękowania dla fantastycznej społeczności i wszystkich jej członków.

Szczególne podziękowania dla oryginalnych autorów i konserwatorów.

Mark Bolwell, George Nalen, Steve Williams, Fred Witty

Zainstaluj
ansible-galaxy install ansible-lockdown.rhel9_cis
Licencja
mit
Pobrania
9k
Właściciel
Ansible Lockdown is a security baseline automation project sponsored by Mindpoint Group.