Qual è lo stato di SELinux e ci sono alternative?

2

Ho un sacco di macchine virtuali ciascuna che svolge un'attività dedicata: una ospita un database, un'altra è un server Web che utilizza una tecnologia specifica, un'altra è un server Web che utilizza uno stack diverso, ecc.

Ho pensato a SELinux come a un mezzo per impedire la propagazione di un'intrusione da una di quelle macchine; se un hacker trova un exploit nel server web, non voglio che sia in grado di leggere /etc/shadow file o connettersi a NFS, o ... qualsiasi cosa.

Sfortunatamente, sto usando Debian, che non sembra avere un ottimo supporto per SELinux. L'ho provato per mezz'ora, ho riscontrato molti problemi durante l'installazione, includendo la selinux-policy-default mancante , e ho trovato mezza dozzina di risorse che dicono che Debian e SELinux non giocano bene insieme.

Tecnicamente, nulla mi impedisce di passare a CentOS, quindi la mia domanda non è cosa dovrei fare per risolvere i problemi che ho incontrato.

La mia domanda è piuttosto questa. Dal momento che Debian è una delle distribuzioni più popolari per i server e, suppongo, è usata in ambienti molto più sensibili dei miei, e dal momento che nessuno sembrava avere un incentivo a "sistemare" SELinux a funzionare in modo impeccabile, non è così indicare che SELinux non è così popolare in primo luogo?

Se è in realtà impopolare, quali sono le alternative più popolari?

O sto sopravvalutando l'importanza di SELinux e le autorizzazioni del firewall e dei file configurate correttamente sono tutto ciò che serve?

    
posta Arseni Mourzenko 07.01.2018 - 00:30
fonte

2 risposte

3

SELinux fornisce un sistema di autorizzazioni più granulare basato sul concetto di Mandatory Access Control (MAC) e Accesso basato sui ruoli Controllo (RBAC) . È molto più flessibile e capace rispetto ai tipici controlli di accesso discrezionali (POSIX Permissions) e Linux Capabilities, ma richiede davvero un grande sforzo per configurare e gestire correttamente.

Dato che hai chiesto specificamente su Debian, ti indicherò AppArmor , che è anche un modulo di sicurezza del kernel e altro frequentemente (nella mia esperienza) usato con Debian e Ubuntu. Ho configurato sia SELinux che AppArmor e ho trovato le policy di AppArmor più facili da capire.

Detto questo, entrambi sono stati sviluppati in un'era in cui era "normale" avere un sacco di utenti che usano singoli host (ad esempio, hanno account di accesso alla shell) o per eseguire molti servizi da un singolo server. Oggi, l'isolamento è più comunemente raggiunto eseguendo un singolo servizio su ciascun server (tipicamente una VM) o utilizzando altre tecnologie sandbox.

Sia SELinux che AppArmor hanno una curva di apprendimento ripida e l'errata configurazione li lascerà inutili o interromperà l'uso legittimo del servizio. Non è necessario guardare oltre il volume di consigli su Internet che descrive come disabilitare SELinux per rendersi conto che non è molto popolare.

A meno che tu non stia eseguendo hosting condiviso o altre configurazioni con più utenti che operano su un singolo server (virtuale), metterei lo sforzo di sicurezza in altri spazi, come la gestione delle patch e la segregazione di rete.

    
risposta data 07.01.2018 - 03:17
fonte
2

SELinux è un software ben scritto e stabile. Tuttavia:

  1. in realtà non fa nulla. Per questo è necessaria una politica.
  2. SELinux è stato progettato per fornire un modello di autorizzazioni per un nuovo sistema operativo, ma è stato reimpostato su Linux che già disponeva di un sistema di sicurezza abbastanza sofisticato, quindi ora hai 2 (o più)
  3. probabilmente cambierai la politica ogni volta che aggiungi software, quindi ti consiglio vivamente di NON usare una distribuzione che non sia progettata attorno a una politica ben definita (es. Redhat e derivati sono l'unico gioco in città) .
  4. purtroppo, anche la politica di RedHat non è ben documentata

IMHO, non c'è evidenza empirica di SELinux che in realtà migliora la sicurezza di un sistema - e rompe così tante cose fuori dalla scatola, che richiede un grande sforzo per configurare e mantenere quale sarebbe meglio spostati altrove .

I thought about SELinux as a mean to prevent a propagation of an intrusion from one of those machines; if a hacker finds an exploit in the web server, I don't want him to be able to read /etc/shadow file or connect to NFS, or... whatever.

Se, dato un exploit del tuo webserver, l'utente malintenzionato può leggere / etc / shadow allora devi passare molto tempo a configurare il tuo server con strumenti convenzionali - la tua sicurezza è molto rotta e SELinux non ha intenzione di risolverlo.

    
risposta data 07.01.2018 - 02:40
fonte

Leggi altre domande sui tag