O discourse-setup poderia adicionar contextos para sistemas SELinux? Isso melhoraria drasticamente a segurança para usuários do RHEL (CentOS, Fedora, etc.).
A melhor maneira de ganhar tração aqui é criar um PR de prova de conceito.
Não consigo encontrar nenhum discourse-setup na raiz do repositório de origem. Não é um script sh?
Edição: Encontrei. Eu estava olhando para discourse/discourse em vez de discourse/discourse-docker.
Entendo que muitas pessoas exigem a segurança aprimorada do SELinux e tudo o que isso implica.
Um dos principais propósitos e grandes benefícios de arquiteturas containerizadas (como o Docker) é que aplicações em containers podem ser executadas em qualquer arquitetura subjacente, desde que o sistema de gerenciamento de containers (neste caso do Discourse, o Docker) esteja funcionando.
Minha opinião, pelo que vale, é que uma equipe de desenvolvimento de aplicações não deve entrar na toca do coelho de dar suporte a cada distribuição de SO solicitada (não padrão) para instalação do Docker. Isso anula um dos principais propósitos de se executar uma arquitetura containerizada.
Mais mantível, na minha visão, é que os administradores de sistema garantam que suas instalações do Docker estejam funcionando de maneira padrão e, se a configuração do Docker deles não corresponder ao “padrão Discourse”, então eles devem adicionar links simbólicos para binários, arquivos e diretórios para corresponder às configurações padrão principais do Docker.
Distribuições de SO podem e mudam a qualquer momento, e isso inclui a configuração de aplicações instaladas. Se uma equipe de aplicações (como o Discourse, por exemplo) começar a expandir seus arquivos de configuração para se adaptar a várias configurações do Docker, então eles terão que rastrear cada distribuição de SO para alterações com cada nova versão de distribuição de SO.
Para nós, se fôssemos executar o Discourse no SELinux (nós executamos no Ubuntu, aliás), muito provavelmente começaríamos escrevendo um script para criar os links simbólicos necessários para o SELinux corresponder aos arquivos Docker necessários, conforme instalados e configurados na distribuição padrão suportada pelo Discourse.
Fiz uma verificação rápida de alguns provedores de VPS para você e pensei em fazer isso (criar o script para você) se conseguisse configurar uma distribuição SELinux em um VPS barato. Infelizmente, os provedores de VPS que eu uso (Linode e Digital Ocean) não oferecem SELinux, então abandonei a ideia.
Você conhece algum provedor de “VPS barato e confiável” onde eu possa configurar o SELinux rapidamente?
Como o Discourse recomenda o Ubuntu, certamente você está defendendo o suporte ao AppArmor antes de qualquer tempo ser gasto no SELinux?
Obrigado. Lembro-me disso agora. Obrigado por apontar isso.
Security-Enhanced Linux ( SELinux ) é um módulo de segurança do kernel Linux que fornece um mecanismo para suportar políticas de segurança de controle de acesso, incluindo controles de acesso obrigatórios (MAC).
módulo de segurança do kernel Linux módulo de segurança
O SELinux representa uma das várias abordagens possíveis para o problema de restringir as ações que o software instalado pode realizar. Outra alternativa popular é chamada de AppArmor e está disponível no SUSE Linux Enterprise Server (SLES), openSUSE e em plataformas baseadas no Debian. O AppArmor foi desenvolvido como um componente para a plataforma Immunix Linux, agora descontinuada. Como o AppArmor e o SELinux diferem radicalmente um do outro, eles formam alternativas distintas para o controle de software. Enquanto o SELinux recria certos conceitos para fornecer acesso a um conjunto mais expressivo de escolhas de política, o AppArmor foi projetado para ser simples, estendendo as mesmas semânticas administrativas usadas para DAC até o nível de controle de acesso obrigatório.
Honestamente, eu esqueci que o SELinux era um módulo, não uma distribuição. Meu erro.
Talvez @GalacticLion7, se você precisa desse nível de controle de acesso, tenha considerado usar o SELinux no Ubuntu?
Veja, por exemplo:
https://www.linode.com/docs/quick-answers/linux/how-to-install-selinux-on-ubuntu-18-04/
Parece que você tem uma miríade de opções para escolher, @GalacticLion7
Talvez escolher uma que seja projetada ou funcione com o Ubuntu (já que o Discourse “oficialmente” suporta o Ubuntu) seja uma boa ideia, não acha?
@neounix Mas, como eu disse, não importa qual distribuição. É apenas para sistemas que têm SELinux, seja ele embutido ou instalado manualmente.
Então, minha sugestão é que você vá com o Ubuntu (oficialmente suportado pelo Discourse), instale o SELinux e faça uma prova de conceito. Quando estiver funcionando, considere enviar um PR e abrir uma discussão sobre isso no desenvolvimento.
O que acha?