Selinux per principianti usando CentOS

Selinux per principianti usando CentOS
Sviluppato dalla NSA per prevenire l'accesso e le intrusioni malevoli, Linux o Selinux potenziati dalla sicurezza è una funzione di controllo degli accesso. Selinux è definito come il sistema MAC (Access Control) obbligatorio sviluppato in sostituzione del sistema di controllo degli accessi discrezionale (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 un utente all'interno del gruppo Sudoers.

Installa pacchetti Selinux

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

Prima di procedere all'installazione dei pacchetti Selinux, è positivo che verifichiamo che sono installati sul sistema corrente.

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

  1. Setools - Questo pacchetto viene utilizzato per il monitoraggio dei registri, le politiche di query e la gestione dei file di contesto.
  2. PolicyCoreutils -Python - Fornisce utilità di Python Core per la gestione di Selinux
  3. PolicyCoreutils - Questo pacchetto fornisce anche utilità per la gestione di Selinux.
  4. McStrans - McStrans fornisce il demone della traduzione Selinux, che traduce vari livelli in formati facili che possono essere compresi facilmente.
  5. Setools -Console - Simile ai setools.
  6. Selinux -Policy: fornisce un riferimento per la configurazione di Selinux Policy
  7. Selinux-Policy-target-Simile a Selinux-Policy
  8. Libselinux -otils - Selinux Libselinux Utilità che aiutano a gestire Selinux
  9. SetRoubleShoot -Server - Strumenti per la risoluzione dei problemi Selinux

Per verificare quali pacchetti sono già installati sul sistema, è possibile utilizzare il comando rpm -QA e tubare il risultato su 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-target-3.14.3-54.EL8_3.2.noarch
Python3-Libselinux-2.9-4.EL8_3.x86_64
Selinux-Policy-3.14.3-54.EL8_3.2.noarch
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 sistema, usa Yum per installarli come mostrato nel comando seguente:

Yum Installa PolicyCoreUtils PolicyCoreutils-Python-Utils Selinux-Policy Selinux-Policy Libselinux-Utils SetRoubleShoot-Server Setools Setools-Console McStrans

Modalità e stati Selinux

Iniziamo ora a suonare con Selinux, in particolare, le modalità Selinux.

Modalità Selinux

Se abilitato, Selinux può essere tre possibili modalità:

  • Applicare
  • Permissivo
  • Disabilitato

Modalità di applicazione

Se la modalità Selinux da applicare, si assicurerà che nessun accesso non autorizzato al sistema da parte di qualsiasi utente o processi sia negata. La modalità di applicazione mantiene anche i registri di qualsiasi tentativo di accesso non autorizzato.

Modalità permissiva

La modalità permissiva si comporta come uno stato Selinux parzialmente abilitato. In questa modalità, non viene negato alcun accesso poiché Selinux non applica le sue politiche in questa modalità. Tuttavia, la modalità permissiva mantiene un registro di eventuali tentativi di violazione delle politiche. Questa modalità è molto efficiente per il test prima di abilitarlo completamente poiché gli utenti e i componenti possono ancora interagire con il sistema ma ancora raccogliere i registri. Questo ti consente di mettere a punto il tuo sistema in modi che ritieni opportuno.

Modalità disabilitato

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 situato in/etc/selinux/config. È possibile utilizzare il comando cat per visualizzare il suo contenuto.

Cat/etc/Selinux/config
#Questo file controlla lo stato di Selinux sul sistema.
#Selinux = può prendere uno di questi tre valori:
#enforcing - La politica di sicurezza di Selinux viene applicata.
#permissive - Selinux Stamts Avverting invece di applicare.
#disabled - non viene caricato alcun criterio Selinux.
Selinux = applicazione
#SelInuxType = può prendere uno di questi tre valori:
# mirato - I processi mirati sono protetti,
# minimo - modifica della politica mirata. Sono protetti solo i processi selezionati.
# MLS - protezione della sicurezza a più livelli.
SelinuxType = target

Dall'output di cui sopra, abbiamo due direttive principali abilitate. La direttiva Selinux ha specificato la modalità in cui è configurato Selinux. La direttiva SelinuxType specifica il set di criteri Selinux. Per impostazione predefinita, Selinux utilizza un criterio mirato che consente di personalizzare le autorizzazioni di controllo degli accessi. L'altra politica è la sicurezza multilivello o MLS.

Potresti trovare, politica minima in alcune versioni.

CD/ETC/SELINUX/
[ls -l
Totale 4
-RW-R-R-- 1 radice root 548 febbraio 16 22:40 Config
DRWXR-XR-X ROOT ROOT 4096 FEB 16 22:43 MLS
-RW-R-R-- 1 ROOT ROOT 2425 LUG 21 2020 Semane.conf
root drwxr-xr-x 1 root 4096 febbraio 16 22:40 mirato

Vediamo ora come abilitare Selinux sul sistema. Si consiglia di impostare prima la modalità Selinux su permissive e non applicato.

nano/etc/selinux/config

Ora modifica la direttiva Selinux come:

Selinux = permissive

Una volta salvato il file, emettere un riavvio del sistema.

riavviare

Nota: consigliamo vivamente di impostare la direttiva Selinux su permissive prima di applicare Selinux.

Una volta riavviato il sistema, verificare qualsiasi registro riportato da Selinux in/var/log/messaggi.

Successivamente, assicurati di non avere errori e applicare Selinux impostando la direttiva da applicare in/ecc/selinux/config

Infine, è possibile visualizzare lo stato Selinux usando il comando sestatus:

Stato Selinux: abilitato
Selinuxfs Monte:/sys/fs/selinux
Selinux Root Directory: /etc /Selinux
Nome della politica caricata: mirato
Modalità corrente: applicazione
Modalità dal file di configurazione: errore (successo)
Politico Stato MLS: abilitato
Politica Deny_unknown Stato: consentito
Controllo della protezione della memoria: effettivo (sicuro)
Versione della politica del kernel Max: 31

È inoltre possibile utilizzare il comando setenforce per passare da varie modalità Selinux. Ad esempio, per impostare la modalità su permissiva, utilizzare il comando:

Setenforce permissive

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

sestatus
Stato Selinux: abilitato
Selinuxfs Monte:/sys/fs/selinux
Selinux Root Directory: /etc /Selinux
Nome della politica caricata: mirato
Modalità corrente: permissiva
Modalità dal file di configurazione: applicazione
Politico Stato MLS: abilitato
Politica Deny_unknown Stato: consentito
Controllo della protezione della memoria: effettivo (sicuro)
Versione della politica del kernel Max: 31

Selinux Policy and Context

Per evitare la confusione per i principianti di Selinux, non ci immergeremo in profondità nel modo in cui le politiche di Selinux sono implementate, ma semplicemente tocchi per darvi un'idea.

Selinux funziona implementando le politiche di sicurezza. Una politica Selinux si riferisce a una regola 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 dell'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

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

Sistema: _U: Object_R: user_home_t: S0

Puoi capire che l'output sopra segue la sintassi dell'utente: Ruolo: Tipo: Livello.

Conclusione

Quello era un tutorial per principianti a 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.