Prise en charge de l'ajout de contextes SELinux sur discourse-setup

Pourrait discourse-setup ajouter des contextes pour les systèmes SELinux ? Cela améliorerait considérablement la sécurité pour les utilisateurs de RHEL (CentOS, Fedora, etc.).

3 « J'aime »

Le meilleur moyen de gagner du crédit ici est de soumettre une PR de preuve de concept.

4 « J'aime »

Je ne trouve aucun discourse-setup à la racine du dépôt source. N’est-ce pas un script sh ?

Édité : Je l’ai trouvé. Je regardais dans discourse/discourse au lieu de discourse/discourse-docker.

1 « J'aime »

@GalacticLion7

Je comprends que beaucoup de personnes ont besoin de la sécurité renforcée qu’apporte SELinux et de tout ce qui en découle.

L’un des principaux objectifs et avantages majeurs des architectures conteneurisées (comme Docker) est que les applications conteneurisées peuvent s’exécuter sur n’importe quelle architecture sous-jacente, tant que le système de gestion des conteneurs (dans ce cas Discourse, Docker) fonctionne correctement.

Mon avis, pour ce que cela vaut, est qu’une équipe de développement d’applications ne devrait pas s’engager dans l’abîme consistant à prendre en charge chaque distribution d’OS demandée (non standard) pour l’installation de Docker. Cela va à l’encontre de l’un des principaux objectifs de l’utilisation d’une architecture conteneurisée.

À mon avis, il est plus maintenable que les administrateurs système s’assurent que leurs installations Docker fonctionnent de manière standard, et si leur configuration Docker ne correspond pas à la « norme Discourse », ils devraient ajouter des liens symboliques vers les binaires, fichiers et répertoires afin de correspondre aux configurations Docker standard les plus courantes.

Les distributions d’OS peuvent et changent à tout moment, y compris la configuration des applications installées. Si une équipe d’applications (comme Discourse, par exemple) commence à étendre ses fichiers de configuration pour s’adapter à diverses configurations Docker, elle devra alors suivre chaque distribution d’OS pour les changements avec chaque nouvelle version de distribution d’OS.

Pour nous, si nous allions exécuter Discourse sous SELinux (nous utilisons Ubuntu, au passage), nous commencerions très probablement par écrire un script pour créer les liens symboliques requis pour que SELinux corresponde aux fichiers Docker requis, tels qu’installés et configurés dans la distribution standard prise en charge par Discourse.

J’ai fait une vérification rapide auprès de quelques fournisseurs de VPS pour vous et j’ai pensé que je pourrais le faire (créer le script pour vous) si je pouvais configurer une distribution SELinux sur un VPS peu coûteux. Malheureusement, les fournisseurs de VPS que j’utilise (Linode et Digital Ocean) ne proposent pas SELinux, alors j’ai abandonné l’idée.

Connaissez-vous un fournisseur de VPS « peu coûteux et fiable » où je pourrais configurer SELinux rapidement ?

3 « J'aime »

Comme Discourse recommande Ubuntu, vous défendez sûrement le support d’AppArmor avant d’investir du temps dans SELinux ?

1 « J'aime »

Merci. Je me souviens maintenant de cela. Merci de me l’avoir signalé.

Security-Enhanced Linux ( SELinux ) est un module de sécurité du noyau Linux qui fournit un mécanisme pour prendre en charge des politiques de sécurité de contrôle d’accès, y compris les contrôles d’accès obligatoires (MAC).

Module de sécurité du noyau Linux module de sécurité

SELinux représente l’une des plusieurs approches possibles pour résoudre le problème de la restriction des actions que les logiciels installés peuvent entreprendre. Une autre alternative populaire s’appelle AppArmor et est disponible sur SUSE Linux Enterprise Server (SLES), openSUSE et les plateformes basées sur Debian. AppArmor a été développé comme un composant de la plateforme Immunix Linux, désormais obsolète. Comme AppArmor et SELinux diffèrent radicalement l’un de l’autre, ils constituent des alternatives distinctes pour le contrôle des logiciels. Alors que SELinux réinvente certains concepts pour offrir un accès à un ensemble plus expressif de choix de politiques, AppArmor a été conçu pour être simple en étendant les mêmes sémantiques d’administration utilisées pour le DAC jusqu’au niveau du contrôle d’accès obligatoire.

Honnêtement, j’avais oublié que SELinux était un module et non une distribution. C’était une erreur de ma part.

Peut-être @GalacticLion7, si vous avez besoin de ce niveau de contrôle d’accès, avez-vous envisagé d’utiliser SELinux sur Ubuntu ?

Voir, par exemple :

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

Il semble que vous ayez une multitude d’options à choisir, @GalacticLion7 :slight_smile: Peut-être qu’en choisir une conçue pour ou compatible avec Ubuntu (puisque Discourse prend officiellement en charge Ubuntu) est une bonne idée, ne pensez-vous pas ?

1 « J'aime »

@neounix Mais comme je l’ai dit, cela n’a pas d’importance quelle distribution est utilisée. Il s’agit simplement des systèmes qui ont SELinux, qu’il soit intégré ou installé manuellement.

1 « J'aime »

Dans ce cas, je suggère que vous choisissiez Ubuntu (officiellement pris en charge par Discourse), installiez SELinux et réalisiez une preuve de concept. Une fois que cela fonctionne, envisagez de soumettre une PR et d’ouvrir une discussion à ce sujet dans le développement.

Qu’en pensez-vous ?

2 « J'aime »