
Auditing di distribuzioni Debian GNU/Linux rafforzate
Auditing di distribuzioni Debian GNU/Linux e CentOS 8 hardened.
L'ambiente di test principale è su Debian GNU/Linux 9/10/11/12/13, CentOS 8 e Ubuntu 22; le altre versioni non sono state testate completamente. Non ci sono implementazioni di elementi relativi al desktop in questa versione.
Il framework del codice è basato sul progetto OVH-debian-cis, sono state modificate alcune implementazioni originali in base alle caratteristiche di Debian 9/10/11/12/13 e CentOS 8, sono state aggiunte e implementate voci di controllo per STIG Red_Hat_Enterprise_Linux_7_V2R5 STIG Ubuntu V1R2 e le raccomandazioni di cisecurity.org, e sono state anche aggiunte e implementate alcune voci di controllo dalla comunità HardenedLinux. Sono implementate le funzioni di audit e applicazione dell'infrastruttura, e la funzione di correzione automatica è implementata per gli elementi che possono essere corretti automaticamente.
# 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
[...]
Se si utilizza un'installazione di rete da un CD minimale per installare Debian GNU/Linux, è necessario installare i pacchetti prima di utilizzare lo strumento di hardening.
# apt-get install -y bc net-tools pciutils network-manager
Redhat/CentOS richiede l'installazione dei pacchetti prima di utilizzare lo strumento di hardening:
# yum install -y bc net-tools pciutils NetworkManager epel-release
È necessario impostare una password per tutti gli utenti prima dell'hardening. Altrimenti, non sarà possibile accedere dopo il completamento dell'hardening. Esempio (utente OS: root e test):
# passwd
# passwd test
Gli script di hardening si trovano in bin/hardening. Ogni script ha un file di configurazione corrispondente in etc/conf.d/[script_name].cfg.
Ogni script di hardening può essere abilitato singolarmente dal suo file di configurazione. Ad esempio, questo è il file di configurazione predefinito per disable_system_accounts:
# Configuration for script of same name
status=disabled
# Put here your exceptions concerning admin accounts shells separated by spaces
EXCEPTIONS=""
Il parametro status può assumere 3 valori:
disabled (non fa nulla): Lo script non verrà eseguito.audit (sola lettura): Lo script verificherà se eventuali modifiche dovrebbero essere applicate.enabled (lettura/scrittura): Lo script verificherà se eventuali modifiche devono essere fatte e applicherà automaticamente ciò che può.È anche possibile impostare l'elemento di configurazione per abilitarlo modificando il livello, con il seguente comando:
# bash bin/hardening.sh --audit-all
# bash bin/hardening.sh --set-hardening-level <level>
La configurazione globale si trova in etc/hardening.cfg. Questo file controlla il livello di log e la directory di backup. Ogni volta che a uno script viene ordinato di modificare un file, creerà un backup con timestamp in questa directory.
Per eseguire i controlli e applicare le correzioni, esegui bin/hardening.sh.
Questo comando ha 2 modalità operative principali:
--audit: Esegui l'audit del sistema con tutti gli script abilitati e in modalità audit--apply: Esegui l'audit del sistema con tutti gli script abilitati e in modalità audit e applica le modifiche per gli script abilitatiInoltre, --audit-all può essere utilizzato per forzare l'esecuzione di tutti gli script di audit, compresi quelli disabilitati. Questo non modificherà il sistema.
--audit-all-enable-passed può essere utilizzato come un modo rapido per avviare la configurazione. Eseguirà tutti gli script in modalità audit. Se uno script supera il test, verrà automaticamente abilitato per le esecuzioni future. NON utilizzare questa opzione se hai già iniziato a personalizzare la configurazione.
Utilizza il comando per hardenizzare il tuo sistema operativo:
# bash bin/hardening.sh --apply
Se si utilizza rsyslog e si desidera stampare il log di harbian-audit in un file di log separato, la configurazione è la seguente:
user.info /var/log/harbian-audit.log
user.* -/var/log/user.log
Il log verrà emesso nel file /var/log/harbian-audit.log.
Se applichi docs/configurations/etc.iptables.rules.v4.sh alle tue regole firewall e desideri stampare il log di iptables in un file di log separato, inserisci le seguenti righe in rsyslog.conf:
:msg,contains,"FW-" -/var/log/firewalllog.log
& stop
Quando si esegue --apply e set-hardening-level è impostato a 5 (il livello più alto), è necessario eseguire le seguenti operazioni: