ryezone_labs.ansible_cis_ubuntu_2004

Ansible CIS Ubuntu 20.04 LTS Härtung 
CIS gehärtetes Ubuntu: Cyberangriff und Malware-Prävention für mission-kritische Systeme. CIS-Benchmarks sichern Ihre Systeme, indem sie Folgendes entfernen:
- unsichere Programme.
- ungenutzte Dateisysteme deaktivieren.
- unnötige Ports oder Dienste deaktivieren.
- privilegierte Operationen überprüfen.
- administrative Rechte einschränken.
CIS-Benchmark-Empfehlungen werden in virtuellen Maschinen in öffentlichen und privaten Clouds übernommen. Sie werden auch verwendet, um lokale Bereitstellungen abzusichern. Für einige Branchen ist die Härtung eines Systems nach einem öffentlich anerkannten Standard ein Kriterium, das von Prüfern gefordert wird. CIS-Benchmarks sind oft eine empfohlene Wahl zur Härtung von Systemen in Branchen, die PCI-DSS- und HIPAA-Compliance erfordern, wie z. B. Banken, Telekommunikation und Gesundheitswesen. Wenn Sie versuchen, die Compliance mit einem branchenanerkannten Sicherheitsstandard wie PCI DSS, APRA oder ISO 27001 zu erreichen, müssen Sie nachweisen, dass Sie dokumentierte Härtungsstandards auf alle Systeme innerhalb des Prüfungsumfangs angewendet haben.
Die Ubuntu CIS-Benchmarks sind in verschiedene Profile unterteilt, nämlich „Level 1“ und „Level 2“, die für Server- und Arbeitsumgebungen gedacht sind.
Ein Level-1-Profil soll eine praktische und vernünftige Möglichkeit sein, ein System ohne große Leistungseinbußen abzusichern.
- Deaktivierung unnötiger Dateisysteme,
- Einschränkung der Benutzerberechtigungen für Dateien und Verzeichnisse,
- Deaktivierung unnötiger Dienste.
- Konfiguration von Netzwerk-Firewalls.
Ein Level-2-Profil wird verwendet, wenn die Sicherheit als sehr wichtig angesehen wird und dies negative Auswirkungen auf die Systemleistung haben kann.
- Erstellen separater Partitionen,
- Überwachung privilegierter Operationen.
Das Ubuntu CIS-Härtungswerkzeug ermöglicht es Ihnen, das gewünschte Härtungslevel gegen ein Profil (Level 1 oder Level 2) und die Arbeitsumgebung (Server oder Arbeitsplatz) für ein System auszuwählen. Beispiel:
ansible-playbook -i inventory cis-ubuntu-20.yaml --tags="level_1_server"
Sie können alle Tags auflisten, indem Sie den folgenden Befehl ausführen:
ansible-playbook -i host run.yaml --list-tags
Ich habe alle Rollen basierend auf
CIS Ubuntu Linux 20.04 LTS Benchmark
v1.0.0 - 07-21-2020
Beispielverzeichnis prüfen
Anforderungen
Sie sollten die Aufgaben sorgfältig durchlesen, um sicherzustellen, dass diese Änderungen Ihre Systeme nicht beeinträchtigen, bevor Sie dieses Playbook ausführen.
Sie können das kostenlose CIS-Benchmark-Buch unter dieser URL herunterladen. Freies Benchmark
Um mit dieser Rolle zu arbeiten, müssen Sie Ansible nur installieren. Ansible installieren
Rollenvariablen
Sie müssen die gesamte Standardkonfiguration überprüfen, bevor Sie dieses Playbook ausführen. Es gibt viele Rollenvariablen, die in defaults/main.yml definiert sind.
- Wenn Sie erwägen, diese Rolle auf Server anzuwenden, sollten Sie ein grundlegendes Verständnis für das CIS-Benchmark und die Auswirkungen, die es auf ein System haben kann, haben.
- Lesen Sie die konfigurierbaren Standardwerte und ändern Sie sie bei Bedarf.
Beispiele für Konfigurationen, die sofort von der Ausschlussliste berücksichtigt werden sollten:
5.1.8 Stellen Sie sicher, dass Cron auf autorisierte Benutzer beschränkt ist. und 5.2.17 Stellen Sie sicher, dass SSH-Zugriff eingeschränkt ist, was standardmäßig effektiv den Zugriff auf das Host-System (einschließlich über ssh) einschränkt.
Zum Beispiel:
- CIS-Ubuntu-20.04-Ansible/defaults/main.yml
#Abschnitt 5
#5.1.8 Sicherstellen, dass Cron auf autorisierte Benutzer beschränkt ist
allowed_hosts: "ALL: 0.0.0.0/0.0.0.0, 192.168.2.0/255.255.255.0"
# 5.2.17 Sicherstellen, dass SSH-Zugriff eingeschränkt ist
allowed_users: ali saleh baker root #Geben Sie None oder eine Liste von Benutzern mit Leerzeichen zwischen jedem Benutzer an
Wenn Sie Vorlagendateien ändern müssen, finden Sie diese unter files/templates/*
.
Abhängigkeiten
- Ansible-Version > 2.9
Beispiel-Playbook
Hier ein Beispiel für ein Playbook
---
- hosts: host1
become: yes
remote_user: root
gather_facts: no
roles:
- { role: "CIS-Ubuntu-20.04-Ansible",}
Alle ausführen
Wenn Sie alle Tags ausführen möchten, verwenden Sie den folgenden Befehl:
ansible-playbook -i [inventoryfile] [playbook].yaml
Spezifischen Abschnitt ausführen
ansible-playbook -i host run.yaml -t section2
Mehrere Abschnitte ausführen
ansible-playbook -i host run.yaml -t section2 -t 6.1.1
Hinweis: Wenn Sie eine einzelne Aufgabe ausführen, stellen Sie sicher, dass Sie sich über die Abhängigkeiten zwischen den Aufgaben im Klaren sind. Wenn Sie beispielsweise das Tag 4.1.1.2 Stellen Sie sicher, dass der Auditd-Dienst aktiviert ist vor 4.1.1.1 Stellen Sie sicher, dass Auditd installiert ist, erhalten Sie zur Laufzeit einen Fehler.
Punkte mit
Tildesind derzeit noch nicht implementiert, ich arbeite daran.Stellen Sie sicher, dass Sie einmalig einen Dienst auswählen, ich verwende NTP, aber Sie können auch andere Dienste wie [
systemd-timesyncd
,ntp
,chrony
] unter den Einstellungendefaults/main.yaml
verwenden.Test 11/1/2020 Getestet auf AWS EC2 Ubuntu 20.04 LTS [Bestehen] 11/1/2020 Getestet auf lokalem Ubuntu 20.04 LTS Server [Bestehen]
Vor dem Ausführen sicherstellen, dass die Benutzerliste in
defaults/main.yaml
unterlist_of_os_users
+allowed_users
aktualisiert wird.Stellen
Sie sicher, dass das richtige Subnetz unterdefaults/main.yaml
aufallowed_hosts
gesetzt ist.
Tabelle der Rollen:
1 Ersteinrichtung
- 1.1 Dateisystemkonfiguration
- 1.1.1 Deaktivieren ungenutzter Dateisysteme
- 1.1.1.1 Sicherstellen, dass das Einbinden von cramfs-Dateisystemen deaktiviert ist (Automatisiert)
- 1.1.1.2 Sicherstellen, dass das Einbinden von freevxfs-Dateisystemen deaktiviert ist - (Automatisiert)
- 1.1.1.3 Sicherstellen, dass das Einbinden von jffs2-Dateisystemen deaktiviert ist (Automatisiert)
- 1.1.1.4 Sicherstellen, dass das Einbinden von hfs-Dateisystemen deaktiviert ist (Automatisiert)
- 1.1.1.5 Sicherstellen, dass das Einbinden von hfsplus-Dateisystemen deaktiviert ist - (Automatisiert)
- 1.1.1.6 Sicherstellen, dass das Einbinden von udf-Dateisystemen deaktiviert ist (Automatisiert)
- 1.1.1.7 Sicherstellen, dass das Einbinden von FAT-Dateisystemen beschränkt ist (Manuell)
- 1.1.2 Sicherstellen, dass /tmp konfiguriert ist (Automatisiert)
- 1.1.3 Sicherstellen, dass die nodev-Option auf der /tmp-Partition gesetzt ist (Automatisiert)
- 1.1.4 Sicherstellen, dass die nosuid-Option auf der /tmp-Partition gesetzt ist (Automatisiert)
- 1.1.5 Sicherstellen, dass die noexec-Option auf der /tmp-Partition gesetzt ist (Automatisiert)
- 1.1.6 Sicherstellen, dass /dev/shm konfiguriert ist (Automatisiert)
- 1.1.7 Sicherstellen, dass die nodev-Option auf der /dev/shm-Partition gesetzt ist (Automatisiert)
- 1.1.8 Sicherstellen, dass die nosuid-Option auf der /dev/shm-Partition gesetzt ist (Automatisiert)
- 1.1.9 Sicherstellen, dass die noexec-Option auf der /dev/shm-Partition gesetzt ist (Automatisiert)
1.1.10 Sicherstellen, dass eine separate Partition für /var vorhanden ist (Automatisiert)1.1.11 Sicherstellen, dass eine separate Partition für /var/tmp vorhanden ist (Automatisiert)1.1.12 Sicherstellen, dass die nodev-Option auf der /var/tmp-Partition gesetzt ist (Automatisiert)1.1.13 Sicherstellen, dass die nosuid-Option auf der /var/tmp-Partition gesetzt ist (Automatisiert)1.1.14 Sicherstellen, dass die noexec-Option auf der /var/tmp-Partition gesetzt ist (Automatisiert)1.1.15 Sicherstellen, dass eine separate Partition für /var/log vorhanden ist (Automatisiert)1.1.16 Sicherstellen, dass eine separate Partition für /var/log/audit vorhanden ist - (Automatisiert)1.1.17 Sicherstellen, dass eine separate Partition für /home vorhanden ist (Automatisiert)1.1.18 Sicherstellen, dass die nodev-Option auf der /home-Partition gesetzt ist (Automatisiert)1.1.19 Sicherstellen, dass die nodev-Option auf Wechselmedienpartitionen gesetzt ist (Manuell)1.1.20 Sicherstellen, dass die nosuid-Option auf Wechselmedienpartitionen gesetzt ist - (Manuell)1.1.21 Sicherstellen, dass die noexec-Option auf Wechselmedienpartitionen gesetzt ist - (Manuell)- 1.1.22 Sicherstellen, dass das Sticky-Bit auf allen von der Welt beschreibbaren Verzeichnissen gesetzt ist - (Automatisiert)
- 1.1.23 Deaktivierung des Automountings (Automatisiert)
- 1.1.24 Deaktivierung des USB-Speichers (Automatisiert)
1.2 Software-Updates konfigurieren
1.2.1 Sicherstellen, dass die Paketmanager-Repositories konfiguriert sind (Manuell)1.2.2 Sicherstellen, dass GPG-Schlüssel konfiguriert sind (Manuell)
1.3 sudo konfigurieren
- 1.3.1 Sicherstellen, dass sudo installiert ist (Automatisiert)
- 1.3.2 Sicherstellen, dass sudo-Befehle pty verwenden (Automatisiert)
- 1.3.3 Sicherstellen, dass die Protokolldatei von sudo vorhanden ist (Automatisiert)
1.4 Überprüfung der Integrität des Dateisystems
- 1.4.1 Sicherstellen, dass AIDE installiert ist (Automatisiert)
- 1.4.2 Sicherstellen, dass die Integrität des Dateisystems regelmäßig überprüft wird (Automatisiert)
1.5 Sichere Boot-Einstellungen
- 1.5.1 Sicherstellen, dass ein Passwort für den Bootloader gesetzt ist (Automatisiert)
- 1.5.2 Sicherstellen, dass die Berechtigungen für die Bootloader-Konfiguration konfiguriert sind - (Automatisiert)
- 1.5.3 Sicherstellen, dass eine Authentifizierung für den Einbenutzermodus erforderlich ist (Automatisiert)
1.6 Zusätzliche Prozesshärtung
- 1.6.1 Sicherstellen, dass SX/NX-Unterstützung aktiviert ist (Automatisiert)
- 1.6.2 Sicherstellen, dass die Adressraumlayout-Zufälligkeit (ASLR) aktiviert ist - (Automatisiert)
- 1.6.3 Sicherstellen, dass Prelink deaktiviert ist (Automatisiert)
- 1.6.4 Sicherstellen, dass Kerneldumps eingeschränkt sind (Automatisiert)
1.7 Obligatorische Zugriffskontrolle
- 1.7.1 AppArmor konfigurieren
- 1.7.1.1 Sicherstellen, dass AppArmor installiert ist (Automatisiert)
- 1.7.1.2 Sicherstellen, dass AppArmor in der Bootloader-Konfiguration aktiviert ist - (Automatisiert)
- 1.7.1.3 Sicherstellen, dass alle AppArmor-Profile in den Erzwingungs- oder Beschwerdemodus sind - (Automatisiert)
- 1.7.1.4 Sicherstellen, dass alle AppArmor-Profile durchgesetzt werden (Automatisiert)
1.8 Warnbanner
- 1.8.1 Warnbanner für die Befehlszeile
- 1.8.1.1 Sicherstellen, dass die Tagesnachricht richtig konfiguriert ist (Automatisiert)
- 1.8.1.2 Sicherstellen, dass das lokale Anmeldewarnbanner richtig konfiguriert ist - (Automatisiert) 115
- 1.8.1.3 Sicherstellen, dass das Warnbanner für die entfernte Anmeldung richtig konfiguriert ist - (Automatisiert)
- 1.8.1.4 Sicherstellen, dass die Berechtigungen auf /etc/motd konfiguriert sind (Automatisiert)
- 1.8.1.5 Sicherstellen, dass die Berechtigungen auf /etc/issue konfiguriert sind (Automatisiert)
- 1.8.1.6 Sicherstellen, dass die Berechtigungen auf /etc/issue.net konfiguriert sind - (Automatisiert)
- 1.9 Sicherstellen, dass Updates, Patches und zusätzliche Sicherheitssoftware installiert sind (Manuell)
- 1.10 Sicherstellen, dass GDM entfernt ist oder die Anmeldung konfiguriert ist (Automatisiert)
2 Dienste
- 2.1 inetd-Dienste
- 2.1.1 Sicherstellen, dass xinetd nicht installiert ist (Automatisiert)
- 2.1.2 Sicherstellen, dass openbsd-inetd nicht installiert ist (Automatisiert)
- 2.2 Spezialdienste
- 2.2.1 Zeit-Synchronisation
- 2.2.1.1 Sicherstellen, dass Zeit-Synchronisation verwendet wird (Automatisiert)
- 2.2.1.2 Sicherstellen, dass systemd-timesyncd konfiguriert ist (Manuell)
- 2.2.1.3 Sicherstellen, dass chrony konfiguriert ist (Automatisiert)
- 2.2.1.4 Sicherstellen, dass ntp konfiguriert ist (Automatisiert)
- 2.2.2 Sicherstellen, dass das X Window System nicht installiert ist (Automatisiert)
- 2.2.3 Sicherstellen, dass der Avahi-Server nicht installiert ist (Automatisiert)
- 2.2.4 Sicherstellen, dass CUPS nicht installiert ist (Automatisiert)
- 2.2.5 Sicherstellen, dass der DHCP-Server nicht installiert ist (Automatisiert)
- 2.2.6 Sicherstellen, dass der LDAP-Server nicht installiert ist (Automatisiert)
- 2.2.7 Sicherstellen, dass NFS nicht installiert ist (Automatisiert)
- 2.2.8 Sicherstellen, dass der DNS-Server nicht installiert ist (Automatisiert)
- 2.2.9 Sicherstellen, dass der FTP-Server nicht installiert ist (Automatisiert)
- 2.2.10 Sicherstellen, dass der HTTP-Server nicht installiert ist (Automatisiert)
- 2.2.11 Sicherstellen, dass IMAP- und POP3-Server nicht installiert sind (Automatisiert)
- 2.2.12 Sicherstellen, dass Samba nicht installiert ist (Automatisiert)
- 2.2.13 Sicherstellen, dass der HTTP-Proxy-Server nicht installiert ist (Automatisiert)
- 2.2.14 Sicherstellen, dass der SNMP-Server nicht installiert ist (Automatisiert)
- 2.2.15 Sicherstellen, dass der Mailtransferagent für den lokalen Modus konfiguriert ist - (Automatisiert)
- 2.2.16 Sicherstellen, dass der rsync-Dienst nicht installiert ist (Automatisiert)
- 2.2.17 Sicherstellen, dass der NIS-Server nicht installiert ist (Automatisiert)
2.3 Dienstkunden
- 2.3.1 Sicherstellen, dass der NIS-Client nicht installiert ist (Automatisiert)
- 2.3.2 Sicherstellen, dass der rsh-Client nicht installiert ist (Automatisiert)
- 2.3.3 Sicherstellen, dass der Talk-Client nicht installiert ist (Automatisiert)
- 2.3.4 Sicherstellen, dass der Telnet-Client nicht installiert ist (Automatisiert)
- 2.3.5 Sicherstellen, dass der LDAP-Client nicht installiert ist (Automatisiert)
- 2.3.6 Sicherstellen, dass RPC nicht installiert ist (Automatisiert)
2.4 Sicherstellen, dass nicht essentielle Dienste entfernt oder maskiert sind (Manuell)
3 Netzwerk-Konfiguration
- 3.1 Deaktivieren ungenutzter Netzwerkprotokolle und -geräte
- 3.1.1 Deaktivieren von IPv6 (Manuell)
- 3.1.2 Sicherstellen, dass drahtlose Schnittstellen deaktiviert sind (Automatisiert)
3.2 Netzwerkparameter (Nur-Host)
- 3.2.1 Sicherstellen, dass das Senden von Paket-Redirects deaktiviert ist (Automatisiert)
- 3.2.2 Sicherstellen, dass das IP-Forwarding deaktiviert ist (Automatisiert)
3.3 Netzwerkparameter (Host und Router)
- 3.3.1 Sicherstellen, dass quelle-routen-Pakete nicht akzeptiert werden (Automatisiert)
- 3.3.2 Sicherstellen, dass ICMP-Redirects nicht akzeptiert werden (Automatisiert)
- 3.3.3 Sicherstellen, dass sichere ICMP-Redirects nicht akzeptiert werden (Automatisiert)
- 3.3.4 Sicherstellen, dass verdächtige Pakete protokolliert werden (Automatisiert)
- 3.3.5 Sicherstellen, dass Broadcast-ICMP-Anfragen ignoriert werden (Automatisiert)
- 3.3.6 Sicherstellen, dass gefälschte ICMP-Antworten ignoriert werden (Automatisiert)
- 3.3.7 Sicherstellen, dass das Reverse Path Filtering aktiviert ist (Automatisiert)
- 3.3.8 Sicherstellen, dass TCP SYN Cookies aktiviert sind (Automatisiert)
- 3.3.9 Sicherstellen, dass IPv6-Router-Werbung nicht akzeptiert wird (Automatisiert)
3.4 Ungewöhnliche Netzwerkprotokolle
- 3.4.1 Sicherstellen, dass DCCP deaktiviert ist (Automatisiert)
- 3.4.2 Sicherstellen, dass SCTP deaktiviert ist (Automatisiert)
- 3.4.3 Sicherstellen, dass RDS deaktiviert ist (Automatisiert)
- 3.4.4 Sicherstellen, dass TIPC deaktiviert ist (Automatisiert)
3.5 Firewall-Konfiguration
- 3.5.1 UncomplicatedFirewall konfigurieren
- 3.5.1.1 Sicherstellen, dass die Unkomplizierte Firewall installiert ist (Automatisiert)
- 3.5.1.2 Sicherstellen, dass iptables-persistent nicht installiert ist (Automatisiert)
- 3.5.1.3 Sicherstellen, dass der ufw-Dienst aktiviert ist (Automatisiert)
- 3.5.1.4 Sicherstellen, dass Schleifenverkehr konfiguriert ist (Automatisiert)
- 3.5.1.5 Sicherstellen, dass ausgehende Verbindungen konfiguriert sind (Manuell)
- 3.5.1.6 Sicherstellen, dass Firewall-Regeln für alle offenen Ports existieren (Manuell)
- 3.5.1.7 Sicherstellen, dass die Standardeinstellung der Firewall verweigert wird (Automatisiert)
3.5.2 nftables konfigurieren3.5.2.1 Sicherstellen, dass nftables installiert ist (Automatisiert)3.5.2.2 Sicherstellen, dass die Unkomplizierte Firewall nicht installiert oder deaktiviert ist - (Automatisiert)3.5.2.3 Sicherstellen, dass iptables gelöscht werden (Manuell)3.5.2.4 Sicherstellen, dass eine Tabelle existiert (Automatisiert)3.5.2.5 Sicherstellen, dass Basis-Ketten existieren (Automatisiert)3.5.2.6 Sicherstellen, dass Schleifenverkehr konfiguriert ist (Automatisiert)3.5.2.7 Sicherstellen, dass ausgehende und etablierte Verbindungen konfiguriert sind - (Manuell)2433.5.2.8 Sicherstellen, dass die Standardeinstellung der Firewall verweigert wird (Automatisiert)3.5.2.9 Sicherstellen, dass der nftables-Dienst aktiviert ist (Automatisiert)3.5.2.10 Sicherstellen, dass die nftables-Regeln dauerhaft sind (Automatisiert)3.5.3 iptables konfigurieren3.5.3.1.1 Sicherstellen, dass die iptables-Pakete installiert sind (Automatisiert)3.5.3.1.2 Sicherstellen, dass nftables nicht installiert ist (Automatisiert)3.5.3.1.3 Sicherstellen, dass die Unkomplizierte Firewall nicht installiert oder deaktiviert ist - (Automatisiert)3.5.3.2.1 Sicherstellen, dass die Standardeinstellung der Firewall verweigert wird (Automatisiert)3.5.3.2.2 Sicherstellen, dass Schleifenverkehr konfiguriert ist (Automatisiert)3.5.3.2.3 Sicherstellen, dass ausgehende und etablierte Verbindungen konfiguriert sind - (Manuell)3.5.3.2.4 Sicherstellen, dass Firewall-Regeln für alle offenen Ports existieren (Automatisiert)3.5.3.3.1 Sicherstellen, dass die Standardverweigerungspolitik der IPv6-Firewall besteht (Automatisiert)3.5.3.3.2 Sicherstellen, dass der IPv6-Schleifenverkehr konfiguriert ist (Automatisiert)3.5.3.3.3 Sicherstellen, dass IPv6-Ausgangs- und etablierte Verbindungen konfiguriert sind - (Manuell)3.5.3.3.4 Sicherstellen, dass die IPv6-Firewall-Regeln für alle offenen Ports existieren - (Manuell)
4 Protokollierung und Prüfung
- 4.1 Systembuchhaltung konfigurieren (auditd)
- 4.1.1 Sicherstellen, dass die Protokollierung aktiviert ist
- 4.1.1.1 Sicherstellen, dass auditd installiert ist (Automatisiert)
- 4.1.1.2 Sicherstellen, dass der auditd-Dienst aktiviert ist (Automatisiert)
- 4.1.1.3 Sicherstellen, dass die Protokollierung für Prozesse, die vor auditd gestartet werden, aktiviert ist (Automatisiert)
- 4.1.1.4 Sicherstellen, dass audit_backlog_limit ausreichend ist (Automatisiert)
- 4.1.2 Datenaufbewahrung konfigurieren
- 4.1.2.1 Sicherstellen, dass die Größe des Audit-Protokolls konfiguriert ist (Automatisiert)
- 4.1.2.2 Sicherstellen, dass Audit-Protokolle nicht automatisch gelöscht werden (Automatisiert)
- 4.1.2.3 Sicherstellen, dass das System deaktiviert ist, wenn die Audit-Protokolle voll sind - (Automatisiert)
- 4.1.3 Sicherstellen, dass Ereignisse, die Datum und Uhrzeit ändern, erfasst werden (Automatisiert)
- 4.1.4 Sicherstellen, dass Ereignisse, die Benutzer-/Gruppeninformationen ändern, erfasst werden - (Automatisiert)
- 4.1.5 Sicherstellen, dass Ereignisse, die die Netzwerkinformationen des Systems ändern, erfasst werden - (Automatisiert)
- 4.1.6 Sicherstellen, dass Ereignisse, die die verpflichtenden Zugriffskontrollen des Systems ändern, erfasst werden (Automatisiert)
- 4.1.7 Sicherstellen, dass Anmelde- und Abmeldevorgänge erfasst werden (Automatisiert)
- 4.1.8 Sicherstellen, dass Informationen zur Sitzungseinleitung erfasst werden (Automatisiert)
- 4.1.9 Sicherstellen, dass Ereignisse zur Änderung der Berechtigungen beim diskretionären Zugriff erfasst werden (Automatisiert)
- 4.1.10 Sicherstellen, dass erfolglose unbefugte Zugriffsversuche auf Dateien erfasst werden (Automatisiert)
- 4.1.11 Sicherstellen, dass die Verwendung privilegierter Befehle erfasst wird (Automatisiert)
- 4.1.12 Sicherstellen, dass erfolgreiche Dateisystemeinbindungen erfasst werden (Automatisiert)
- 4.1.13 Sicherstellen, dass Löschereignisse von Dateien durch Benutzer erfasst werden (Automatisiert)
- 4.1.14 Sicherstellen, dass Änderungen im Bereich der Systemadministration (sudoers) erfasst werden (Automatisiert)
- 4.1.15 Sicherstellen, dass die Ausführung von Befehlen der Systemadministration (sudo) erfasst wird (Automatisiert)
- 4.1.16 Sicherstellen, dass das Laden und Entladen von Kernelmodulen erfasst wird - (Automatisiert)
- 4.1.17 Sicherstellen, dass die Audit-Konfiguration unveränderlich ist (Automatisiert)
4.2 Protokollierung konfigurieren
- 4.2.1 rsyslog konfigurieren
- 4.2.1.1 Sicherstellen, dass rsyslog installiert ist (Automatisiert)
- 4.2.1.2 Sicherstellen, dass der rsyslog-Dienst aktiviert ist (Automatisiert)
- 4.2.1.3 Sicherstellen, dass die Protokollierung konfiguriert ist (Manuell)
- 4.2.1.4 Sicherstellen, dass Standarddateiberechtigungen von rsyslog konfiguriert sind - (Automatisiert)
- 4.2.1.5 Sicherstellen, dass rsyslog so konfiguriert ist, dass Protokolle an einen Remote-Log-Host gesendet werden (Automatisiert)
- 4.2.1.6 Sicherstellen, dass entfernte rsyslog-Nachrichten nur auf bestimmten Log-Hosts angenommen werden. (Manuell)
- 4.2.2 journald konfigurieren
- 4.2.2.1 Sicherstellen, dass journald so konfiguriert ist, dass Protokolle an rsyslog gesendet werden - (Automatisiert)
- 4.2.2.2 Sicherstellen, dass journald so konfiguriert ist, dass große Protokolldateien komprimiert werden - (Automatisiert)
- 4.2.2.3 Sicherstellen, dass journald so konfiguriert ist, dass Protokolldateien auf persistente Laufwerke geschrieben werden - (Automatisiert)
- 4.2.3 Sicherstellen, dass die Berechtigungen auf allen Protokolldateien konfiguriert sind (Automatisiert)
- 4.3 Sicherstellen, dass logrotate konfiguriert ist (Manuell)
- 4.4 Sicherstellen, dass logrotate geeignete Berechtigungen vergibt (Automatisiert)
5 Zugriff, Authentifizierung und Berechtigung
- 5.1 Zeitabhängige Job-Scheduler konfigurieren
- 5.1.1 Sicherstellen, dass der Cron-Daemon aktiviert und ausgeführt wird (Automatisiert)
- 5.1.2 Sicherstellen, dass die Berechtigungen auf /etc/crontab konfiguriert sind (Automatisiert)
- 5.1.3 Sicherstellen, dass die Berechtigungen auf /etc/cron.hourly konfiguriert sind - (Automatisiert)
- 5.1.4 Sicherstellen, dass die Berechtigungen auf /etc/cron.daily konfiguriert sind - (Automatisiert)
- 5.1.5 Sicherstellen, dass die Berechtigungen auf /etc/cron.weekly konfiguriert sind - (Automatisiert)
- 5.1.6 Sicherstellen, dass die Berechtigungen auf /etc/cron.monthly konfiguriert sind - (Automatisiert)
- 5.1.7 Sicherstellen, dass die Berechtigungen auf /etc/cron.d konfiguriert sind (Automatisiert)
- 5.1.8 Sicherstellen, dass Cron auf autorisierte Benutzer beschränkt ist (Automatisiert)
- 5.1.9 Sicherstellen, dass at auf autorisierte Benutzer beschränkt ist (Automatisiert)
5.2 SSH-Server konfigurieren
- 5.2.1 Sicherstellen, dass die Berechtigungen auf /etc/ssh/sshd_config konfiguriert sind - (Automatisiert)
- 5.2.2 Sicherstellen, dass die Berechtigungen auf SSH-privaten Hostschlüsseln konfiguriert sind - (Automatisiert)
- 5.2.3 Sicherstellen, dass die Berechtigungen auf SSH-öffentlichen Hostschlüsseln konfiguriert sind - (Automatisiert)
- 5.2.4 Sicherstellen, dass das SSH-LogLevel angemessen ist (Automatisiert)
- 5.2.5 Sicherstellen, dass das SSH X11-Forwarding deaktiviert ist (Automatisiert)
- 5.2.6 Sicherstellen, dass SSH MaxAuthTries auf 4 oder weniger gesetzt ist (Automatisiert)
- 5.2.7 Sicherstellen, dass SSH IgnoreRhosts aktiviert ist (Automatisiert)
- 5.2.8 Sicherstellen, dass SSH Hostbasierte Authentifizierung deaktiviert ist (Automatisiert)
- 5.2.9 Sicherstellen, dass SSH-Root-Anmeldungen deaktiviert sind (Automatisiert)
- 5.2.10 Sicherstellen, dass SSH PermitEmptyPasswords deaktiviert ist (Automatisiert)
- 5.2.11 Sicherstellen, dass SSH PermitUserEnvironment deaktiviert ist (Automatisiert)
- 5.2.12 Sicherstellen, dass nur starke Chiffren verwendet werden (Automatisiert)
- 5.2.13 Sicherstellen, dass nur starke MAC-Algorithmen verwendet werden (Automatisiert)
- 5.2.14 Sicherstellen, dass nur starke Schlüsselaustauschalgorithmen verwendet werden - (Automatisiert)
- 5.2.15 Sicherstellen, dass das SSH Idle Timeout Interval konfiguriert ist (Automatisiert)
- 5.2.16 Sicherstellen, dass die SSH LoginGraceTime auf eine Minute oder weniger eingestellt ist - (Automatisiert)
- 5.2.17 Sicherstellen, dass der SSH-Zugriff eingeschränkt ist (Automatisiert)
- 5.2.18 Sicherstellen, dass ein SSH-Warnbanner konfiguriert ist (Automatisiert)
- 5.2.19 Sicherstellen, dass SSH PAM aktiviert ist (Automatisiert)
- 5.2.20 Sicherstellen, dass SSH AllowTcpForwarding deaktiviert ist (Automatisiert)
- 5.2.21 Sicherstellen, dass SSH MaxStartups konfiguriert ist (Automatisiert)
- 5.2.22 Sicherstellen, dass SSH MaxSessions begrenzt ist (Automatisiert)
5.3 PAM konfigurieren
- 5.3.1 Sicherstellen, dass die Anforderungen für die Passworterstellung konfiguriert sind - (Automatisiert)
- 5.3.2 Sicherstellen, dass das Sperren bei fehlgeschlagenen Passwortversuchen konfiguriert ist - (Automatisiert)
- 5.3.3 Sicherstellen, dass die Passwortwiederverwendung beschränkt ist (Automatisiert)
- 5.3.4 Sicherstellen, dass der Passwort-Hashing-Algorithmus SHA-512 ist (Automatisiert)
5.4 Benutzerkonten und Umgebung
- 5.4.1 Shadow-Passwort-Suite-Parameter festlegen
- 5.4.1.1 Sicherstellen, dass das Passwort innerhalb von 365 Tagen abläuft oder weniger (Automatisiert)
- 5.4.1.2 Sicherstellen, dass zwischen Passwortänderungen mindestens der konfiguriert sind - (Automatisiert)
- 5.4.1.3 Sicherstellen, dass die Warnzeit für das Passwortablaufdatum 7 Tage oder mehr beträgt - (Automatisiert)
- 5.4.1.4 Sicherstellen, dass das inaktive Passwort nach 30 Tagen oder weniger gesperrt ist (Automatisiert)
- 5.4.1.5 Sicherstellen, dass das letzte Passwortwechseldatum für alle Benutzer in der Vergangenheit liegt - (Automatisiert)
- 5.4.2 Sicherstellen, dass Systemkonten gesichert sind (Automatisiert)
- 5.4.3 Sicherstellen, dass die Standardgruppe für das Root-Konto GID 0 ist (Automatisiert)
- 5.4.4 Sicherstellen, dass das Standardbenutzer-Umask 027 oder restriktiver ist - (Automatisiert)
- 5.4.5 Sicherstellen, dass der Standardbenutzershell-Timeout 900 Sekunden oder weniger beträgt - (Automatisiert)
- 5.5 Sicherstellen, dass der Root-Zugriff auf die Systemkonsole beschränkt ist (Manuell)
- 5.6 Sicherstellen, dass der Zugriff auf den su-Befehl eingeschränkt ist (Automatisiert)
6 Systemwartung
- 6.1 Berechtigungen für Systemdateien
6.1.1 Berechtigungen für Systemdateien überprüfen (Manuell)- 6.1.2 Sicherstellen, dass die Berechtigungen auf /etc/passwd konfiguriert sind (Automatisiert)
- 6.1.3 Sicherstellen, dass die Berechtigungen auf /etc/gshadow konfiguriert sind (Automatisiert)
- 6.1.4 Sicherstellen, dass die Berechtigungen auf /etc/shadow konfiguriert sind (Automatisiert)
- 6.1.5 Sicherstellen, dass die Berechtigungen auf /etc/group konfiguriert sind (Automatisiert)
- 6.1.6 Sicherstellen, dass die Berechtigungen auf /etc/passwd- konfiguriert sind (Automatisiert)
- 6.1.7 Sicherstellen, dass die Berechtigungen auf /etc/shadow- konfiguriert sind (Automatisiert)
- 6.1.8 Sicherstellen, dass die Berechtigungen auf /etc/group- konfiguriert sind (Automatisiert)
- 6.1.9 Sicherstellen, dass die Berechtigungen auf /etc/gshadow konfiguriert sind (Automatisiert)
- 6.1.10 Sicherstellen, dass keine von der Welt beschreibbaren Dateien existieren (Automatisiert)
- 6.1.11 Sicherstellen, dass keine unbesessenen Dateien oder Verzeichnisse existieren (Automatisiert)
- 6.1.12 Sicherstellen, dass keine ungruppierten Dateien oder Verzeichnisse existieren (Automatisiert)
6.1.13 SUID-Programme prüfen (Manuell)6.1.14 SGID-Programme prüfen (Manuell)
6.2 Benutzer- und Gruppeneinstellungen
- 6.2.1 Sicherstellen, dass die Passwortfelder nicht leer sind (Automatisiert)
6.2.2 Sicherstellen, dass Root das einzige UID 0-Konto ist (Automatisiert)6.2.3 Sicherstellen, dass die Root-Pfad-Integrität gewährleistet ist (Automatisiert)- 6.2.4 Sicherstellen, dass alle Benutzer-Home-Verzeichnisse existieren (Automatisiert)
- 6.2.5 Sicherstellen, dass die Berechtigungen auf den Home-Verzeichnissen der Benutzer 750 oder restriktiver sind - (Automatisiert)
- 6.2.6 Sicherstellen, dass die Benutzer ihre Home-Verzeichnisse besitzen (Automatisiert)
- 6.2.7 Sicherstellen, dass die Dot-Dateien der Benutzer nicht gruppen- oder weltweit beschreibbar sind - (Automatisiert)
6.2.8 Sicherstellen, dass keine Benutzer .forward-Dateien besitzen (Automatisiert)6.2.9 Sicherstellen, dass keine Benutzer .netrc-Dateien besitzen (Automatisiert)6.2.10 Sicherstellen, dass die .netrc-Dateien der Benutzer nicht gruppen- oder weltweit zugänglich sind - (Automatisiert)6.2.11 Sicherstellen, dass keine Benutzer .rhosts-Dateien besitzen (Automatisiert)6.2.12 Sicherstellen, dass alle Gruppen in /etc/passwd in /etc/group existieren (Automatisiert)6.2.13 Sicherstellen, dass keine doppelten UIDs existieren (Automatisiert)6.2.14 Sicherstellen, dass keine doppelten GIDs existieren (Automatisiert)6.2.15 Sicherstellen, dass keine doppelten Benutzernamen existieren (Automatisiert)6.2.16 Sicherstellen, dass keine doppelten Gruppennamen existieren (Automatisiert)6.2.17 Sicherstellen, dass die Schatten-Gruppe leer ist (Automatisiert)
Fehlersuche
- Wenn Sie das Playbook auf demselben Computer ausführen möchten, stellen Sie sicher, dass Sie dies zur Ausführung der Aufgabe hinzufügen:
- hosts: 127.0.0.1
connection: local
- Wenn Sie Probleme beim Ausführen haben, versuchen Sie, das Playbook in einem anderen Pfad auszuführen, z.B.
/srv/
. - Bei Fehlern wie
stderr: chage: user 'ubuntu' does not exist in /etc/passed
, stellen Sie sicher, dass Sie die konfigurieren.
Lizenz
GNU GENERAL PUBLIC LICENSE
Autoreninformation
Die Rolle wurde ursprünglich von Ali Saleh Baker entwickelt.
Bitte besprechen Sie Änderungen, die Sie an diesem Repository vornehmen möchten, zunächst über ein GitHub-Ticket, per E-Mail oder über andere Kanäle mit mir :)
DevOps
ansible-galaxy install ryezone_labs.ansible_cis_ubuntu_2004