SELinux

SELinux per principianti che utilizzano CentOS

SELinux per principianti che utilizzano CentOS
Sviluppato dalla NSA per prevenire accessi dannosi e intrusioni, Security-Enhanced Linux o SELinux è una funzionalità di controllo degli accessi avanzata fornita con la maggior parte delle moderne distribuzioni Linux. SELinux è definito come il sistema di controllo degli accessi obbligatorio (MAC) sviluppato in sostituzione del sistema di controllo degli accessi discrezionali (DAC).

SELinux può sembrare scoraggiante e molto difficile da implementare nella maggior parte dei sistemi moderni. Tuttavia, la configurazione di SELinux ha enormi vantaggi sia nell'applicazione della sicurezza che nella risoluzione dei problemi.

Questo tutorial discuterà vari concetti implementati da SELinux ed esplorerà vari metodi pratici per implementare SELinux.

NOTA: prima di iniziare, è bene utilizzare i comandi in questo tutorial come utente root o come utente all'interno del gruppo sudoers.

Installa i pacchetti SELinux

Installiamo vari pacchetti SELinux, che a loro volta aiuteranno a lavorare con le politiche SELinux.

Prima di procedere con l'installazione dei pacchetti SELinux, è bene verificare quali sono installati sul sistema attuale.

Nella maggior parte delle installazioni delle distribuzioni REHL, alcuni pacchetti sono installati per impostazione predefinita. Questi pacchetti includono:

  1. setools: questo pacchetto viene utilizzato per monitorare i log, interrogare le policy e gestire i file di contesto.
  2. policycoreutils-python - fornisce utilità di base Python per la gestione di SELinux
  3. policycoreutils - questo pacchetto fornisce anche utilità per la gestione di SELinux.
  4. mcstrans - mcstrans fornisce il demone di traduzione SELinux, che traduce vari livelli in formati semplici che possono essere compresi facilmente.
  5. setools-console - simile a setools.
  6. Selinux-policy - fornisce un riferimento per la configurazione della politica SELinux
  7. Selinux-policy-targeted - simile a SELinux-policy
  8. Libselinux-utils - SELinux utilità libselinux che aiutano a gestire SELinux
  9. Setroubleshoot-server - strumenti per la risoluzione dei problemi SELinux

Per verificare quali pacchetti sono già installati sul tuo sistema, puoi usare il comando rpm -qa e reindirizzare il risultato a grep per SELinux come:

rpm -qa | grep selinux
libselinux-utils-2.9-4.el8_3.x86_64
rpm-plugin-selinux-4.14.3-4.el8.x86_64
selinux-policy-targeted-3.14.3-54.el8_3.2.noarca
python3-libselinux-2.9-4.el8_3.x86_64
selinux-policy-3.14.3-54.el8_3.2.noarca
libselinux-2.9-4.el8_3.x86_64

Questo dovrebbe darti un output di tutti i pacchetti installati per il supporto SELinux

Se non tutti i pacchetti SELinux sono installati sul tuo sistema, usa yum per installarli come mostrato nel comando seguente:

yum install policycoreutils policycoreutils-python-utils selinux-policy selinux-policy-targeted libselinux-utils setroubleshoot-server setools setools-console mcstrans

Modalità e stati di SELinux

Iniziamo ora a giocare con SELinux, in particolare, le modalità SELinux.

Modalità SELinux

Quando abilitato, SELinux può avere tre possibili modalità:

Modalità di applicazione

Se la modalità SELinux viene applicata, assicurerà che nessun accesso non autorizzato al sistema da parte di utenti o processi sia negato. La modalità di applicazione mantiene anche i registri di eventuali tentativi di accesso non autorizzato.

Modalità Permissiva

La modalità permissiva si comporta come uno stato SELinux parzialmente abilitato. In questa modalità, nessun accesso viene negato poiché SELinux non applica le sue politiche in questa modalità. Tuttavia, la modalità permissiva mantiene un registro di qualsiasi tentativo di violazione della politica policy. Questa modalità è molto efficiente per i test prima di abilitarla completamente poiché utenti e componenti possono ancora interagire con il sistema ma continuano a raccogliere i registri. Ciò ti consente di mettere a punto il tuo sistema nel modo che ritieni opportuno.

Modalità disabilitata

La modalità disabilitata può anche essere vista come uno stato disabilitato in cui SELinux è disabilitato e non offre alcuna Sicurezza.

Stati di SELinux

Una volta installato SELinux su un sistema. Può avere stati binari: abilitato e disabilitato. Per visualizzare lo stato di SELinux, utilizzare il comando:

getenforce
Disabilitato

L'output sopra indica che SELinux è attualmente disabilitato.

Puoi anche usare il comando sestatus come mostrato di seguito:

sestatus
Stato SELinux: disabilitato

Abilita e disabilita SELinux

Gli stati e la configurazione di SELinux sono gestiti dal file di configurazione che si trova in /etc/selinux/config. Puoi usare il comando cat per visualizzarne il contenuto.

cat /etc/selinux/config
#Questo file controlla lo stato di SELinux sul sistema.
#SELINUX= può assumere uno di questi tre valori:
#enforcing - Viene applicata la politica di sicurezza di SELinux.
#permissive - SELinux stampa gli avvisi invece di applicarli.
#disabled - Nessuna policy SELinux è stata caricata.
SELINUX=applicare
#SELINUXTYPE= può assumere uno di questi tre valori:
# mirato - I processi mirati sono protetti,
# minimo - Modifica della politica mirata. Solo i processi selezionati sono protetti.
# mls - Protezione multilivello di sicurezza.
SELINUXTYPE=mirato

Dall'output sopra, abbiamo due direttive principali abilitate. La direttiva SELINUX ha specificato la modalità in cui è configurato SELinux. La direttiva SELINUXTYPE specifica il set di politiche SELinux. Per impostazione predefinita, SELinux utilizza una policy mirata che consente di personalizzare i permessi di controllo degli accessi. L'altro criterio è la sicurezza multilivello o MLS.

Potresti trovare una politica minima in alcune versioni.

cd /etc/selinux/
[ls -l
totale 4
-rw-r--r-- 1 root root 548 16 feb 22:40 config
drwxr-xr-x 1 radice radice 4096 16 feb 22:43 ml
-rw-r--r-- 1 radice radice 2425 21 luglio 2020 semanage.conf
drwxr-xr-x 1 root root 4096 16 feb 22:40 mirato

Vediamo ora come abilitare SELinux sul sistema. Si consiglia di impostare prima la modalità SELINUX su permissiva e non imposta not.

nano /etc/selinux/config

Ora modifica la direttiva SELINUX come:

SELINUX=permissivo

Una volta salvato il file, riavvia il sistema.

riavviare

NOTA: Si consiglia vivamente di impostare la direttiva SELINUX su permissive prima di applicare SELinux.

Una volta riavviato il sistema, controlla eventuali log segnalati da SELinux in /var/log/messages.

Quindi, assicurati di non avere errori e applica SELinux impostando la direttiva da applicare in /etc/selinux/config

Infine, puoi visualizzare lo stato di SELinux usando il comando sestatus:

Stato SELinux: abilitato
SELinuxfs mount: /sys/fs/selinux
Directory principale di SELinux: /etc/selinux
Nome criterio caricato: mirato
Modalità corrente: applicazione
Modalità dal file di configurazione: errore (successo)
Stato della policy MLS: abilitato
Stato criterio negato_sconosciuto: consentito
Controllo della protezione della memoria: effettivo (sicuro)
Versione massima della politica del kernel: 31

Puoi anche usare il comando setenforce per passare da una modalità all'altra di SELinux. Ad esempio, per impostare la modalità su permissiva, utilizzare il comando:

setenforce permissivo

Questa modalità è temporanea e verrà ripristinata su una nel file di configurazione dopo un riavvio.

sestatus Stato SELinux: abilitato
SELinuxfs mount: /sys/fs/selinux
Directory principale di SELinux: /etc/selinux
Nome criterio caricato: mirato
Modalità corrente: permissiva
Modalità dal file di configurazione: enforcing
Stato della policy MLS: abilitato
Stato criterio negato_sconosciuto: consentito
Controllo della protezione della memoria: effettivo (sicuro)
Versione massima della politica del kernel: 31

Politica e contesto di SELinux

Per evitare confusione per i principianti di SELinux, non approfondiremo come vengono implementate le politiche di SELinux, ma semplicemente lo toccheremo per darti un'idea.

SELinux funziona implementando politiche di sicurezza. Una politica SELinux si riferisce a una regola che viene utilizzata per definire i diritti di accesso per ogni oggetto nel sistema. Gli oggetti si riferiscono a utenti, processi, file e ruoli.

Ogni contesto è definito sotto forma di utente:ruolo:tipo:livello.

Ad esempio, crea una directory nella tua home directory e visualizza il suo contesto di sicurezza SELinux come mostrato nei comandi seguenti:

mkdir ~/linuxhint_dir
ls -Z ~/ | grep linuxhint

Questo visualizzerà l'output come mostrato di seguito:

unconfined_u:object_r:user_home_t:s0 linuxhint_dir

Puoi anche trovare altre directory con i contesti di sicurezza come:

sistema:_u:object_r:user_home_t:s0

Potresti realizzare che l'output sopra segue la sintassi di user:role:type:level.

Conclusione

Quello era un tutorial per principianti su SELinux usando CentOS 8. Sebbene il tutorial sia progettato per i principianti, è più che sufficiente per far funzionare i piedi in SELinux e rimuovere la natura intimidatoria di SELinux.

Grazie per aver letto.

Recensione del mouse wireless Microsoft Sculpt Touch
Ho letto di recente del Microsoft Scolpisci il tocco mouse wireless e ho deciso di acquistarlo. Dopo averlo usato per un po', ho deciso di condividere...
Trackpad e puntatore del mouse su schermo AppyMouse per tablet Windows
Gli utenti di tablet spesso mancano il puntatore del mouse, soprattutto quando sono abituati a usare i laptop laptop. Gli smartphone e i tablet touchs...
Il pulsante centrale del mouse non funziona in Windows 10
Il tasto centrale del mouse ti aiuta a scorrere lunghe pagine web e schermate con molti dati. Se si ferma, finirai per usare la tastiera per lo scorri...