Il 01/02/23 15:56, Paride Desimone ha scritto:
Il 01-02-2023 12:33 Paride Desimone ha scritto:
Buongiorno.
Sto provando a studiare Selinux, perché mi serve per un esame di
certificazione rhcsa ex200.
Qualcuno può dipanarmi un dubbio?
Se io confino l'utente root, in modo che nemmeno lui abbia poteri
illimitati, in modo che un'eventuale escalation, non consenta di
prendere il controllo della macchina, come si fa in caso si voglia
agire sulla configurazione di selinux e nemmeno lui può farlo?

/paride

Come non detto.
Non ero arrivato alla gestione degli utenti con selinux.

/paride

Ciao Paride,
è possibile confinare l'utente root? Io so che prima viene valutata la DAC. Se la DAC permette all'utente di eseguire una certa operazione SELinux non entra in gioco. Se la DAC non lo consente, Selinux controlla tutte le sue cose (contesti, booleans, [attento alle don't audit rules], ecc) (ed è qui che salva le chiappe) e in base alle policy crea un deny o un allow.

Detto questo, essendo root utente con privilegi elevati, è possibile confinarlo?

Inoltre non sarebbe il caso di evitare di far entrare root nel confinamento? Cioè ha senso confinare root? Almeno un utente privilegiato deve poter fare qualcosa se le cose non funzionano, anche perche se tu non permetti a root di effettuare qualcosa tipo operazioni di rete, accesso a determinati file ecc, si può sempre impostare selinux in permissive mode, e poi da quello che ho letto (non l'ho provato) sistemi come SELinux e AppArmor possono essere aggirati a livello del kernel, non chiedermi come che non lo so.

SELinux non dovrebbe evitare proprio problemi di questo tipo come le escalation? (Lo chiedo perche ho il dubbio)

Cmq se puo esserti di aiuto, che nessuno me ne voglia, l'ambiente migliore per studiare SELinux è una RHEL Based tipo AlmaLinux/RockyLinux. Purtroppo su debian ho sempre avuto problemi con SELinux. D'altro canto su debian uso apparmor che nella creazione delle policy è moltooo più semplice e diretto.

Se posso darti un consiglio su SELinux, quando passi al processo della creazione delle policy custom, revisiona sempre quello che audit2allow aggiunge al file della policy (prima di compilarla e caricarla) perche potrebbe includere software/contesti/azioni che non vorresti permettere e questo è male perche crei una policy bacata non sapendolo.

Altro consiglio è, nel caso in cui non riesci a trovare il deny ad una certa azione e quindi non puoi creare la regola nella policy, ti può tornare utile disabilitare le regole dont'audit che sono regole per cui è indicato di non riportate negli audit perche ce ne sarebbero troppe nel log. A me è capitato con un'applicazione che provava ad accedere a PostgreSQL ma l'applicazione nel contesto non aveva il permesso di lettura e scrittura nel comunicare in rete con postgresql. Ci ho messo qualche giorno per scoprire queste tipi di regole.

Un saluto e scusate l'OT.

Rispondere a