ansible-lockdown.rhel8_stig

RHEL 8 DISA STIG

Konfiguracja systemu RHEL8 zgodnie z Disa STIG

Ta rola oparta jest na RHEL 8 DISA STIG: Wersja 1, Rel 13 wydana 24 stycznia 2024.


Org Stars Stars Forks followers Twitter URL

Discord Badge

Release Branch Release Tag Release Date

Status głównego pipeline

Status pipeline deweloperskiego Dewelopment Commits

Otwarte problemy Zamknięte problemy Pull Requests

Licencja


Szukasz wsparcia?

Lockdown Enterprise

Wsparcie Ansible

Społeczność

Na naszym serwerze Discord możesz zadawać pytania, omawiać funkcje lub po prostu czatować z innymi użytkownikami Ansible-Lockdown.


Skonfiguruj system RHEL/Rocky 8 tak, aby spełniał wymagania DISA STIG. Nieprzerwane ustalenia CAT I, CAT II i CAT III będą domyślnie korygowane. Można włączyć korektę ustaleń zakłócających, ustawiając rhel8stig_disruption_high na true.

Aktualizacja

Z poprzedniej wersji.

Jak przy wszystkich wydaniach i aktualizacjach, zaleca się testowanie i dostosowywanie kontrolnych mechanizmów. Ta wersja zawiera poprawki i zmiany identyfikatorów zgodnie z dokumentacją STIG.

Audyty

Można je włączyć lub wyłączyć w pliku defaults/main.yml za pomocą zmiennej rhel7cis_run_audit. Domyślnie wartość to false, więcej szczegółów znajdziesz w wiki. Plik domyślny również uzupełnia kontrole goss, aby sprawdzać tylko te zabezpieczenia, które zostały włączone w roli Ansible.

To szybkie, bardzo lekkie sprawdzenie (gdzie to możliwe) zgodności konfiguracji oraz ustawień działających na żywo.

Opracowano formę audytów, używając małej (12 MB) binarki go nazwanej goss wraz z odpowiednimi konfiguracjami do sprawdzenia. Nie potrzeba do tego żadnej infrastruktury czy innych narzędzi. Ten audyt sprawdzi nie tylko, czy konfiguracja ma poprawne ustawienia, ale także, czy działa z tą konfiguracją, starając się w ten sposób zredukować fałszywe pozytywy.

Dokumentacja

Wymagania

  • RHEL/Rocky/AlmaLinux/OL 8 - inne wersje nie są wspierane.
  • Inne systemy operacyjne można sprawdzić, zmieniając skip_os_check na true w celu celów testowych.
  • Dostęp do pobrania lub dodania binarki goss oraz treści do systemu, jeśli używasz audytów. Opcje są dostępne, aby dostarczyć treści do systemu.

Zależności

Najpierw muszą być zainstalowane następujące pakiety na hoście sterującym/gdzie wykonuje się Ansible:

  • python2-passlib (lub tylko passlib, jeśli używasz python3)
  • python-lxml

Pakiety python(2)-passlib są wymagane do zadań z niestandardowymi filtrami lub modułami. Wszystkie muszą być obecne na hoście kontrolera wykonującym Ansible.

Zmienne roli

Rola ta jest zaprojektowana w ten sposób, aby użytkownik końcowy nie musiał edytować zadań. Wszystkie dostosowania powinny być dokonywane za pomocą pliku defaults/main.yml lub z dodatkowymi zmiennymi w projekcie, zadaniu, przepływie pracy itd.

Tagi

Dostępnych jest wiele tagów, aby zwiększyć precyzję kontroli. Każda kontrola ma własny zestaw tagów notujących numer kontroli oraz jakie części systemu ta kontrola obejmuje.

Poniżej znajduje się przykład sekcji tagów z kontroli w tej roli. Używając tego przykładu, jeśli ustawisz swoje uruchomienie, aby pominąć wszystkie kontrole z tagiem ssh, ta czynność zostanie pominięta. Odwrotna sytuacja może również wystąpić, gdy uruchomisz tylko kontrole oznaczone tagiem ssh.

tags:
    - RHEL-08-010050
    - ssh
    - dod_logon_banner

Przykładowe podsumowanie audytu

Oparte na obrazie vagrant z włączonymi opcjami. np. bez GUI ani zapory. Uwaga: W trakcie audytu uruchamiane są dodatkowe testy, ponieważ sprawdzamy konfigurację i stan działania.

ok: [rocky8_efi] =>
  msg:
  - 'Wyniki przed korekcją to: Liczba: 804, Niepowodzenia: 416, Czas: 6.488s.'
  - 'Wyniki po korekcji to: Liczba: 804, Niepowodzenia: 28, Czas: 68.687s.'
  - Pełne zestawienie można znaleźć w /opt

PODSUMOWANIE GRY ****************************************************************************************************************
rocky8_efi                 : ok=482  changed=269  unreachable=0    failed=0    skipped=207  rescued=0    ignored=0

Gałęzie

  • devel - Jest to domyślna gałąź oraz gałąź robocza. Prośby o zsynchronizowanie społeczności trafią do tej gałęzi.
  • main - To gałąź wydania.
  • reports - Jest to ochrona gałąź dla naszych raportów scoringowych, do której nie powinno być przesyłane żadnego kodu.
  • gh_pages - strony githuba.
  • wszystkie inne gałęzie - Indywidualne gałęzie członków społeczności.

Kontenery - testowanie

  • system_is_container

Domyślnie jest ustawiona na false w pliku defaults/main.yml. Jeśli zostanie wykryty typ kontenera lub ansible_connection == docker, zmieni się na true. Niektóre kontrole zostaną pominięte w przypadku ustawienia true, ponieważ są zupełnie nieodpowiednie. Inne wykonują podzestaw kontroli znajdujących się w vars/is_container.yml, oparte na dostarczonym przez dostawcę niezmienionym obrazie.

Nie zmieniony obraz od dostawcy.

  • container_vars_file: is_container.yml

Ten plik zmiennych uruchamia kontrole pogrupowane w tagi, więc jeśli kontener później będzie miał ssh, można go ponownie włączyć, wczytując alternatywny plik zmiennych.

Wkład Społeczności

Zachęcamy Cię (społeczność) do wniesienia wkładu w tę rolę. Proszę przeczytać poniższe zasady.

  • Twoja praca odbywa się w indywidualnej gałęzi. Upewnij się, że podpiszesz i podpiszesz wszystkie komendy, które chcesz zintegrować.
  • Wszystkie prośby o integrację społeczności są przesyłane do gałęzi dewelopera.
  • Prośby o integrację do gałęzi dewelopera potwierdzą, że Twoje komendy mają podpis GPG, są podpisane i dodatkowo wymagają testu funkcjonalnego przed zatwierdzeniem.
  • Gdy Twoje zmiany są akceptowane, a dokładniejszy przegląd jest zakończony, autoryzowany członek połączy Twoje zmiany z gałęzią main w celu nowego wydania.

Testowanie Pipeline

korzysta z:

  • ansible-core 2.12
  • kolekcje ansible - ściągają najnowszą wersję w oparciu o plik wymagań
  • uruchamia audyty przy użyciu gałęzi dewelopera.
  • Jest to zautomatyzowany test, który odbywa się na prośbach o integrację do dewelopera.

Znane problemy

Jeśli przyjmujesz zasady STIG RHEL-08-040134

Wpłynie to na inicjację w chmurze zgodnie z bugiem 1839899.

Wsparcie

To jest projekt społecznościowy i będzie zarządzany w ten sposób.

Jeśli jesteś zainteresowany dedykowanym wsparciem, aby pomóc lub dostarczyć dostosowane rozwiązania

Kredyty

To repozytorium powstało w wyniku pracy Sama Dorana.

Dodatki

  • makefile - jest on wykorzystywany wyłącznie do testowania i wstępnych ustawień.
  • pre-commit można przetestować i uruchomić w katalogu
pre-commit run

Podziękowania

Ogromne podziękowania dla fantastycznej społeczności i wszystkich jej członków. Wielkie podziękowania oraz uznanie dla pierwotnych autorów i konserwatorów.

Josh Springer, Daniel Shepherd, Bas Meijeri, James Cassell, Mike Renfro, DFed, George Nalen, Mark Bolwell

Zainstaluj
ansible-galaxy install ansible-lockdown.rhel8_stig
Licencja
mit
Pobrania
1.9k
Właściciel
Lockdown is a security baseline automation project sponsored by Tyto Athene.