Security Authentication Linux (SELinux)は、必須のアクセス制御ポリシーを強制するLinuxカーネル セキュリティ モジュールです。これにより、ポリシーで明示的に許可されているファイル、ディレクトリ、およびポートにプロセスを制限できます。これにより、標準ファイル権限でアクセスが許可されている場合でも、アクセスがブロックされる可能性があります。
このタスクについて
サポートされているプラットフォーム
MongoDB は、 で使用するための SELinux ポリシーを提供します。これは、以下を使用するシステム上のMongoDB EnterpriseおよびMongoDB Communitymongod で利用できます。
Red Hat Enterprise Linuxまたは関連するディストリビューション
パッケージマネージャーを使用してインストールされたMongoDB
サポートされている構成
MongoDBデプロイで次のいずれかの設定にカスタム値が使用されている場合、 MongoDB SELinux ポリシーは使用できません。
接続ポート: デフォルトのMongoDBポート
データディレクトリ:
dbPathログディレクトリ:
pathプロセスIDパス:
pidFilePath
ポリシー範囲
MongoDB SELinux ポリシーは mongod のみをカバーしています。 mongos、mongosh、または mongocryptd も使用するシステムで SELinux を使用する場合は、カスタム ポリシーを構成する必要があります。
下位互換性
MongoDB の前のバージョンにダウングレードするには、SELinux ポリシーのクローンが過去に作成されたディレクトリから次のコマンドをダウングレード前に実行する必要があります。
sudo make uninstall
SELinux ポリシーをカスタマイズする
MongoDB SELinux ポリシーは semanage コマンドを使用してカスタマイズできます。例、mongod_port_t にポート 30000 を追加するには、次のコマンドを実行します。
sudo semanage port -at mongod_port_t -p tcp 30000
これにより、SELinux は、標準のMongoDBポートとポート 30000 の両方で TCP 接続を許可するように構成されます。
始める前に
システムに前提条件パッケージがインストールされていることを確認してください。
sudo dnf install git make checkpolicy policycoreutils \ selinux-policy-devel
適用
SELinux はデフォルトで ポリシーを適用します。つまり、設定された制限に違反するプロセスをブロックします。開発環境では、ユーザーは SELinux を無効にしたり、ログに記録するように構成したりしても、すべての操作を許可することもあります。開始する前に、SELinux が ポリシーを強制していることを確認してください。
SELinux がどのモードであるかを確認するには、次のコマンドを実行します。
getenforce
Enforcing
コマンドが Permissive を返す場合は、setenforce コマンドを使用して強制されるようにリセットできます。
sudo setenforce 1
変更を永続的にするには、/etc/selinux/configファイルに SELINUX 変数を設定します。
SELINUX=enforcing
手順
SELinux でMongoDBポリシーが使用されるようになりました。これにより、SELinux が 適用モード中にmongod を実行できるようになりました。