ryezone_labs.ansible_cis_ubuntu_2004

Ansible CIS Ubuntu 20.04 LTS Utrwalanie Status budowy

CIS zabezpieczony Ubuntu: ochrona przed atakami cybernetycznymi i złośliwym oprogramowaniem dla systemów krytycznych. Standardy CIS w zamykają Twoje systemy poprzez usunięcie:

  1. niebezpiecznych programów.
  2. wyłączenie nieużywanych systemów plików.
  3. wyłączenie niepotrzebnych portów lub usług.
  4. audyt operacji z uprawnieniami.
  5. ograniczenie uprawnień administracyjnych.

Zalecenia standardów CIS są stosowane w maszynach wirtualnych w publicznych i prywatnych chmurach. Używane są również do zabezpieczania środowisk lokalnych. W niektórych branżach, zabezpieczenie systemu zgodnie z publicznie znanym standardem to kryterium, które audytorzy biorą pod uwagę. Standardy CIS stanowią często wybór w zakresie zabezpieczeń rekomendowany przez audytorów dla branż wymagających zgodności z PCI-DSS i HIPAA, takich jak bankowość, telekomunikacja i opieka zdrowotna. Jeśli próbujesz uzyskać zgodność z akceptowanym standardem bezpieczeństwa w branży, jak PCI DSS, APRA lub ISO 27001, musisz wykazać, że zastosowałeś udokumentowane standardy zabezpieczeń wobec wszystkich systemów w obszarze oceny.

Standardy CIS dla Ubuntu są zorganizowane w różne profile, mianowicie „Poziom 1” i „Poziom 2”, przeznaczone dla środowisk serwerowych i roboczych.

Profil Poziom 1 ma na celu praktyczne i rozsądne zabezpieczenie systemu bez zbytniego wpływu na wydajność.

  • Wyłączenie niepotrzebnych systemów plików.
  • Ograniczenie uprawnień użytkowników do plików i katalogów.
  • Wyłączenie niepotrzebnych usług.
  • Konfiguracja zapór sieciowych.

Profil Poziom 2 jest używany w przypadku, gdy bezpieczeństwo jest uważane za bardzo ważne i może mieć negatywny wpływ na wydajność systemu.

  • Tworzenie oddzielnych partycji.
  • Audyt operacji z uprawnieniami.

Narzędzie do utwardzania CIS Ubuntu pozwala na wybór pożądanego poziomu twardnienia zgodnie z profilem (Poziom 1 lub Poziom 2) oraz środowiskiem pracy (serwer lub stacja robocza) dla systemu. Przykład:

ansible-playbook -i inventory cis-ubuntu-20.yaml --tags="level_1_server"

Możesz wylistować wszystkie tagi, uruchamiając poniższe polecenie:

ansible-playbook -i host run.yaml --list-tags

Wszystkie role napisałem na podstawie

CIS Ubuntu Linux 20.04 LTS Benchmark
v1.0.0 - 21-07-2020

Sprawdź przykładowy folder


Wymagania

Należy dokładnie przeczytać zadania, aby upewnić się, że te zmiany nie zniszczą twoich systemów przed uruchomieniem tego playbooka.

Możesz pobrać darmową książkę CIS Benchmark pod tym adresem Darmowy Benchmark

Aby rozpocząć pracę nad tym rolą, musisz zainstalować Ansible. Instalacja Ansible


Zmienne roli

Musisz przejrzeć wszystkie domyślne ustawienia przed uruchomieniem tego playbooka. W pliku defaults/main.yml zdefiniowano wiele zmiennych roli.

  • Jeśli rozważasz zastosowanie tej roli do dowolnych serwerów, powinieneś mieć podstawową znajomość Standardu CIS oraz doceniać wpływ, jaki może mieć na system.
  • Przeczytaj i zmień konfigurowalne wartości domyślne.

Przykłady konfiguracji, które powinny być natychmiast brane pod uwagę do wyłączenia:

5.1.8 Upewnij się, że cron jest ograniczony do autoryzowanych użytkowników i 5.2.17 Upewnij się, że dostęp SSH jest ograniczony, które z domyślnych efektywnie ograniczają dostęp do hosta (w tym za pomocą SSH).

Na przykład:

  • CIS-Ubuntu-20.04-Ansible/defaults/main.yml
#Sekcja 5
#5.1.8 Upewnij się, że cron jest ograniczony do autoryzowanych użytkowników
allowd_hosts: "ALL: 0.0.0.0/0.0.0.0, 192.168.2.0/255.255.255.0"
# 5.2.17 Upewnij się, że dostęp SSH jest ograniczony
allowed_users: ali saleh baker root #Podaj None lub listę użytkowników oddzieloną spacjami

Jeśli potrzebujesz zmienić szablony plików, znajdziesz je w files/templates/*


Zależności

  • Wersja Ansible > 2.9

Przykład playbooka

Poniżej przykład playbooka:

---
- hosts: host1
  become: yes
  remote_user: root
  gather_facts: no
  roles:
    - { role: "CIS-Ubuntu-20.04-Ansible",}

Uruchom wszystko

Jeśli chcesz uruchomić wszystkie tagi, użyj poniższego polecenia:

ansible-playbook -i [plik_inventory] [playbook].yaml

Uruchom konkretne sekcje

ansible-playbook -i host run.yaml -t section2

Uruchom wiele sekcji

ansible-playbook -i host run.yaml -t section2 -t 6.1.1
  • Uwaga: Podczas uruchamiania indywidualnego zadania sprawdź zależności między zadaniami, na przykład, jeśli uruchomisz tag 4.1.1.2 Upewnij się, że usługa auditd jest włączona przed uruchomieniem 4.1.1.1 Upewnij się, że auditd jest zainstalowany, otrzymasz błąd w czasie uruchamiania.

  • Punkty z tyldą nie są jeszcze zaimplementowane, aktualnie nad tym pracuję.

  • upewnij się, że wybierasz raz usługi, dla mnie używam ntp, ale możesz użyć innych usług, takich jak [systemd-timesyncd, ntp, chrony] w ustawieniach defaults/main.yaml

    Testowanie 11/1/2020 Testowane na AWS EC2 ubuntu 20.04 LTS [Zaliczono] 11/1/2020 Testowane na lokalnym serwerze Ubuntu 20.04 LTS [Zaliczono]

  • Przed uruchomieniem upewnij się, że zaktualizowałeś listę użytkowników w defaults/main.yaml w list_of_os_users + allowed_users

  • Zrób upewnij się, że ustawiłeś właściwą podsieć w defaults/main.yaml w allowd_hosts


Tabela ról:

1 Wstępne ustawienia

  • 1.1 Konfiguracja systemu plików
  • 1.1.1 Wyłącz nieużywane systemy plików
  • 1.1.1.1 Upewnij się, że montowanie systemów plików cramfs jest wyłączone (Automatycznie)
  • 1.1.1.2 Upewnij się, że montowanie systemów plików freevxfs jest wyłączone - (Automatycznie)
  • 1.1.1.3 Upewnij się, że montowanie systemów plików jffs2 jest wyłączone (Automatycznie)
  • 1.1.1.4 Upewnij się, że montowanie systemów plików hfs jest wyłączone (Automatycznie)
  • 1.1.1.5 Upewnij się, że montowanie systemów plików hfsplus jest wyłączone - (Automatycznie)
  • 1.1.1.6 Upewnij się, że montowanie systemów plików udf jest wyłączone (Automatycznie)
  • 1.1.1.7 Upewnij się, że montowanie systemów plików FAT jest ograniczone (Ręcznie)
  • 1.1.2 Upewnij się, że /tmp jest skonfigurowane (Automatycznie)
  • 1.1.3 Upewnij się, że opcja nodev jest ustawiona na partycji /tmp (Automatycznie)
  • 1.1.4 Upewnij się, że opcja nosuid jest ustawiona na partycji /tmp (Automatycznie)
  • 1.1.5 Upewnij się, że opcja noexec jest ustawiona na partycji /tmp (Automatycznie)
  • 1.1.6 Upewnij się, że /dev/shm jest skonfigurowane (Automatycznie)
  • 1.1.7 Upewnij się, że opcja nodev jest ustawiona na partycji /dev/shm (Automatycznie)
  • 1.1.8 Upewnij się, że opcja nosuid jest ustawiona na partycji /dev/shm (Automatycznie)
  • 1.1.9 Upewnij się, że opcja noexec jest ustawiona na partycji /dev/shm (Automatycznie)
  • 1.1.10 Upewnij się, że istnieje oddzielna partycja dla /var (Automatycznie)
  • 1.1.11 Upewnij się, że istnieje oddzielna partycja dla /var/tmp (Automatycznie)
  • 1.1.12 Upewnij się, że opcja nodev jest ustawiona na partycji /var/tmp (Automatycznie)
  • 1.1.13 Upewnij się, że opcja nosuid jest ustawiona na partycji /var/tmp (Automatycznie)
  • 1.1.14 Upewnij się, że opcja noexec jest ustawiona na partycji /var/tmp (Automatycznie)
  • 1.1.15 Upewnij się, że istnieje oddzielna partycja dla /var/log (Automatycznie)
  • 1.1.16 Upewnij się, że istnieje oddzielna partycja dla /var/log/audit - (Automatycznie)
  • 1.1.17 Upewnij się, że istnieje oddzielna partycja dla /home (Automatycznie)
  • 1.1.18 Upewnij się, że opcja nodev jest ustawiona na partycji /home (Automatycznie)
  • 1.1.19 Upewnij się, że opcja nodev jest ustawiona na partycjach z wymiennymi nośnikami (Ręcznie)
  • 1.1.20 Upewnij się, że opcja nosuid jest ustawiona na partycjach z wymiennymi nośnikami - (Ręcznie)
  • 1.1.21 Upewnij się, że opcja noexec jest ustawiona na partycjach z wymiennymi nośnikami - (Ręcznie)
  • 1.1.22 Upewnij się, że bit sticky jest ustawiony we wszystkich katalogach zapisywanych przez wszystkich - (Automatycznie)
  • 1.1.23 Wyłącz automatyczne montowanie (Automatycznie)
  • 1.1.24 Wyłącz pamięć USB (Automatycznie)

1.2 Skonfiguruj aktualizacje oprogramowania

  • 1.2.1 Upewnij się, że repozytoria menedżera pakietów są skonfigurowane (Ręcznie)
  • 1.2.2 Upewnij się, że klucze GPG są skonfigurowane (Ręcznie)

1.3 Skonfiguruj sudo

  • 1.3.1 Upewnij się, że sudo jest zainstalowane (Automatycznie)
  • 1.3.2 Upewnij się, że polecenia sudo używają pty (Automatycznie)
  • 1.3.3 Upewnij się, że plik dziennika sudo istnieje (Automatycznie)

1.4 Kontrola integralności systemu plików

  • 1.4.1 Upewnij się, że AIDE jest zainstalowane (Automatycznie)
  • 1.4.2 Upewnij się, że integralność systemu plików jest regularnie sprawdzana (Automatycznie)

1.5 Ustawienia bezpiecznego rozruchu

  • 1.5.1 Upewnij się, że hasło bootloadera jest ustawione (Automatycznie)
  • 1.5.2 Upewnij się, że uprawnienia do konfiguracji bootloadera są skonfigurowane - (Automatycznie)
  • 1.5.3 Upewnij się, że wymagana jest autoryzacja dla trybu pojedynczego użytkownika (Automatycznie)

1.6 Dodatkowe utwardzanie procesów

  • 1.6.1 Upewnij się, że wsparcie XD/NX jest włączone (Automatycznie)
  • 1.6.2 Upewnij się, że randomizacja układu przestrzeni adresowej (ASLR) jest włączona - (Automatycznie)
  • 1.6.3 Upewnij się, że prelink jest wyłączony (Automatycznie)
  • 1.6.4 Upewnij się, że zrzuty rdzenia są ograniczone (Automatycznie)

1.7 Obowiązkowa kontrola dostępu

  • 1.7.1 Skonfiguruj AppArmor
  • 1.7.1.1 Upewnij się, że AppArmor jest zainstalowane (Automatycznie)
  • 1.7.1.2 Upewnij się, że AppArmor jest włączony w konfiguracji bootloadera - (Automatycznie)
  • 1.7.1.3 Upewnij się, że wszystkie profile AppArmor działają w trybie egzekucji lub zgłaszania - (Automatycznie)
  • 1.7.1.4 Upewnij się, że wszystkie profile AppArmor są w trybie egzekucji (Automatycznie)

1.8 Banery ostrzegawcze

  • 1.8.1 Banery ostrzegawcze w wierszu poleceń
  • 1.8.1.1 Upewnij się, że wiadomość dnia jest skonfigurowana poprawnie (Automatycznie)
  • 1.8.1.2 Upewnij się, że baner ostrzegawczy lokalnego logowania jest poprawnie skonfigurowany - (Automatycznie) 115
  • 1.8.1.3 Upewnij się, że baner ostrzegawczy zdalnego logowania jest poprawnie skonfigurowany - (Automatycznie)
  • 1.8.1.4 Upewnij się, że uprawnienia do /etc/motd są skonfigurowane (Automatycznie)
  • 1.8.1.5 Upewnij się, że uprawnienia do /etc/issue są skonfigurowane (Automatycznie)
  • 1.8.1.6 Upewnij się, że uprawnienia do /etc/issue.net są skonfigurowane - (Automatycznie)
  • 1.9 Upewnij się, że aktualizacje, poprawki i dodatkowe oprogramowanie zabezpieczające są - zainstalowane (Ręcznie)
  • 1.10 Upewnij się, że GDM jest usunięty lub logowanie jest skonfigurowane (Automatycznie)

2 Usługi

  • 2.1 Usługi inetd
  • 2.1.1 Upewnij się, że xinetd nie jest zainstalowane (Automatycznie)
  • 2.1.2 Upewnij się, że openbsd-inetd nie jest zainstalowane (Automatycznie)
  • 2.2 Usługi specjalnego przeznaczenia
  • 2.2.1 Synchronizacja czasu
  • 2.2.1.1 Upewnij się, że synchronizacja czasu jest używana (Automatycznie)
  • 2.2.1.2 Upewnij się, że systemd-timesyncd jest skonfigurowany (Ręcznie)
  • 2.2.1.3 Upewnij się, że chrony jest skonfigurowane (Automatycznie)
  • 2.2.1.4 Upewnij się, że ntp jest skonfigurowane (Automatycznie)
  • 2.2.2 Upewnij się, że system X Window nie jest zainstalowany (Automatycznie)
  • 2.2.3 Upewnij się, że serwer Avahi nie jest zainstalowany (Automatycznie)
  • 2.2.4 Upewnij się, że CUPS nie jest zainstalowany (Automatycznie)
  • 2.2.5 Upewnij się, że serwer DHCP nie jest zainstalowany (Automatycznie)
  • 2.2.6 Upewnij się, że serwer LDAP nie jest zainstalowany (Automatycznie)
  • 2.2.7 Upewnij się, że NFS nie jest zainstalowany (Automatycznie)
  • 2.2.8 Upewnij się, że serwer DNS nie jest zainstalowany (Automatycznie)
  • 2.2.9 Upewnij się, że serwer FTP nie jest zainstalowany (Automatycznie)
  • 2.2.10 Upewnij się, że serwer HTTP nie jest zainstalowany (Automatycznie)
  • 2.2.11 Upewnij się, że serwery IMAP i POP3 nie są zainstalowane (Automatycznie)
  • 2.2.12 Upewnij się, że Samba nie jest zainstalowana (Automatycznie)
  • 2.2.13 Upewnij się, że serwer HTTP Proxy nie jest zainstalowany (Automatycznie)
  • 2.2.14 Upewnij się, że serwer SNMP nie jest zainstalowany (Automatycznie)
  • 2.2.15 Upewnij się, że agent transferu poczty jest skonfigurowany w trybie lokalnego tylko - (Automatycznie)
  • 2.2.16 Upewnij się, że usługa rsync nie jest zainstalowana (Automatycznie)
  • 2.2.17 Upewnij się, że serwer NIS nie jest zainstalowany (Automatycznie)

2.3 Klienci usług

  • 2.3.1 Upewnij się, że klient NIS nie jest zainstalowany (Automatycznie)
  • 2.3.2 Upewnij się, że klient rsh nie jest zainstalowany (Automatycznie)
  • 2.3.3 Upewnij się, że klient talk nie jest zainstalowany (Automatycznie)
  • 2.3.4 Upewnij się, że klient telnet nie jest zainstalowany (Automatycznie)
  • 2.3.5 Upewnij się, że klient LDAP nie jest zainstalowany (Automatycznie)
  • 2.3.6 Upewnij się, że RPC nie jest zainstalowane (Automatycznie)
  • 2.4 Upewnij się, że niepotrzebne usługi są usunięte lub zamaskowane (Ręcznie)

3 Konfiguracja sieci

  • 3.1 Wyłącz nieużywane protokoły i urządzenia sieciowe
  • 3.1.1 Wyłącz IPv6 (Ręcznie)
  • 3.1.2 Upewnij się, że interfejsy bezprzewodowe są wyłączone (Automatycznie)

3.2 Parametry sieciowe (tylko Host)

  • 3.2.1 Upewnij się, że wysyłanie przekierowań pakietów jest wyłączone (Automatycznie)
  • 3.2.2 Upewnij się, że przekazywanie IP jest wyłączone (Automatycznie)

3.3 Parametry sieciowe (Host i router)

  • 3.3.1 Upewnij się, że pakiety kierowane źródłowo nie są akceptowane (Automatycznie)
  • 3.3.2 Upewnij się, że przekierowania ICMP nie są akceptowane (Automatycznie)
  • 3.3.3 Upewnij się, że bezpieczne przekierowania ICMP nie są akceptowane (Automatycznie)
  • 3.3.4 Upewnij się, że podejrzane pakiety są rejestrowane (Automatycznie)
  • 3.3.5 Upewnij się, że żądania ICMP broadcast są ignorowane (Automatycznie)
  • 3.3.6 Upewnij się, że fałszywe odpowiedzi ICMP są ignorowane (Automatycznie)
  • 3.3.7 Upewnij się, że filtracja odwrotna jest włączona (Automatycznie)
  • 3.3.8 Upewnij się, że ciasteczka SYN TCP są włączone (Automatycznie)
  • 3.3.9 Upewnij się, że ogłoszenia routerów IPv6 nie są akceptowane (Automatycznie)

3.4 Rzadkie protokoły sieciowe

  • 3.4.1 Upewnij się, że DCCP jest wyłączony (Automatycznie)
  • 3.4.2 Upewnij się, że SCTP jest wyłączony (Automatycznie)
  • 3.4.3 Upewnij się, że RDS jest wyłączony (Automatycznie)
  • 3.4.4 Upewnij się, że TIPC jest wyłączony (Automatycznie)

3.5 Konfiguracja zapory

  • 3.5.1 Skonfiguruj UncomplicatedFirewall
  • 3.5.1.1 Upewnij się, że Uncomplicated Firewall jest zainstalowany (Automatycznie)
  • 3.5.1.2 Upewnij się, że iptables-persistent nie jest zainstalowany (Automatycznie)
  • 3.5.1.3 Upewnij się, że usługa ufw jest włączona (Automatycznie)
  • 3.5.1.4 Upewnij się, że ruch zwrotny jest skonfigurowany (Automatycznie)
  • 3.5.1.5 Upewnij się, że połączenia wychodzące są skonfigurowane (Ręcznie)
  • 3.5.1.6 Upewnij się, że zasady zapory istnieją dla wszystkich otwartych portów (Ręcznie)
  • 3.5.1.7 Upewnij się, że domyślna polityka zapory jest 'deny' (Automatycznie)
  • 3.5.2 Skonfiguruj nftables
  • 3.5.2.1 Upewnij się, że nftables jest zainstalowane (Automatycznie)
  • 3.5.2.2 Upewnij się, że Uncomplicated Firewall nie jest zainstalowany lub wyłączony - (Automatycznie)
  • 3.5.2.3 Upewnij się, że iptables są wyczyszczone (Ręcznie)
  • 3.5.2.4 Upewnij się, że istnieje tabela (Automatycznie)
  • 3.5.2.5 Upewnij się, że istnieją podstawowe łańcuchy (Automatycznie)
  • 3.5.2.6 Upewnij się, że ruch zwrotny jest skonfigurowany (Automatycznie)
  • 3.5.2.7 Upewnij się, że połączenia wychodzące i ustanowione są skonfigurowane - (Ręcznie)243
  • 3.5.2.8 Upewnij się, że domyślna polityka zapory jest 'deny' (Automatycznie)
  • 3.5.2.9 Upewnij się, że usługa nftables jest włączona (Automatycznie)
  • 3.5.2.10 Upewnij się, że zasady nftables są trwałe (Automatycznie)
  • 3.5.3 Skonfiguruj iptables
  • 3.5.3.1.1 Upewnij się, że pakiety iptables są zainstalowane (Automatycznie)
  • 3.5.3.1.2 Upewnij się, że nftables nie jest zainstalowane (Automatycznie)
  • 3.5.3.1.3 Upewnij się, że Uncomplicated Firewall nie jest zainstalowany lub wyłączony - (Automatycznie)
  • 3.5.3.2.1 Upewnij się, że domyślna polityka zapory jest 'deny' (Automatycznie)
  • 3.5.3.2.2 Upewnij się, że ruch zwrotny jest skonfigurowany (Automatycznie)
  • 3.5.3.2.3 Upewnij się, że połączenia wychodzące i ustanowione są skonfigurowane - (Ręcznie)
  • 3.5.3.2.4 Upewnij się, że zasady zapory istnieją dla wszystkich otwartych portów (Automatycznie)
  • 3.5.3.3.1 Upewnij się, że domyślna polityka zapory dla IPv6 jest 'deny' (Automatycznie)
  • 3.5.3.3.2 Upewnij się, że ruch zwrotny IPv6 jest skonfigurowany (Automatycznie)
  • 3.5.3.3.3 Upewnij się, że połączenia wychodzące i ustanowione IPv6 są skonfigurowane (Ręcznie)
  • 3.5.3.3.4 Upewnij się, że zasady zapory IPv6 istnieją dla wszystkich otwartych portów - (Ręcznie)

4 Rejestrowanie i audyt

  • 4.1 Skonfiguruj księgę systemową (auditd)
  • 4.1.1 Upewnij się, że audyt jest włączony
  • 4.1.1.1 Upewnij się, że auditd jest zainstalowane (Automatycznie)
  • 4.1.1.2 Upewnij się, że usługa auditd jest włączona (Automatycznie)
  • 4.1.1.3 Upewnij się, że audyt dla procesów, które rozpoczynają się przed auditd, jest - włączony (Automatycznie)
  • 4.1.1.4 Upewnij się, że audit_backlog_limit jest wystarczający (Automatycznie)
  • 4.1.2 Skonfiguruj przechowywanie danych
  • 4.1.2.1 Upewnij się, że rozmiar przechowywania dziennika audytu jest skonfigurowany (Automatycznie)
  • 4.1.2.2 Upewnij się, że dzienniki audytu nie są automatycznie usuwane (Automatycznie)
  • 4.1.2.3 Upewnij się, że system jest wyłączony, gdy dzienniki audytowe są pełne - (Automatycznie)
  • 4.1.3 Upewnij się, że zdarzenia modyfikujące informacje o dacie i godzinie są - zbierane (Automatycznie)
  • 4.1.4 Upewnij się, że zdarzenia modyfikujące informacje o użytkownikach/grupach są zbierane - (Automatycznie)
  • 4.1.5 Upewnij się, że zdarzenia modyfikujące środowisko sieciowe systemu są - zbierane (Automatycznie)
  • 4.1.6 Upewnij się, że zdarzenia modyfikujące obowiązkową kontrolę dostępu systemu są zbierane - (Automatycznie)
  • 4.1.7 Upewnij się, że zdarzenia logowania i wylogowania są zbierane (Automatycznie)
  • 4.1.8 Upewnij się, że informacje o inicjacji sesji są zbierane (Automatycznie)
  • 4.1.9 Upewnij się, że zdarzenia modyfikujące uprawnienia do kontroli dostępu dyskrecjonalnego są zbierane (Automatycznie)
  • 4.1.10 Upewnij się, że nieudane nieautoryzowane próby dostępu do plików są zbierane (Automatycznie)
  • 4.1.11 Upewnij się, że wykorzystywanie poleceń z uprawnieniami jest rejestrowane (Automatycznie)
  • 4.1.12 Upewnij się, że pomyślne montowanie systemu plików jest rejestrowane (Automatycznie)
  • 4.1.13 Upewnij się, że zdarzenia usunięcia plików przez użytkowników są zbierane (Automatycznie)
  • 4.1.14 Upewnij się, że zmiany w zakresie administracji systemu (sudoers) są - zbierane (Automatycznie)
  • 4.1.15 Upewnij się, że wykonania poleceń administratora systemu (sudo) są - zbierane (Automatycznie)
  • 4.1.16 Upewnij się, że ładowanie i rozładowywanie modułów jądra są rejestrowane - (Automatycznie)
  • 4.1.17 Upewnij się, że konfiguracja audytu jest niezmienna (Automatycznie)

4.2 Skonfiguruj rejestrowanie

  • 4.2.1 Skonfiguruj rsyslog
  • 4.2.1.1 Upewnij się, że rsyslog jest zainstalowany (Automatycznie)
  • 4.2.1.2 Upewnij się, że usługa rsyslog jest włączona (Automatycznie)
  • 4.2.1.3 Upewnij się, że rejestrowanie jest skonfigurowane (Ręcznie)
  • 4.2.1.4 Upewnij się, że domyślne uprawnienia plików rsyslog są skonfigurowane - (Automatycznie)
  • 4.2.1.5 Upewnij się, że rsyslog jest skonfigurowany do wysyłania dzienników do zdalnego hosta - (Automatycznie)
  • 4.2.1.6 Upewnij się, że zdalne wiadomości rsyslog są akceptowane tylko na - wyznaczonych hostach logujących. (Ręcznie)
  • 4.2.2 Skonfiguruj journald
  • 4.2.2.1 Upewnij się, że journald jest skonfigurowany do wysyłania dzienników do rsyslog - (Automatycznie)
  • 4.2.2.2 Upewnij się, że journald jest skonfigurowany do kompresowania dużych plików dzienników - (Automatycznie)
  • 4.2.2.3 Upewnij się, że journald jest skonfigurowany do zapisywania plików dzienników na - dysku trwałym (Automatycznie)
  • 4.2.3 Upewnij się, że uprawnienia do wszystkich plików dzienników są skonfigurowane (Automatycznie)
  • 4.3 Upewnij się, że logrotate jest skonfigurowany (Ręcznie)
  • 4.4 Upewnij się, że logrotate przypisuje odpowiednie uprawnienia (Automatycznie)

5 Dostęp, uwierzytelnianie i autoryzacja

  • 5.1 Skonfiguruj harmonogramy zadań na podstawie czasu
  • 5.1.1 Upewnij się, że demon cron jest włączony i działa (Automatycznie)
  • 5.1.2 Upewnij się, że uprawnienia do /etc/crontab są skonfigurowane (Automatycznie)
  • 5.1.3 Upewnij się, że uprawnienia do /etc/cron.hourly są skonfigurowane - (Automatycznie)
  • 5.1.4 Upewnij się, że uprawnienia do /etc/cron.daily są skonfigurowane - (Automatycznie)
  • 5.1.5 Upewnij się, że uprawnienia do /etc/cron.weekly są skonfigurowane - (Automatycznie)
  • 5.1.6 Upewnij się, że uprawnienia do /etc/cron.monthly są skonfigurowane - (Automatycznie)
  • 5.1.7 Upewnij się, że uprawnienia do /etc/cron.d są skonfigurowane (Automatycznie)
  • 5.1.8 Upewnij się, że cron jest ograniczony do autoryzowanych użytkowników (Automatycznie)
  • 5.1.9 Upewnij się, że at jest ograniczone do autoryzowanych użytkowników (Automatycznie)

5.2 Skonfiguruj serwer SSH

  • 5.2.1 Upewnij się, że uprawnienia do /etc/ssh/sshd_config są skonfigurowane - (Automatycznie)
  • 5.2.2 Upewnij się, że uprawnienia do prywatnych kluczy hosta SSH są - skonfigurowane (Automatycznie)
  • 5.2.3 Upewnij się, że uprawnienia do publicznych kluczy hosta SSH są skonfigurowane - (Automatycznie)
  • 5.2.4 Upewnij się, że poziom dziennika SSH jest odpowiedni (Automatycznie)
  • 5.2.5 Upewnij się, że przekazywanie X11 SSH jest wyłączone (Automatycznie)
  • 5.2.6 Upewnij się, że SSH MaxAuthTries jest ustawione na 4 lub mniej (Automatycznie)
  • 5.2.7 Upewnij się, że SSH IgnoreRhosts jest włączone (Automatycznie)
  • 5.2.8 Upewnij się, że SSH HostbasedAuthentication jest wyłączone (Automatycznie)
  • 5.2.9 Upewnij się, że logowanie roota SSH jest wyłączone (Automatycznie)
  • 5.2.10 Upewnij się, że SSH PermitEmptyPasswords jest wyłączone (Automatycznie)
  • 5.2.11 Upewnij się, że SSH PermitUserEnvironment jest wyłączone (Automatycznie)
  • 5.2.12 Upewnij się, że używane są tylko silne szyfry (Automatycznie)
  • 5.2.13 Upewnij się, że używane są tylko silne algorytmy MAC (Automatycznie)
  • 5.2.14 Upewnij się, że używane są tylko silne algorytmy wymiany kluczy - (Automatycznie)
  • 5.2.15 Upewnij się, że interwał timeout dla idleness SSH jest skonfigurowany (Automatycznie)
  • 5.2.16 Upewnij się, że SSH LoginGraceTime jest ustawione na jedną minutę lub mniej - (Automatycznie)
  • 5.2.17 Upewnij się, że dostęp SSH jest ograniczony (Automatycznie)
  • 5.2.18 Upewnij się, że baner ostrzegawczy SSH jest skonfigurowany (Automatycznie)
  • 5.2.19 Upewnij się, że SSH PAM jest włączone (Automatycznie)
  • 5.2.20 Upewnij się, że SSH AllowTcpForwarding jest wyłączone (Automatycznie)
  • 5.2.21 Upewnij się, że SSH MaxStartups jest skonfigurowane (Automatycznie)
  • 5.2.22 Upewnij się, że SSH MaxSessions jest ograniczone (Automatycznie)

5.3 Skonfiguruj PAM

  • 5.3.1 Upewnij się, że wymagania dotyczące tworzenia haseł są skonfigurowane - (Automatycznie)
  • 5.3.2 Upewnij się, że blokada za nieudane próby hasła jest skonfigurowana - (Automatycznie)
  • 5.3.3 Upewnij się, że ponowne używanie haseł jest ograniczone (Automatycznie)
  • 5.3.4 Upewnij się, że algorytm haszowania haseł to SHA-512 (Automatycznie)

5.4 Konta użytkowników i środowisko

  • 5.4.1 Ustaw parametry zestawu haseł shadow
  • 5.4.1.1 Upewnij się, że wymagana jest zmiana hasła co 365 dni lub krócej (Automatycznie)
  • 5.4.1.2 Upewnij się, że między zmianami hasła jest skonfigurowany minimalny czas (Automatycznie)
  • 5.4.1.3 Upewnij się, że dni ostrzeżenia zmiany hasła to 7 lub więcej - (Automatycznie)
  • 5.4.1.4 Upewnij się, że blokada nieaktywnego hasła trwa 30 dni lub krócej (Automatycznie)
  • 5.4.1.5 Upewnij się, że ostatnia zmiana hasła wszystkich użytkowników jest przeszła - (Automatycznie)
  • 5.4.2 Upewnij się, że konta systemowe są zabezpieczone (Automatycznie)
  • 5.4.3 Upewnij się, że domyślna grupa dla konta roota to GID 0 (Automatycznie)
  • 5.4.4 Upewnij się, że domyślny umask użytkownika wynosi 027 lub jest bardziej restrykcyjny - (Automatycznie)
  • 5.4.5 Upewnij się, że domyślny limit czasu powłoki użytkownika wynosi 900 sekund lub mniej - (Automatycznie)
  • 5.5 Upewnij się, że logowanie roota jest ograniczone do konsoli systemu (Ręcznie)
  • 5.6 Upewnij się, że dostęp do polecenia su jest ograniczony (Automatycznie)

6 Utrzymanie systemu

  • 6.1 Uprawnienia do plików systemowych
  • 6.1.1 Audyt uprawnień do plików systemowych (Ręcznie)
  • 6.1.2 Upewnij się, że uprawnienia do /etc/passwd są skonfigurowane (Automatycznie)
  • 6.1.3 Upewnij się, że uprawnienia do /etc/gshadow- są skonfigurowane (Automatycznie)
  • 6.1.4 Upewnij się, że uprawnienia do /etc/shadow są skonfigurowane (Automatycznie)
  • 6.1.5 Upewnij się, że uprawnienia do /etc/group są skonfigurowane (Automatycznie)
  • 6.1.6 Upewnij się, że uprawnienia do /etc/passwd- są skonfigurowane (Automatycznie)
  • 6.1.7 Upewnij się, że uprawnienia do /etc/shadow- są skonfigurowane (Automatycznie)
  • 6.1.8 Upewnij się, że uprawnienia do /etc/group- są skonfigurowane (Automatycznie)
  • 6.1.9 Upewnij się, że uprawnienia do /etc/gshadow są skonfigurowane (Automatycznie)
  • 6.1.10 Upewnij się, że nie istnieją katalogi zapisywalne przez wszystkich. (Automatycznie)
  • 6.1.11 Upewnij się, że nie istnieją nieposiadające właściciela pliki lub foldery (Automatycznie)
  • 6.1.12 Upewnij się, że nie istnieją nieprzypisane pliki lub katalogi (Automatycznie)
  • 6.1.13 Audyt plików wykonywalnych SUID (Ręcznie)
  • 6.1.14 Audyt plików wykonywalnych SGID (Ręcznie)

6.2 Ustawienia użytkownika i grupy

  • 6.2.1 Upewnij się, że pola hasła nie są puste (Automatycznie)
  • 6.2.2 Upewnij się, że root jest jedynym kontem UID 0 (Automatycznie)
  • 6.2.3 Upewnij się, że integralność ścieżki root jest zapewniona (Automatycznie)
  • 6.2.4 Upewnij się, że katalogi domowe wszystkich użytkowników istnieją (Automatycznie)
  • 6.2.5 Upewnij się, że uprawnienia do katalogów domowych użytkowników wynoszą 750 lub są bardziej restrykcyjne (Automatycznie)
  • 6.2.6 Upewnij się, że użytkownicy są właścicielami swoich katalogów domowych (Automatycznie)
  • 6.2.7 Upewnij się, że pliki dot są odpowiednie dla grupy lub nie są zapisywane przez innych - (Automatycznie)
  • 6.2.8 Upewnij się, że żaden użytkownik nie ma plików .forward (Automatycznie)
  • 6.2.9 Upewnij się, że żaden użytkownik nie ma plików .netrc (Automatycznie)
  • 6.2.10 Upewnij się, że pliki .netrc użytkowników nie są grupowe ani ogólnie dostępne - (Automatycznie)
  • 6.2.11 Upewnij się, że żaden użytkownik nie ma plików .rhosts (Automatycznie)
  • 6.2.12 Upewnij się, że wszystkie grupy w /etc/passwd istnieją w /etc/group - (Automatycznie)
  • 6.2.13 Upewnij się, że nie istnieją zduplikowane UID (Automatycznie)
  • 6.2.14 Upewnij się, że nie istnieją zduplikowane GID (Automatycznie)
  • 6.2.15 Upewnij się, że nie istnieją zduplikowane nazwy użytkowników (Automatycznie)
  • 6.2.16 Upewnij się, że nie istnieją zduplikowane nazwy grup (Automatycznie)
  • 6.2.17 Upewnij się, że grupa shadow jest pusta (Automatycznie)

Rozwiązywanie problemów

  • Jeśli chcesz uruchomić playbook na tej samej maszynie, upewnij się, że dodasz to do uruchamiania zadań:
- hosts: 127.0.0.1
  connection: local
  • jeśli masz problemy z wykonaniem, spróbuj uruchomić playbook w innej ścieżce, np. /srv/.
  • Dla błędu takiego jak stderr: chage: użytkownik 'ubuntu' nie istnieje w /etc/passwd, upewnij się, że zaktualizowałeś konfigurację w CIS-Ubuntu-20.04-Ansible/defaults/main.yml.

Licencja

GNU GENERAL PUBLIC LICENSE

Informacje o autorze

Rola została początkowo opracowana przez Ali Saleh Baker.

Gdybyś chciał wnieść wkład w to repozytorium, najpierw omów, jaką zmianę chciałbyś wprowadzić za pośrednictwem zgłoszenia na GitHubie, e-mailu lub poprzez inne kanały ze mną :)

Zainstaluj
ansible-galaxy install ryezone_labs.ansible_cis_ubuntu_2004
Licencja
gpl-3.0
Pobrania
152
Właściciel