Cosa può andare storto se disabilitiamo selinux [chiuso]


9

Abbiamo ereditato un gruppo di server usati da un altro team. Alcuni di essi hanno SELinux abilitato, altri no. A causa di SELinux, stiamo riscontrando problemi nell'impostare ssh senza password, il nostro server web, ecc. Abbiamo trovato un lavoro su questo sito di stackexchange , che deve essere eseguito:

restorecon -R -v ~/.ssh

Tuttavia, poiché non abbiamo bisogno di SELinux in esecuzione per quello che facciamo, potrebbe essere più facile disattivarlo che per noi ricordare di far eseguire a tutti il ​​cmd sopra su qualunque directory abbia bisogno di autorizzazioni.

Possiamo disattivare SELinux senza ripercussioni lungo la strada o è meglio ridisegnare l'immagine del server? Una cosa da notare; il nostro gruppo IT è davvero impegnato, quindi il re-imaging di un server non è in cima alla lista a meno che non sia assolutamente necessario (serve un ottimo caso aziendale) ... o qualcuno corrompe il proprio capo con una bottiglia di scotch o whisky.

AGGIORNAMENTO: Grazie per il suggerimento e il consiglio di tutti. Tutti questi server verranno utilizzati come server di sviluppo interni. Non ci sarà alcun accesso esterno a queste macchine, quindi la sicurezza non ci preoccupa molto. I nostri attuali server che stiamo usando tutti (per quanto ne so) non hanno SELinux abilitato. Alcuni di quelli che il mio manager ha appena acquisito fanno e quelli sono quelli che stiamo cercando di disabilitare, quindi tutto nel nostro cluster è uniforme.


1
Ho risposto a una domanda simile su Android.se: Quanto è pericoloso il fatto che SELinux sia in modalità "Permissiva"? Di cosa dovrei stare attento? . La differenza principale tra la modalità "Permissiva" e la disabilitazione di SELinux è che non riceverai più i messaggi di registro AVC e che SELinux non manterrà aggiornata l'etichetta dei file, quindi dovrai rietichettare i tuoi file prima di abilitarlo di nuovo.
WhiteWinterWolf

"Che cosa potrebbe andare storto?"
scai,

3
@scai Questa è in realtà una buona domanda. Come sottolinea Sato Katsura , SELinux è difficile da usare in modo efficace. Un falso senso di sicurezza è dannoso per la sicurezza.
Rhymoid,

Risposte:


14

SELinux è una funzionalità di sicurezza del sistema operativo. È progettato per aiutare a proteggere alcune parti del server da altre parti.

Ad esempio, se si esegue un server Web e si dispone di un codice "vulnerabile" che consente a un utente malintenzionato di eseguire comandi arbitrari, SELinux può aiutare a mitigarlo, impedendo al server Web di accedere ai file che non è consentito vedere.

Ora puoi disabilitare SELinux e non dovrebbe rompere nulla. Il server continuerà a funzionare normalmente.

Ma avrai disabilitato una delle funzionalità di sicurezza.


10
SELinux funziona bene solo se configurato correttamente. Tuttavia, SELinux è così complicato che nessuno ha il tempo e / o le conoscenze per configurarlo correttamente, e quindi finisce per essere disabilitato o come un dolore perpetuo nella parte posteriore per l'amministratore. Eppure continuate a investire fiducia in esso come funzionalità di sicurezza .
Satō Katsura,

3
Sono d'accordo che selinux sia un PITA da amministrare, ma è comunque giusto e del tutto preciso definirlo una funzionalità di sicurezza. per coloro che vogliono o hanno bisogno di investire il tempo nell'apprendimento e nell'amministrazione (non io), è inestimabile, ad esempio amministratori di sistema per un sito Web di grandi dimensioni e di alto profilo, ovvero un obiettivo attraente per i kiddie di script in tutto il mondo.
Caso

2
@SatoKatsura Semplicemente perché è difficile da configurare o difficile da capire non giustifica la disabilitazione di un meccanismo di sicurezza. A condizione che questo meccanismo di sicurezza sia effettivamente necessario, il che non è sempre facile da decidere.
scai,

@scai Non ho detto che dovrebbe (o non dovrebbe) essere disabilitato. Quello che sto dicendo è che il modello sottostante di SELinux è imperfetto. Alcune persone sostengono che tutti i meccanismi di sicurezza che possono essere disabilitati sono difettosi.
Satō Katsura,

@SatoKatsura sì, ecco perché avere password è completamente e assolutamente inutile perché possono essere disabilitate (ad esempio con pam o nss o semplicemente con una password vuota). A proposito, non ho mai sostenuto che hai detto che selinux dovrebbe essere disabilitato. stavo solo contestando la tua affermazione che non è una vera funzionalità di sicurezza.
CAS

8

Esistono diverse visioni di SELinux. In molti casi, alcune applicazioni non funzionano bene con SELinux, pertanto questa decisione è controversa (Oracle ne è un esempio).
Generalmente, SELinux è un meccanismo di protezione per mettere l'ennesimo ostacolo a un cattivo che vuole sovvertire il sistema.

Nei miei precedenti ruoli di amministratore di sistemi presso grandi aziende ... In genere ho disabilitato SELinux. Non ho avuto il tempo di rintracciare tutti gli errori SELinux su tutti i sistemi utilizzati da utenti, sviluppatori e gestori.

Prima di disabilitare le cose, potresti voler ricollegare nuovamente i file sul sistema come dovrebbero essere. Il metodo più semplice che ho trovato è inserire il comando:

 # /sbin/fixfiles onboot

O

 # touch /.autorelabel

Quindi, riavviare e attendere, poiché il sistema impiegherà circa la stessa quantità di tempo per verificare e ripristinare le etichette SELinux errate nel sistema. Dopodiché potresti essere a posto mentre corregge e corregge le etichette SELinux non conformi che potrebbero essere state modificate prima del tuo tentativo di amministrazione del server.

Tuttavia, in caso contrario, il sistema non sarà danneggiato NON avendo SELinux in modalità esecutiva. È solo un ulteriore livello di protezione.


3
moot, non muto. Ma perfettamente corretto; non tutti i sistemi richiedono selinux.
phyrfox il

+1 per aver consigliato di provare a rietichettare globalmente i file prima di disabilitare SELinux come fallback. SELinux ha lo scopo di prevenire comportamenti software e utenti imprevisti. Su sistemi in cui non esiste un comportamento previsto ben definito, SELinux può effettivamente causare più danni che benefici (le politiche fornite dal sistema operativo cercano di essere il più generali possibile, ma a volte questo non è sufficiente).
WhiteWinterWolf

Grazie! /sbin/fixfiles onbootha lavorato per me su CentOS, non così con touch /.autorelabel. In esecuzione sealert -a /var/log/audit/audit.logmostra 0 avvisi ora. @mdpc Qual è la differenza tra questi due comandi?
Joseph K.

5

In poche parole, disabilitare i meccanismi di controllo degli accessi obbligatori (MAC) come SELinux non è una buona idea e potrebbe metterti in svantaggio di sicurezza se un cattivo elude con successo i controlli di accesso basati sul nome, implementati da Discretionary Access Control (DAC).

Se fossi io, farei qualcosa del genere

semanage fcontext -a -t ssh_home_t ~/.ssh # Adding the policy
restorecon -R -v ~/.ssh # Applying the policy

per essere più sicuro dell'etichetta del tipo assegnata ricorsivamente da~/.ssh


1
È stilizzato "SELinux". Linux non è un acronimo e la parte "SE" è un inizialismo.
Rhymoid,

@Rhymoid: Questa è davvero una buona nota .. In realtà quello che ho scritto è stato accidentale.
sjsam,

2

In generale, non dovresti disabilitare SELinux. Ci sono strumenti che potrebbero aiutarti a capire cosa è andato storto. Il mio preferito è l'uso di un esempio di Sealert:

sealert -a /var/log/audit/audit.log

OFC puoi sempre impostare SELinux in modalità permissiva per il debug, ma mantenere SELinux disabilitato o permissivo viene insegnato come grave difetto di sicurezza da Red Hat.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.