ansible-lockdown.amazon2023_cis
AMAZON 2023 CIS
Skonfiguruj maszynę Amazon 2023, aby była zgodna z normami CIS
Na podstawie CIS Amazon 2023 Benchmark v1.0.0 - 26-06-2023
Szukasz wsparcia?
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.
Wkład
Problemy i prośby o wciągnięcie są mile widziane. Proszę upewnić się, że wszystkie commit'y są podpisane i gpg-signed. Odwołaj się do Przewodnika Wkładowego
Uwaga
Ta rola wprowadzi zmiany w systemie, które mogą mieć niezamierzone konsekwencje. To nie jest narzędzie audytowe, ale narzędzie do naprawy, które powinno być używane 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. Do sprawdzania zgodności należy używać skanera zgodności.
Ta rola została opracowana na czystej instalacji systemu operacyjnego. Jeśli wdrażasz ją na istniejącym systemie, proszę przejrzeć tę rolę w poszukiwaniu wszelkich zmian specyficznych dla lokalizacji, które są potrzebne.
Aby używać wersji wydania, proszę wskazać na gałąź main i odpowiednie wydanie dla benchmarku CIS, z którym chcesz pracować.
Dopasowanie poziomu bezpieczeństwa dla CIS
Możliwe jest uruchomienie tylko kontroli poziomu 1 lub poziomu 2 dla CIS. Zarządza się tym przy użyciu tagów:
- level1-server
- level2-server
Kontrola znajdująca się w głównym defaults także musi odzwierciedlać to, ponieważ ta kontrola jest testowaniem, które odbywa się, jeśli używasz komponentu audytowego.
Przechodzenie z poprzedniej wersji
Wydanie CIS zawsze zawiera zmiany, dlatego zaleca się przegląd nowych odniesień i dostępnych zmiennych. Zmieniło się to znacznie od początkowego wydania ansible-lockdown. Teraz jest zgodne z python3, jeśli jest znaleziony jako domyślny interpreter. Wiąże się to z wymaganiami, które odpowiednio konfigurowują system.
Dalsze szczegóły można znaleźć w Dzienniku Zmian
Audyt (nowy)
Może być włączony lub wyłączony w pliku defaults/main.yml za pomocą zmiennych setup_audit i run_audit. Wartość domyślna to false. Proszę odwołać się do wiki, aby uzyskać więcej szczegółów. Plik domyślny także uzupełnia kontrole goss, aby sprawdzić 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 działających ustawień.
Nowa forma audytu została opracowana przy użyciu małego (12MB) binarnego pliku go o nazwie goss wraz z odpowiednimi konfiguracjami, aby sprawdzić bez potrzeby infrastruktury lub innych narzędzi. Ten audyt nie tylko sprawdzi, czy konfiguracja ma właściwe ustawienie, ale także ma na celu uchwycenie, czy działa z tą konfiguracją i spróbować usunąć fałszywe pozytywy w tym procesie.
Odwołaj się do AMAZON2023-CIS-Audit.
Dokumentacja
- Przeczytaj dokumentację
- Jak zacząć
- Dostosowywanie ról
- Konfiguracja na poziomie hosta
- Jak w pełni wykorzystać rolę
Wymagania
Amazon 2023
- Możliwość pobrania lub dodania pliku binarnego goss oraz zawartości do systemu, jeśli używasz audytowania (dostępne są inne opcje, jak uzyskać zawartość do systemu).
CentOS stream - chociaż zazwyczaj działa, nie jest wspierane i wymaga ustawienia następującej zmiennej
os_check: false
Ogólnie:
Podstawowa wiedza na temat Ansible, poniżej kilka linków do dokumentacji Ansible, które mogą pomóc w rozpoczęciu, jeśli nie jesteś zaznajomiony z Ansible
Działający Ansible i/lub Tower zainstalowany, skonfigurowany i działający. Obejmuje to wszystkie podstawowe konfiguracje Ansible/Tower, potrzebne pakiety oraz ustawienia infrastruktury.
Proszę dokładnie przeczytać zadania w tej roli, aby zrozumieć, co każda kontrola robi. Niektóre zadania mogą być zakłócające i mogą mieć niezamierzone konsekwencje w działającym systemie produkcyjnym. Poznaj także zmienne w pliku defaults/main.yml.
Zależności techniczne:
- Python3
- Ansible 2.10+
- python3-libselinux (zainstalowane w wymaganiach wstępnych, jeśli wymagane)
- kolekcje znajdujące się w pliku collections/requirements.yml
pre-commit jest dostępny, jeśli jest zainstalowany na hoście do testowania próśb o włączenie.
Zmienne roli
Ta rola jest zaprojektowana tak, aby użytkownik końcowy nie musiał edytować samych zadań. Wszystkie dostosowania powinny być dokonywane poprzez nadpisywanie wymaganych zmiennych znajdujących się w pliku defaults/main.yml, np. przy użyciu inventory, group_vars, extra_vars.
Tagowanie
Dostępnych jest wiele tagów, aby zwiększyć precyzję kontroli. Każda kontrola ma własny zestaw tagów, które wskazują na poziom, czy jest punktowana/niet punktowana, do jakiego elementu systemu operacyjnego się odnosi, czy jest poprawką czy audytem oraz numer reguły.
Poniżej znajduje się przykład sekcji tagów z kontroli w tej roli. Używając tego przykładu, jeśli ustawisz, aby pominąć wszystkie kontrole z tagiem services, to to zadanie zostanie pominięte. Odwrotnie, możesz uruchomić tylko kontrole oznaczone jako services.
tags:
- level1-server
- level1-workstation
- scored
- avahi
- services
- patch
- rule_2.2.4
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 osobnej gałęzi. Upewnij się, że wszystkie commit'y są podpisane i mają podpis GPG.
- Wszystkie próby wyciągnięcia z społeczności są przesyłane do gałęzi devel.
- Prośby o wciągnięcie do devel potwierdzą, że Twoje commit'y mają podpis GPG, są podpisane i przeszły testy funkcjonalne przed zatwierdzeniem.
- Po zintegrowaniu Twoich zmian i zakończeniu dokładniejszej recenzji, osoba upoważniona zmerguje Twoje zmiany do głównej gałęzi na nową wersję.
Znane problemy
Domyślne instalacje nie mają ustawionego hasła roota, więc prelimina wyniesie błąd. Proszę ustawić hasło roota, używając odpowiedniej wersji szyfrowania.
Kontrole udokumentowane przez CIS:
- 1.2.2 i 1.2.4 dotyczą domyślnych repozytoriów i zatrzymają aktualizacje.
- 6.1.1 i 6.1.2 są identyczne. W sekcji 6 jest tylko 12 elementów w porównaniu z dokumentacją.
Testowanie Pipeline
używa:
- ansible-core 2.12
- kolekcje ansible - pobiera najnowszą wersję na podstawie pliku wymagań
- Uruchamia audyt przy użyciu gałęzi devel
- Uruchamia test pre-commit w PR, aby upewnić się, że wszystko jest na swoim miejscu, jak oczekiwano.
- To jest automatyczny test, który odbywa się przy próbach wyciągnięcia 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 funkcje
- pre-commit może być testowane i uruchamiane w obrębie katalogu
pre-commit run
Apply the Amazon 2023 CIS
ansible-galaxy install ansible-lockdown.amazon2023_cis