
Gehärtetes Debian GNU/Linux-Distributionsaudit
Audit von gehärteten Debian GNU/Linux- und CentOS 8-Distributionen.
Die Haupttestumgebung ist Debian GNU/Linux 9/10/11/12/13, CentOS 8 und Ubuntu 22. Andere Versionen wurden nicht vollständig getestet. In dieser Version gibt es keine Implementierungen von Desktop-bezogenen Elementen.
Der Code-Rahmen basiert auf dem Projekt OVH-debian-cis. Einige der ursprünglichen Implementierungen wurden an die Besonderheiten von Debian 9/10/11/12/13 und CentOS 8 angepasst. Prüfpunkte für STIG Red_Hat_Enterprise_Linux_7_V2R5, STIG Ubuntu V1R2 und die Empfehlungen von cisecurity.org wurden hinzugefügt und implementiert, ebenso einige Prüfpunkte der HardenedLinux-Community. Die Audit- und Anwendungsfunktionen der Infrastruktur sind implementiert, und für die Punkte, die automatisch behoben werden können, wurde die automatische Korrekturfunktion implementiert.
# bash bin/hardening.sh --audit-all
[...]
hardening [INFO] Treating /home/test/harbian-audit/bin/hardening/13.15_check_duplicate_gid.sh
13.15_check_duplicate_gid [INFO] Working on 13.15_check_duplicate_gid
13.15_check_duplicate_gid [INFO] Checking Configuration
13.15_check_duplicate_gid [INFO] Performing audit
13.15_check_duplicate_gid [ OK ] No duplicate GIDs
13.15_check_duplicate_gid [ OK ] Check Passed
[...]
################### SUMMARY ###################
Total Available Checks : 271
Total Checks Run : 271
Total Passed Checks : [ 226/271 ]
Total Failed Checks : [ 44/271 ]
Enabled Checks Percentage : 100.00 %
Conformity Percentage : 83.39 %
$ git clone https://github.com/hardenedlinux/harbian-audit.git && cd harbian-audit
# cp etc/default.cfg /etc/default/cis-hardening
# sed -i "s#CIS_ROOT_DIR=.*#CIS_ROOT_DIR='$(pwd)'#" /etc/default/cis-hardening
# bin/hardening.sh --init
# bin/hardening.sh --audit-all
hardening [INFO] Treating /home/test/harbian-audit/bin/hardening/1.1_install_updates.sh
1.1_install_updates [INFO] Working on 1.1_install_updates
1.1_install_updates [INFO] Checking Configuration
1.1_install_updates [INFO] Performing audit
1.1_install_updates [INFO] Checking if apt needs an update
1.1_install_updates [INFO] Fetching upgrades ...
1.1_install_updates [ OK ] No upgrades available
1.1_install_updates [ OK ] Check Passed
[...]
################### SUMMARY ###################
Total Available Checks : 284
Total Checks Run : 284
Total Passed Checks : [ 260/284 ]
Total Failed Checks : [ 24/284 ]
Enabled Checks Percentage : 100.00 %
Conformity Percentage : 91.55 %
# bin/hardening.sh --set-hardening-level 5
# bin/hardening.sh --apply
hardening [INFO] Treating /home/test/harbian-audit/bin/hardening/1.1_install_updates.sh
1.1_install_updates [INFO] Working on 1.1_install_updates
1.1_install_updates [INFO] Checking Configuration
1.1_install_updates [INFO] Performing audit
1.1_install_updates [INFO] Checking if apt needs an update
1.1_install_updates [INFO] Fetching upgrades ...
1.1_install_updates [ OK ] No upgrades available
1.1_install_updates [INFO] Applying Hardening
1.1_install_updates [ OK ] No Upgrades to apply
1.1_install_updates [ OK ] Check Passed
[...]
Wenn Sie eine Netzwerkinstallation von einer minimalen CD für die Installation von Debian GNU/Linux verwenden, müssen Sie vor der Verwendung des Härtungstools Pakete installieren.
# apt-get install -y bc net-tools pciutils network-manager
Redhat/CentOS benötigen vor der Verwendung des Härtungstools Paketinstallationen:
# yum install -y bc net-tools pciutils NetworkManager epel-release
Sie müssen vor der Härtung für alle Benutzer ein Passwort festlegen. Andernfalls können Sie sich nach Abschluss der Härtung nicht anmelden. Beispiel (OS-Benutzer: root und test):
# passwd
# passwd test
Die Härtungsskripte befinden sich in bin/hardening. Jedes Skript hat eine entsprechende Konfigurationsdatei in etc/conf.d/[script_name].cfg.
Jedes Härtungsskript kann über seine Konfigurationsdatei individuell aktiviert werden. Zum Beispiel ist dies die Standardkonfigurationsdatei für disable_system_accounts:
# Configuration for script of same name
status=disabled
# Put here your exceptions concerning admin accounts shells separated by spaces
EXCEPTIONS=""
Der Parameter status kann drei Werte annehmen:
disabled (nichts tun): Das Skript wird nicht ausgeführt.audit (RO): Das Skript prüft, ob eine Änderung angewendet werden sollte.enabled (RW): Das Skript prüft, ob eine Änderung vorgenommen werden sollte, und wendet automatisch an, was möglich ist.Sie können das Konfigurationselement auch aktivieren, indem Sie die Stufe ändern, mit folgendem Befehl:
# bash bin/hardening.sh --audit-all
# bash bin/hardening.sh --set-hardening-level <level>
Die globale Konfiguration befindet sich in etc/hardening.cfg. Diese Datei steuert die Protokollstufe sowie das Sicherungsverzeichnis. Wenn ein Skript angewiesen wird, eine Datei zu bearbeiten, wird es eine mit Zeitstempel versehene Sicherung in diesem Verzeichnis erstellen.
Um die Prüfungen durchzuführen und die Korrekturen anzuwenden, führen Sie bin/hardening.sh aus.
Dieser Befehl hat zwei Hauptbetriebsmodi:
--audit: Überprüfen Sie Ihr System mit allen aktivierten Skripten im Audit-Modus--apply: Überprüfen Sie Ihr System mit allen aktivierten Skripten im Audit-Modus und wenden Sie Änderungen für aktivierte Skripte anZusätzlich kann --audit-all verwendet werden, um die Ausführung aller Auditskripte zu erzwingen, einschließlich der deaktivierten. Dies wird das System nicht ändern.
--audit-all-enable-passed kann als schneller Weg zur Inbetriebnahme Ihrer Konfiguration verwendet werden. Es führt alle Skripte im Audit-Modus aus. Wenn ein Skript bestanden wird, wird es automatisch für zukünftige Läufe aktiviert. Verwenden Sie diese Option NICHT, wenn Sie bereits mit der Anpassung Ihrer Konfiguration begonnen haben.
Verwenden Sie den Befehl, um Ihr Betriebssystem zu härten:
# bash bin/hardening.sh --apply
Wenn rsyslog verwendet wird und Sie das harbian-audit-Protokoll in eine separate Protokolldatei ausgeben möchten, lautet die Konfiguration wie folgt:
user.info /var/log/harbian-audit.log
user.* -/var/log/user.log
Das Protokoll wird in die Datei /var/log/harbian-audit.log ausgegeben.
Wenn Sie docs/configurations/etc.iptables.rules.v4.sh auf Ihre Firewall-Regeln anwenden und das iptables-Protokoll in eine separate Protokolldatei ausgeben möchten, fügen Sie die folgenden Zeilen in die rsyslog.conf ein:
:msg,contains,"FW-" -/var/log/firewalllog.log
& stop
Wenn Sie --apply ausführen und set-hardening-level auf 5 (die höchste Stufe) gesetzt ist, müssen Sie Folgendes tun: