
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:
# sed -i '/^[^#].*pam_wheel.so.*/s/^/# &/' /etc/pam.d/su
Commenta temporaneamente la riga contenente pam_wheel.so. Dopo aver finito di usare il comando su, per favore decommenta la riga.
# echo "ALL: 192.168.1. 192.168.5." >> /etc/hosts.allow
Questo esempio consente solo a 192.168.1.[1-255] e 192.168.5.[1-255] di accedere a questo sistema. Deve essere configurato in base alla propria situazione.
# sed -i "/^root/a\test ALL=(ALL:ALL) ALL" /etc/sudoers
etc.iptables.rules.v4.sh Prima installa il pacchetto iptables-persistent, poi esegui quanto segue:
$ INTERFACENAME="your network interfacename(Example eth0)"
# bash docs/configurations/etc.iptables.rules.v4.sh $INTERFACENAME
# iptables-save > /etc/iptables/rules.v4
# ip6tables-save > /etc/iptables/rules.v6
nftables.conf esegui quanto segue (nome interfaccia di rete (Esempio eth0)):
$ sed -i 's/^define int_if = ens33/define int_if = eth0/g' etc.nftables.conf
# nft -f ./etc.nftables.conf
# bin/hardening.sh --final
Alcuni elementi di controllo verificano una varietà di situazioni e sono interdipendenti, devono essere applicati (corretti) più volte, e il sistema operativo deve essere riavviato dopo ogni applicazione (correzione).
8.1.35 Poiché questo elemento è impostato, le regole di audit non verranno aggiunte.
8.4.1
8.4.2
Questi sono tutti relativi ad aide. È meglio correggere tutti gli elementi dopo essere stati corretti per riparare l'integrità del database nel sistema.
4.5
Ottenere il codice sorgente
$ git clone https://github.com/hardenedlinux/harbian-audit.git
Aggiungere uno script di hardening personalizzato
$ cp src/skel bin/hardening/99.99_custom_script.sh
$ chmod +x bin/hardening/99.99_custom_script.sh
$ cp src/skel.cfg etc/conf.d/99.99_custom_script.cfg
Scrivi il tuo controllo spiegando cosa fa, poi se vuoi testare
$ sed -i "s/status=.+/status=enabled/" etc/conf.d/99.99_custom_script.cfg
$ bash bin/hardening.sh --audit --only 99.99
$ bash bin/hardening.sh --apply --only 99.99
Questo documento è una descrizione delle aggiunte alle sezioni non incluse nella documentazione di riferimento CIS. Include la documentazione di riferimento STIG e i controlli aggiuntivi raccomandati dalla comunità HardenedLinux.
CIS Debian GNU/Linux 8 Benchmark v1.0.0
CIS Debian GNU/Linux 9 Benchmark v1.0.0
harbian audit Debian Linux 9 Benchmark
Come configurare la protezione con password di grub2
Come rendere persistenti le regole iptables con Debian 9
Come distribuire audisp-remote per il log di auditd
Come migrare da iptables a nftables in Debian 10
Come rendere persistenti le regole nft con Debian 10
Come risolvere i permessi negati di SELinux
Demo Nodejs + redis + mysql
Distribuire hyperledger-cello su Debian 9
Proxy http SSL reciproco con nginx
Proxy tcp-udp SSL reciproco con nginx
Come creare e rendere pubblica una AMI
Come utilizzare l'immagine conforme a harbian-audit per GNU/Linux Debian 9
Come creare un'immagine QEMU di Debian GNU/Linux 9 conforme a harbian-audit
Come utilizzare l'immagine QEMU di Debian GNU/Linux 9 conforme a harbian-audit
GPL 3.0
Questo progetto è un insieme di strumenti. Sono pensati per aiutare l'amministratore di sistema a costruire un ambiente sicuro. Sebbene lo utilizziamo in OVH per indurire la nostra infrastruttura conforme PCI-DSS, non possiamo garantire che funzioni per te. Non metterà magicamente in sicurezza un host qualsiasi.
Inoltre, citando la licenza:
QUESTO SOFTWARE È FORNITO DA OVH SAS E DAI CONTRIBUTORI "COSÌ COM'È" E QUALSIASI GARANZIA ESPLICITA O IMPLICITA, INCLUSIVE, MA NON LIMITATE A, LE GARANZIE IMPLICITE DI COMMERCIABILITÀ E IDONEITÀ PER UN PARTICOLARE SCOPO SONO DECLINATE. IN NESSUN CASO OVH SAS E I CONTRIBUTORI SARANNO RESPONSABILI PER QUALSIASI DANNO DIRETTO, INDIRETTO, INCIDENTALE, SPECIALE, ESEMPLARE O CONSEQUENZIALE (INCLUSI, MA NON LIMITATI A, ACQUISTO DI BENI O SERVIZI SOSTITUTIVI; PERDITA DI UTILIZZO, DATI O PROFITTI; O INTERRUZIONE DELL'ATTIVITÀ) DERIVANTE IN QUALSIASI MODO DALL'USO DI QUESTO SOFTWARE, ANCHE SE AVVISATI DELLA POSSIBILITÀ DI TALI DANNI.
3-Clause BSD