discourse-setup での SELinux コンテキスト追加のサポート

SELinuxシステムに対してdiscourse-setupがコンテキストを追加することは可能でしょうか?これにより、RHELユーザー(CentOS、Fedoraなど)のセキュリティが大幅に向上します。

「いいね!」 3

ここで評価を得る最善の方法は、概念実証のプルリクエストを作成することです。

「いいね!」 4

ソースリポジトリのルートに discourse-setup が見つかりません。これは sh スクリプトではないのでしょうか?

編集:見つかりました。discourse/discourse ではなく、discourse/discourse-docker を見ていました。

「いいね!」 1

@GalacticLion7

SELinux の強化されたセキュリティと、それによって得られるすべての利点を必要とする方が多くいらっしゃることは理解しています。

コンテナ化されたアーキテクチャ(Docker など)の主な目的と大きな利点の一つは、コンテナ管理システム(この Discourse の場合は Docker)が機能している限り、コンテナ化されたアプリケーションはどのような基盤アーキテクチャ上でも実行可能であることです。

私の考え(参考程度に)ですが、アプリケーション開発チームが、すべての要望される OS ディストリビューション(非標準的な Docker インストール)に対応しようとして、行き止まりに陥るべきではありません。それは、コンテナ化されたアーキテクチャを実行する主な目的の一つを損なうことになります。

私の見解では、より保守性が高いのは、システム管理者が Docker インストールを標準的な方法で動作させるようにすることです。もし彼らの Docker 設定が「Discourse の標準」と一致しない場合は、本流の標準的な Docker 設定に合わせるために、バイナリ、ファイル、ディレクトリへのシンボリックリンクを追加すべきです。

OS ディストリビューションはいつでも変更され得ますし、インストールされたアプリケーションの設定も同様です。アプリケーションチーム(Discourse のような場合など)が、さまざまな Docker 設定に適応するためにセットアップファイルを拡張し始めると、新しい OS ディストリビューションのリリースごとに、各 OS ディストリビューションの変更を追跡する必要が出てきます。

私たちにとって、もし Discourse を SELinux 上で実行する場合(ちなみに私たちは Ubuntu で実行しています)、まず、Discourse がサポートする標準ディストリビューションでインストールされ設定されている Docker ファイルと一致するように、SELinux に必要なシンボリックリンクを作成するスクリプトを書くところから始めるでしょう。

あなたのためにいくつかの VPS プロバイダーを簡単にチェックしましたが、もし SELinux ディストリビューションを安価な VPS にセットアップできれば、スクリプトを作成しようかと考えました。残念ながら、私が利用している VPS プロバイダー(Linode と Digital Ocean)は SELinux を提供していないため、そのアイデアは断念しました。

すぐに SELinux をセットアップできる「安価で信頼性の高い VPS」プロバイダーをご存知でしょうか?

「いいね!」 3

Discourse が Ubuntu を推奨している以上、SELinux の検討に時間を割く前に、AppArmor サポートを主張されているのでしょうか?

「いいね!」 1

ありがとうございます。確かに思い出しました。指摘していただき感謝します。

Security-Enhanced LinuxSELinux)は、Linux カーネルセキュリティモジュールであり、アクセス制御セキュリティポリシー(強制アクセス制御(MAC)を含む)をサポートするメカニズムを提供します。

Linux カーネルセキュリティモジュール

SELinux は、インストールされたソフトウェアが実行できる動作を制限するという問題に対するいくつかの可能なアプローチの 1 つです。もう一つの人気のある代替案は AppArmor と呼ばれ、SUSE Linux Enterprise Server(SLES)、openSUSE、および Debian ベースのプラットフォームで利用可能です。AppArmor は、現在は存在しない Immunix Linux プラットフォームのコンポーネントとして開発されました。AppArmor と SELinux は互いに根本的に異なるため、ソフトウェア制御のための明確な代替手段となっています。SELinux がより表現力のあるポリシー選択肢を提供するために特定の概念を再考するのに対し、AppArmor は DAC に使用される同じ管理セマンティクスを強制アクセス制御レベルまで拡張することで、シンプルになるように設計されています。

正直なところ、SELinux がディストリビューションではなくモジュールであることを忘れていました。私の間違いです。

もしかしたら @GalacticLion7 さん、このレベルのアクセス制御が必要であれば、Ubuntu での SELinux の使用を検討されましたか?

例を挙げると:

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

@GalacticLion7 さんには選択肢が多数あるようです :slight_smile: Discourse が「公式に」サポートしている Ubuntu 向けに設計されている、あるいは Ubuntu と連携するものを選ぶのも良いアイデアだと思いませんか?

「いいね!」 1

@neounix 繰り返しになりますが、どのディストリビューションであるかは関係ありません。SELinux が組み込まれているか、手動でインストールされているかにかかわらず、SELinux を持っているシステム向けです。

「いいね!」 1

それなら、私の提案としては、Ubuntu(Discourse によって正式にサポートされています)を選び、そこに SELinux をインストールして概念実証(PoC)を行うことです。それが動作したら、PR を提出し、開発者向けディスカッションで話題にすることを検討してください。

どう思いますか?

「いいね!」 2