Supporto per l'aggiunta di contesti SELinux in discourse-setup

Potrebbe discourse-setup aggiungere contesti per i sistemi SELinux? Migliorerebbe notevolmente la sicurezza per gli utenti RHEL (CentOS, Fedora, ecc.).

3 Mi Piace

Il modo migliore per ottenere visibilità qui è creare una pull request con un proof of concept.

4 Mi Piace

Non riesco a trovare alcun discourse-setup nella directory principale del repository sorgente. Non è uno script sh?

Modifica: L’ho trovato. Stavo guardando discourse/discourse invece di discourse/discourse-docker.

1 Mi Piace

@GalacticLion7

Capisco che molte persone richiedano la sicurezza avanzata offerta da SELinux e tutto ciò che ne consegue.

Uno degli scopi principali e dei grandi vantaggi delle architetture containerizzate (come Docker) è che le applicazioni contenizzate possono essere eseguite su qualsiasi architettura sottostante, purché il sistema di gestione dei container (in questo caso, Docker per Discourse) funzioni correttamente.

Il mio parere, per quel che vale, è che un team di sviluppo di applicazioni non dovrebbe addentrarsi nel labirinto del supporto per ogni distribuzione OS richiesta (non standard) per l’installazione di Docker. Questo vanificherebbe uno degli scopi principali dell’utilizzo di un’architettura containerizzata.

Più mantenibile, a mio avviso, è che gli amministratori di sistema assicurino che le loro installazioni di Docker funzionino in modo standard e, se la configurazione Docker non corrisponde allo “standard Discourse”, allora dovrebbero aggiungere collegamenti simbolici per binari, file e directory per allinearsi alle configurazioni Docker standard principali.

Le distribuzioni OS possono e cambiano in qualsiasi momento, e questo include la configurazione delle applicazioni installate. Se un team di applicazioni (come Discourse, ad esempio) iniziasse ad espandere i propri file di configurazione per adattarsi a varie configurazioni Docker, dovrebbe monitorare ogni distribuzione OS per eventuali modifiche con ogni nuova release.

Per noi, se dovessimo eseguire Discourse su SELinux (noi usiamo Ubuntu, tra l’altro), molto probabilmente inizieremmo scrivendo uno script per creare i collegamenti simbolici necessari affinché SELinux corrisponda ai file Docker richiesti, così come installati e configurati nella distribuzione standard supportata da Discourse.

Ho fatto una rapida verifica di alcuni provider VPS per te e ho pensato di potermi occupare di questo (creare lo script per te) se fossi riuscito a configurare una distribuzione SELinux su un VPS economico. Purtroppo, i provider VPS che uso (Linode e Digital Ocean) non offrono SELinux, quindi ho abbandonato l’idea.

Conosci qualche provider VPS “economico e affidabile” dove potrei configurare SELinux rapidamente?

3 Mi Piace

Poiché Discourse raccomanda Ubuntu, stai certamente sostenendo il supporto per AppArmor prima di dedicare tempo a SELinux?

1 Mi Piace

Grazie. Ora mi ricordo. Grazie per averlo fatto notare.

Security-Enhanced Linux (SELinux) è un modulo di sicurezza del kernel Linux che fornisce un meccanismo per supportare politiche di sicurezza basate sul controllo degli accessi, inclusi i controlli degli accessi obbligatori (MAC).

Modulo di sicurezza del kernel Linux

SELinux rappresenta uno dei diversi approcci possibili al problema di limitare le azioni che il software installato può compiere. Un’alternativa popolare è chiamata AppArmor ed è disponibile su SUSE Linux Enterprise Server (SLES), openSUSE e piattaforme basate su Debian. AppArmor è stato sviluppato come componente per la piattaforma Immunix Linux, ora desueta. Poiché AppArmor e SELinux differiscono radicalmente l’uno dall’altro, costituiscono alternative distinte per il controllo del software. Mentre SELinux reinventa determinati concetti per fornire accesso a un insieme più espressivo di scelte di policy, AppArmor è stato progettato per essere semplice estendendo le stesse semantica amministrative utilizzate per il DAC fino al livello del controllo degli accessi obbligatorio.

Onestamente, avevo dimenticato che SELinux è un modulo e non una distribuzione. È stato un mio errore.

Forse @GalacticLion7, se hai bisogno di questo livello di controllo degli accessi, hai considerato SELinux su Ubuntu?

Vedi, ad esempio:

https://www.linode.com/docs/quick-answers/linux/how-to-install-selinux-on-ubuntu-18-04/

Sembra che tu abbia una miriade di opzioni tra cui scegliere, @GalacticLion7 :slight_smile: Forse scegliere una soluzione progettata o compatibile con Ubuntu (dato che Discourse “ufficialmente” supporta Ubuntu) è una buona idea, non credi?

1 Mi Piace

@neounix Ma come ho detto, non importa quale distribuzione. Si tratta solo di sistemi che hanno SELinux, sia che sia integrato o installato manualmente.

1 Mi Piace

Allora il mio suggerimento è che tu vada con Ubuntu (ufficialmente supportato da Discourse), installi SELinux e faccia una proof-of-concept. Quando funziona, valuta di inviare una PR e aprire una discussione in dev a riguardo.

Che ne pensi?

2 Mi Piace