Может ли discourse-setup добавлять контексты для систем SELinux? Это значительно повысит безопасность для пользователей RHEL (CentOS, Fedora и др.).
Лучший способ добиться прогресса здесь — создать pull-запрос с доказательством концепции (proof of concept).
Я не могу найти discourse-setup в корне исходного репозитория. Разве это не скрипт sh?
Редактирование: Нашёл. Я смотрел в discourse/discourse, а не в discourse/discourse-docker.
Я понимаю, что многим пользователям требуется повышенная безопасность, обеспечиваемая SELinux, и все вытекающие из этого преимущества.
Одной из главных целей и ключевых преимуществ контейнеризованных архитектур (таких как Docker) является возможность запускать контейнеризованные приложения на любой базовой архитектуре, при условии, что система управления контейнерами (в данном случае, для Discourse — Docker) функционирует корректно.
Мое мнение, если оно имеет значение, таково: команда разработчиков приложения не должна уходить в кроличью нору поддержки каждой запрашиваемой дистрибуции ОС с нестандартной установкой Docker. Это противоречит одной из главных целей использования контейнеризованной архитектуры.
На мой взгляд, более поддерживаемым подходом является то, что системные администраторы должны обеспечить работу своей установки Docker стандартным образом. Если их конфигурация Docker не соответствует «стандарту Discourse», им следует добавить символические ссылки на бинарные файлы, файлы и каталоги, чтобы они соответствовали основным стандартным конфигурациям Docker.
Дистрибутивы ОС могут и действительно меняются в любой момент, и это касается также конфигурации установленных приложений. Если команда приложения (например, Discourse) начнет расширять свои файлы настройки для адаптации к различным конфигурациям Docker, им придется отслеживать изменения в каждой дистрибуции ОС при каждом новом релизе.
Для нас, если бы мы планировали запускать Discourse на SELinux (кстати, мы используем Ubuntu), мы бы, скорее всего, начали с написания скрипта для создания необходимых символических ссылок, чтобы SELinux соответствовал требуемым файлам Docker, установленным и настроенным в стандартной дистрибуции, поддерживаемой Discourse.
Я быстро проверил несколько провайдеров VPS для вас и подумал, что мог бы сделать это (создать для вас скрипт), если бы смог быстро развернуть дистрибутив с SELinux на дешевом VPS. К сожалению, провайдеры VPS, которыми я пользуюсь (Linode и Digital Ocean), не предлагают SELinux, поэтому я отказался от этой идеи.
Не знаете ли вы какого-либо «дешевого и надежного провайдера VPS», где я мог бы быстро настроить SELinux?
Поскольку Discourse рекомендует Ubuntu, вы, несомненно, аргументируете в пользу поддержки AppArmor до того, как будут затрачены ресурсы на SELinux?
Спасибо. Теперь я вспомнил. Спасибо, что указали на это.
Security-Enhanced Linux ( SELinux ) — это модуль безопасности ядра Linux security module, который предоставляет механизм поддержки политик безопасности контроля доступа, включая принудительный контроль доступа (MAC).
Модуль безопасности ядра Linux security module
SELinux представляет собой один из нескольких возможных подходов к решению проблемы ограничения действий, которые могут выполнять установленные программы. Другой популярной альтернативой является AppArmor, доступный на платформах SUSE Linux Enterprise Server (SLES), openSUSE и на базе Debian. AppArmor был разработан как компонент платформы Immunix Linux, которая больше не существует. Поскольку AppArmor и SELinux радикально различаются, они представляют собой отдельные альтернативы для управления программным обеспечением. В то время как SELinux переосмысливает определённые концепции, предоставляя доступ к более выразительному набору вариантов политик, AppArmor был разработан с целью простоты, расширяя те же административные семантики, используемые для DAC, до уровня принудительного контроля доступа.
Честно говоря, я забыл, что SELinux — это модуль, а не дистрибутив. Моя ошибка.
Возможно, @GalacticLion7, если вам требуется такой уровень контроля доступа, вы рассматривали возможность использования SELinux в Ubuntu?
Смотрите, например:
https://www.linode.com/docs/quick-answers/linux/how-to-install-selinux-on-ubuntu-18-04/
Похоже, у вас есть множество вариантов на выбор, @GalacticLion7
Возможно, стоит выбрать тот, который разработан или работает с Ubuntu (поскольку Discourse “официально” поддерживает Ubuntu), — это хорошая идея, не так ли?
@neounix Но, как я уже сказал, неважно, какой дистрибутив. Речь идет о системах, в которых есть SELinux, будь то встроенный или установленный вручную.
Тогда моё предложение: выберите Ubuntu (официально поддерживаемую Discourse), установите SELinux и проведите proof-of-concept. Когда всё заработает, рассмотрите возможность отправки PR и обсуждения этого в разделе разработки.
Как вам такая идея?