florianutz.ubuntu2004_cis

Ubuntu 20.04 CIS STIG

Build Status Ansible Role

Diese Rolle basiert auf der Migration von 18.04. Die Aufgaben sind inhaltlich korrekt, müssen jedoch neu sortiert werden, um dem 20.04 Benchmark zu entsprechen. Beiträge sind willkommen.

Konfigurieren Sie eine Ubuntu 20.04 Maschine, um CIS-konform zu sein. Befunde der Levels 1 und 2 werden standardmäßig korrigiert.

Diese Rolle wird Änderungen am System vornehmen, die Probleme verursachen können. Dies ist kein Auditing-Tool, sondern ein Remediations-Tool, das nach einer durchgeführten Prüfung verwendet werden sollte.

Basierend auf dem CIS Ubuntu Linux 20.04 LTS Benchmark - v1.0.0 - 21.07.2020.

Feedback

  • Wenn Sie unsere Arbeit mögen, aber nicht selbst zum Code der Rolle beitragen können, nehmen Sie sich bitte einen Moment Zeit, um sie in Ansible Galaxy zu bewerten. Dort können Sie den Entwicklern einfach ein positives Feedback geben. Galaxy Community Score
  • Wenn Sie einen Fehler in der Rolle finden, den Sie nicht selbst beheben können, erstellen Sie bitte ein Ticket mit so vielen Details wie möglich. Bedenken Sie bitte, dass alle Entwickler in ihrer Freizeit an dem Projekt arbeiten und es einige Zeit dauern kann, feedback zu erhalten. Issues Page

WICHTIGER INSTALLATIONSSCHRITT

Wenn Sie dies über den Befehl ansible-galaxy installieren möchten, müssen Sie es folgendermaßen ausführen:

ansible-galaxy install -p roles -r requirements.yml

Mit dieser Zeile in der Datei requirements.yml:

- src: https://github.com/florianutz/ubuntu2004_cis.git

Beispiel-Playbook

Unten finden Sie ein Beispiel-Playbook. Bitte lesen Sie die Dokumentation und prüfen Sie die Einstellungen für Ihren Fall. Zum Beispiel, die Standardeinstellungen deinstallieren den X-Server!

- name: Server härten
  hosts: servers
  become: ja

  roles:
    - ubuntu2004_cis

Um die Aufgaben in diesem Repository auszuführen, erstellen Sie zuerst diese Datei ein Verzeichnis über dem Repository (d.h. die Playbook .yml und das Verzeichnis ubuntu2004_cis sollten nebeneinander liegen), überprüfen Sie dann die Datei defaults/main.yml und deaktivieren Sie jede Regel/Abschnitt, den Sie nicht ausführen möchten.

Angenommen, Sie haben die Datei site.yml genannt, führen Sie sie mit folgendem Befehl aus:

ansible-playbook site.yml

Anforderungen

Sie sollten die Aufgaben sorgfältig durchlesen, um sicherzustellen, dass diese Änderungen Ihr System nicht beschädigen, bevor Sie dieses Playbook ausführen.

Rollenvariablen

Es gibt viele Rollenvariablen, die in defaults/main.yml definiert sind. Diese Liste zeigt die wichtigsten.

ubuntu2004cis_notauto: Führen Sie CIS-Überprüfungen durch, die wir normalerweise NICHT automatisieren möchten, da eine hohe Wahrscheinlichkeit besteht, dass das System beschädigt wird (Standard: false)

ubuntu2004cis_section1: CIS - Allgemeine Einstellungen (Abschnitt 1) (Standard: true)

ubuntu2004cis_section2: CIS - Diensteinstellungen (Abschnitt 2) (Standard: true)

ubuntu2004cis_section3: CIS - Netzwerkeinstellungen (Abschnitt 3) (Standard: true)

ubuntu2004cis_section4: CIS - Logging- und Auditing-Einstellungen (Abschnitt 4) (Standard: true)

ubuntu2004cis_section5: CIS - Zugriffs-, Authentifizierungs- und Autorisierungseinstellungen (Abschnitt 5) (Standard: true)

ubuntu2004cis_section6: CIS - Systemwartungseinstellungen (Abschnitt 6) (Standard: true)

Alle SELinux-Funktionen deaktivieren

ubuntu2004cis_selinux_disable: false

Dienstvariablen

Diese steuern, ob ein Server diese Dienste weiterhin ausführen soll oder nicht

ubuntu2004cis_avahi_server: false  
ubuntu2004cis_cups_server: false  
ubuntu2004cis_dhcp_server: false  
ubuntu2004cis_ldap_server: false  
ubuntu2004cis_telnet_server: false  
ubuntu2004cis_nfs_server: false  
ubuntu2004cis_rpc_server: false  
ubuntu2004cis_ntalk_server: false  
ubuntu2004cis_rsyncd_server: false  
ubuntu2004cis_tftp_server: false  
ubuntu2004cis_rsh_server: false  
ubuntu2004cis_nis_server: false  
ubuntu2004cis_snmp_server: false  
ubuntu2004cis_squid_server: false  
ubuntu2004cis_smb_server: false  
ubuntu2004cis_dovecot_server: false  
ubuntu2004cis_httpd_server: false  
ubuntu2004cis_vsftpd_server: false  
ubuntu2004cis_named_server: false  
ubuntu2004cis_allow_autofs: false

Server als Mail-Server festlegen

ubuntu2004cis_is_mail_server: false

Systemnetzwerkparameter (nur Host ODER Host und Router)

ubuntu2004cis_is_router: false

IPv6 erforderlich

ubuntu2004cis_ipv6_required: true

AIDE

ubuntu2004cis_config_aide: true

AIDE Cron-Einstellungen

ubuntu2004cis_aide_cron:
  cron_user: root
  cron_file: /etc/crontab
  aide_job: '/usr/sbin/aide --check'
  aide_minute: 0
  aide_hour: 5
  aide_day: '*'
  aide_month: '*'
  aide_weekday: '*'  

Setzen Sie 'true', wenn X Windows in Ihrer Umgebung benötigt wird

ubuntu2004cis_xwindows_required: no

Anforderungen an Clientanwendungen

ubuntu2004cis_openldap_clients_required: false
ubuntu2004cis_telnet_required: false
ubuntu2004cis_talk_required: false  
ubuntu2004cis_rsh_required: false
ubuntu2004cis_ypbind_required: false
ubuntu2004cis_rpc_required: false

Zeitsynchronisation

ubuntu2004cis_time_synchronization: chrony
ubuntu2004cis_time_synchronization: ntp

ubuntu2004cis_time_synchronization_servers:
  - uri: "0.pool.ntp.org"
    config: "minpoll 8"
  - uri: "1.pool.ntp.org"
    config: "minpoll 8"
  - uri: "2.pool.ntp.org"
    config: "minpoll 8"
  - uri: "3.pool.ntp.org"
    config: "minpoll 8"

- name: "SCORING | 1.1.5 | PATCH | Sicherstellen, dass die noexec-Option auf das /tmp-Partition gesetzt ist"

Es ist nicht implementiert, noexec für /tmp wird apt stören. /tmp enthält ausführbare Skripte während der Paketinstallation


1.5.3 | PATCH | Sicherstellen, dass eine Authentifizierung für den Einbenutzermodus erforderlich ist

Es ist standardmäßig deaktiviert, da ein zufälliges Passwort für root festgelegt wird. Um es zu aktivieren, setzen Sie:

ubuntu2004cis_rule_1_5_3: true

Um ein anderes als das zufällige Passwort zu verwenden:

ubuntu2004cis_root_password: 'neues Passwort'
ubuntu2004cis_firewall: firewalld
ubuntu2004cis_firewall: iptables

5.3.1 | PATCH | Sicherstellen, dass die Anforderungen für die Erstellung von Passwörtern konfiguriert sind

ubuntu2004cis_pwquality:
  - key: 'minlen'
    value: '14'
  - key: 'dcredit'
    value: '-1'
  - key: 'ucredit'
    value: '-1'
  - key: 'ocredit'
    value: '-1'
  - key: 'lcredit'
    value: '-1'

Abhängigkeiten

Entwickelt und getestet mit Ansible 2.10

Tags

Es sind viele Tags verfügbar, um präzise zu steuern, was geändert wird und was nicht.

Einige Beispiele für die Verwendung von Tags:

    # Audits und patches die Seite
    ansible-playbook site.yml --tags="patch"

Liste der Empfehlungen:

1 Erste Einrichtung

  • 1.1 Dateisystemkonfiguration
    • 1.1.1 Unbenutzte Dateisysteme deaktivieren
      • 1.1.1.1 Sicherstellen, dass das Mounten von cramfs-Dateisystemen deaktiviert ist (Automatisiert)
      • 1.1.1.2 Sicherstellen, dass das Mounten von freevxfs-Dateisystemen deaktiviert ist - (Automatisiert)
      • 1.1.1.3 Sicherstellen, dass das Mounten von jffs2-Dateisystemen deaktiviert ist (Automatisiert)
      • 1.1.1.4 Sicherstellen, dass das Mounten von hfs-Dateisystemen deaktiviert ist (Automatisiert)
      • 1.1.1.5 Sicherstellen, dass das Mounten von hfsplus-Dateisystemen deaktiviert ist - (Automatisiert)
      • 1.1.1.6 Sicherstellen, dass das Mounten von udf-Dateisystemen deaktiviert ist (Automatisiert)
      • 1.1.1.7 Sicherstellen, dass das Mounten von FAT-Dateisystemen begrenzt ist (Manuell)
    • 1.1.2 Sicherstellen, dass /tmp konfiguriert ist (Automatisiert)
    • 1.1.3 Sicherstellen, dass die nodev-Option auf die /tmp-Partition gesetzt ist (Automatisiert)
    • 1.1.4 Sicherstellen, dass die nosuid-Option auf die /tmp-Partition gesetzt ist (Automatisiert)
    • 1.1.5 Sicherstellen, dass die noexec-Option auf die /tmp-Partition gesetzt ist (Automatisiert)
    • 1.1.6 Sicherstellen, dass /dev/shm konfiguriert ist (Automatisiert)
    • 1.1.7 Sicherstellen, dass die nodev-Option auf die /dev/shm-Partition gesetzt ist (Automatisiert)
    • 1.1.8 Sicherstellen, dass die nosuid-Option auf die /dev/shm-Partition gesetzt ist (Automatisiert)
    • 1.1.9 Sicherstellen, dass die noexec-Option auf die /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 die /var/tmp-Partition gesetzt ist (Automatisiert)
    • 1.1.13 Sicherstellen, dass die nosuid-Option auf die /var/tmp-Partition gesetzt ist (Automatisiert)
    • 1.1.14 Sicherstellen, dass die noexec-Option auf die /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 die /home-Partition gesetzt ist (Automatisiert)
    • 1.1.19 Sicherstellen, dass die nodev-Option auf wechselbaren Medienpartitionen gesetzt ist (Manuell)
    • 1.1.20 Sicherstellen, dass die nosuid-Option auf wechselbaren Medienpartitionen gesetzt ist - (Manuell)
    • 1.1.21 Sicherstellen, dass die noexec-Option auf wechselbaren Medienpartitionen gesetzt ist - (Manuell)
    • 1.1.22 Sicherstellen, dass das sticky bit auf allen weltweit beschreibbaren Verzeichnissen gesetzt ist - (Automatisiert)
    • 1.1.23 Automatisches Mounten deaktivieren (Automatisiert)
    • 1.1.24 USB-Speicher deaktivieren (Automatisiert)
  • 1.2 Software-Updates konfigurieren
    • 1.2.1 Sicherstellen, dass die Paketmanager-Repositories konfiguriert sind (Manuell)
    • 1.2.2 Sicherstellen, dass die 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 Sudo-Logdatei existiert (Automatisiert)
  • 1.4 Überprüfung der Dateisystemintegrität
    • 1.4.1 Sicherstellen, dass AIDE installiert ist (Automatisiert)
    • 1.4.2 Sicherstellen, dass die Dateisystemintegrität regelmäßig überprüft wird (Automatisiert)
  • 1.5 Sicherheitsstart-Einstellungen
    • 1.5.1 Sicherstellen, dass ein Bootloader-Passwort festgelegt ist (Automatisiert)
    • 1.5.2 Sicherstellen, dass Berechtigungen auf der 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 XD/NX-Unterstützung aktiviert ist (Automatisiert)
    • 1.6.2 Sicherstellen, dass die zufällige Adressraum-Anordnung (ASLR) aktiviert ist - (Automatisiert)
    • 1.6.3 Sicherstellen, dass Prelink deaktiviert ist (Automatisiert)
    • 1.6.4 Sicherstellen, dass Core Dumps eingeschränkt sind (Automatisiert)
  • 1.7 verpflichtende 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 im Durchsetzungs- oder Beschwerdemodus sind - (Automatisiert)
      • 1.7.1.4 Sicherstellen, dass alle AppArmor-Profile durchgesetzt sind (Automatisiert)
  • 1.8 Warnbanner
    • 1.8.1 Warnbanner der Kommandozeile
      • 1.8.1.1 Sicherstellen, dass die Tagesnachricht ordnungsgemäß konfiguriert ist (Automatisiert)
      • 1.8.1.2 Sicherstellen, dass der lokale Anmeldewarnbanner ordnungsgemäß konfiguriert ist - (Automatisiert)
      • 1.8.1.3 Sicherstellen, dass der Remotewarnbanner ordnungsgemäß konfiguriert ist - (Automatisiert)
      • 1.8.1.4 Sicherstellen, dass Berechtigungen für /etc/motd konfiguriert sind (Automatisiert)
      • 1.8.1.5 Sicherstellen, dass Berechtigungen für /etc/issue konfiguriert sind (Automatisiert)
      • 1.8.1.6 Sicherstellen, dass Berechtigungen für /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 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 die Zeitsynchronisation 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 Mail Transfer Agent 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 Dienst-Clients
    • 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 werden (Manuell)

3 Netzwerkkonfiguration

  • 3.1 Unbenutzte Netzwerkprotokolle und -geräte deaktivieren
    • 3.1.1 IPv6 deaktivieren (Manuell)
    • 3.1.2 Sicherstellen, dass drahtlose Schnittstellen deaktiviert sind (Automatisiert)
  • 3.2 Netzwerkparameter (nur Host)
    • 3.2.1 Sicherstellen, dass das Senden von Paketumleitungen deaktiviert ist (Automatisiert)
    • 3.2.2 Sicherstellen, dass IP-Forwarding deaktiviert ist (Automatisiert)
  • 3.3 Netzwerkparameter (Host und Router)
    • 3.3.1 Sicherstellen, dass quellgeroutete Pakete nicht akzeptiert werden (Automatisiert)
    • 3.3.2 Sicherstellen, dass ICMP-Weiterleitungen nicht akzeptiert werden (Automatisiert)
    • 3.3.3 Sicherstellen, dass sichere ICMP-Weiterleitungen 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 falsche ICMP-Antworten ignoriert werden (Automatisiert)
    • 3.3.7 Sicherstellen, dass die Rückverfolgbarkeit 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 Unkomplizierte Firewall 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 der Loopback-Verkehr 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 Standard-Blockierende Firewall-Richtlinie vorhanden ist (Automatisiert)
    • 3.5.2 nftables konfigurieren
      • 3.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 geleert sind (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 der Loopback Verkehr konfiguriert ist (Automatisiert)
      • 3.5.2.7 Sicherstellen, dass ausgehende und etablierte Verbindungen konfiguriert sind - (Manuell)
      • 3.5.2.8 Sicherstellen, dass die Standard-Blockierende Firewall-Richtlinie vorhanden ist (Automatisiert)
      • 3.5.2.9 Sicherstellen, dass der nftables-Dienst aktiviert ist (Automatisiert)
      • 3.5.2.10 Sicherstellen, dass die nftables-Regeln permanent sind (Automatisiert)
    • 3.5.3 iptables konfigurieren
      • 3.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 Standard-Blockierende Firewall-Richtlinie vorhanden ist (Automatisiert)
      • 3.5.3.2.2 Sicherstellen, dass der Loopback Verkehr 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 IPv6-Standard-Blockierende Firewall-Richtlinie vorhanden ist (Automatisiert)
      • 3.5.3.3.2 Sicherstellen, dass der IPv6-Loopback-Verkehr konfiguriert ist (Automatisiert)
      • 3.5.3.3.3 Sicherstellen, dass die IPv6-ausgehenden und etablierten Verbindungen - konfiguriert sind (Manuell)
      • 3.5.3.3.4 Sicherstellen, dass Firewall-Regeln für alle offenen IPv6-Ports existieren - (Manuell)

4 Logging und Auditing

  • 4.1 Systembuchhaltung konfigurieren (auditd)
    • 4.1.1 Sicherstellen, dass das Auditing 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 Audits für Prozesse, die vor auditd gestartet werden, aktiviert sind - (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 Auditprotokolls 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 wird, wenn die Audit-Protokolle voll sind - (Automatisiert)
    • 4.1.3 Sicherstellen, dass Ereignisse, die Datum- und Uhrzeitinformationen ä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 Netzwerkumgebung des Systems ändern, - erfasst werden (Automatisiert)
    • 4.1.6 Sicherstellen, dass Ereignisse, die die verpflichtenden Zugangskontrollen des Systems ändern, erfasst werden (Automatisiert)
    • 4.1.7 Sicherstellen, dass Anmelde- und Abmeldeereignisse erfasst werden (Automatisiert)
    • 4.1.8 Sicherstellen, dass Informationen zur Sitzungsinitiation erfasst werden (Automatisiert)
    • 4.1.9 Sicherstellen, dass Ereignisse zur Änderung der Berechtigungen der Ermessenszugangsteuerung erfasst werden (Automatisiert)
    • 4.1.10 Sicherstellen, dass erfolglose, unbefugte Datei-Zugriffsversuche erfasst werden (Automatisiert)
    • 4.1.11 Sicherstellen, dass die Verwendung von privilegierten Befehlen erfasst wird (Automatisiert)
    • 4.1.12 Sicherstellen, dass erfolgreiche Dateisystem-Mounts erfasst werden (Automatisiert)
    • 4.1.13 Sicherstellen, dass Datei-Löschereignisse durch Benutzer erfasst werden (Automatisiert)
    • 4.1.14 Sicherstellen, dass Änderungen am Administratorbereich des Systems (sudoers) erfasst werden (Automatisiert)
    • 4.1.15 Sicherstellen, dass die Ausführung von Administrationsbefehlen (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 Logging 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 das Logging konfiguriert ist (Manuell)
      • 4.2.1.4 Sicherstellen, dass die Standarddateiberechtigungen für 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 akzeptiert 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 persistenten Datenträgern gespeichert werden (Automatisiert)
    • 4.2.3 Sicherstellen, dass die Berechtigungen für alle Protokolldateien konfiguriert sind (Automatisiert)
  • 4.3 Sicherstellen, dass logrotate konfiguriert ist (Manuell)
  • 4.4 Sicherstellen, dass logrotate angemessene Berechtigungen zuweist (Automatisiert)

5 Zugriff, Authentifizierung und Autorisierung

  • 5.1 Zeitgesteuerte Aufgabenscheduler konfigurieren
    • 5.1.1 Sicherstellen, dass der Cron-Daemon aktiviert und aktiv ist (Automatisiert)
    • 5.1.2 Sicherstellen, dass Berechtigungen für /etc/crontab konfiguriert sind (Automatisiert)
    • 5.1.3 Sicherstellen, dass Berechtigungen für /etc/cron.hourly konfiguriert sind - (Automatisiert)
    • 5.1.4 Sicherstellen, dass Berechtigungen für /etc/cron.daily konfiguriert sind - (Automatisiert)
    • 5.1.5 Sicherstellen, dass Berechtigungen für /etc/cron.weekly konfiguriert sind - (Automatisiert)
    • 5.1.6 Sicherstellen, dass Berechtigungen für /etc/cron.monthly konfiguriert sind - (Automatisiert)
    • 5.1.7 Sicherstellen, dass Berechtigungen für /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-Privat-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 die SSH Host-basiertene Authentifizierung deaktiviert ist (Automatisiert)
    • 5.2.9 Sicherstellen, dass die Anmeldung mit SSH root deaktiviert ist (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 Cipher verwendet werden (Automatisiert)
    • 5.2.13 Sicherstellen, dass nur starke MAC-Algorithmen verwendet werden (Automatisiert)
    • 5.2.14 Sicherstellen, dass nur starke Schlüssel-Austausch-Algorithmen verwendet werden - (Automatisiert)
    • 5.2.15 Sicherstellen, dass das SSH Idle Timeout-Intervall konfiguriert ist (Automatisiert)
    • 5.2.16 Sicherstellen, dass die SSH LoginGraceTime auf eine Minute oder weniger gesetzt ist - (Automatisiert)
    • 5.2.17 Sicherstellen, dass der SSH-Zugriff eingeschränkt ist (Automatisiert)
    • 5.2.18 Sicherstellen, dass der 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 die SSH MaxSessions begrenzt ist (Automatisiert)
  • 5.3 PAM konfigurieren
    • 5.3.1 Sicherstellen, dass die Anforderungen für die Erstellung von Passwörtern konfiguriert sind - (Automatisiert)
    • 5.3.2 Sicherstellen, dass eine Sperre bei fehlgeschlagenen Passwortversuchen konfiguriert ist - (Automatisiert)
    • 5.3.3 Sicherstellen, dass die Wiederverwendung von Passwörtern eingeschränkt ist (Automatisiert)
    • 5.3.4 Sicherstellen, dass der Passwort-Hash-Algorithmus SHA-512 ist (Automatisiert)
  • 5.4 Benutzerkonten und -umgebungen
    • 5.4.1 Parameter der Shadow-Passwortsuite setzen
      • 5.4.1.1 Sicherstellen, dass die Passwortablaufzeit 365 Tage oder weniger beträgt (Automatisiert)
      • 5.4.1.2 Sicherstellen, dass die Mindesttage zwischen Passwortänderungen konfiguriert sind - (Automatisiert)
      • 5.4.1.3 Sicherstellen, dass die Anzahl der Warn-Tage für den Ablauf von Passwörtern 7 oder mehr ist - (Automatisiert)
      • 5.4.1.4 Sicherstellen, dass die Inaktivitäts-Passwortsperre 30 Tage oder weniger beträgt (Automatisiert)
      • 5.4.1.5 Sicherstellen, dass das letzte Passwortänderungsdatum aller 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 der Standardbenutzer umask 027 oder restriktiver ist - (Automatisiert)
    • 5.4.5 Sicherstellen, dass der Standardbenutzer-Shell-Timeout 900 Sekunden oder weniger beträgt - (Automatisiert)
  • 5.5 Sicherstellen, dass die root-Anmeldung 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 Systemdateiberechtigungen
    • 6.1.1 Audit-Systemdateiberechtigungen (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 weltweit beschreibbaren Dateien existieren (Automatisiert)
    • 6.1.11 Sicherstellen, dass keine unbesessenen Dateien oder Verzeichnisse existieren (Automatisiert)
    • 6.1.12 Sicherstellen, dass keine ungeregelten Dateien oder Verzeichnisse existieren (Automatisiert)
    • 6.1.13 Audit SUID-Ausführungsdateien (Manuell)
    • 6.1.14 Audit SGID-Ausführungsdateien (Manuell)
  • 6.2 Benutzer- und Gruppen-Einstellungen
    • 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 PATH-Integrität gewahrt bleibt (Automatisiert)
    • 6.2.4 Sicherstellen, dass alle Benutzer-Heimverzeichnisse existieren (Automatisiert)
    • 6.2.5 Sicherstellen, dass die Berechtigungen der Benutzer-Heimverzeichnisse 750 oder restriktiver sind (Automatisiert)
    • 6.2.6 Sicherstellen, dass die Benutzer ihre Heimverzeichnisse besitzen (Automatisiert)
    • 6.2.7 Sicherstellen, dass die Dot-Dateien der Benutzer nicht gruppen- oder weltbeschreibbar sind - (Automatisiert)
    • 6.2.8 Sicherstellen, dass keine Benutzer .forward-Dateien haben (Automatisiert)
    • 6.2.9 Sicherstellen, dass keine Benutzer .netrc-Dateien haben (Automatisiert)
    • 6.2.10 Sicherstellen, dass die .netrc-Dateien der Benutzer nicht gruppen- oder weltzugänglich sind - (Automatisiert)
    • 6.2.11 Sicherstellen, dass keine Benutzer .rhosts-Dateien haben (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)

Lizenz

MIT

andere

Dieses Repo stammt von der Arbeit, die von MindPointGroup geleistet wurde.

Über das Projekt

Ansible role to apply Ubuntu 20.04 CIS Baseline

Installieren
ansible-galaxy install florianutz.ubuntu2004_cis
Lizenz
mit
Downloads
7.9k
Besitzer