本記事では、Rocky Linux 8 における SELinux 設定について解説します。
SELinuxとは
SELinux は、Linux カーネルに組み込まれたセキュリティモジュールです。アクセス制御、監査、強制といった機能を提供し、システムのセキュリティを強化します。
SELinuxの状態を確認
SELinuxの状態を確認するには、getenforce コマンドを使います。
# getenforce
Enforcing ← SELinuxデフォルトは有効な状態
状態 | 説明 |
---|---|
Enforcing | SElinux有効:ポリシーに違反するアクセスに対してログを記録して拒否します。 |
Permissive | SElinux有効:ポリシーに違反するアクセスに対してログを記録して許可します。 |
Disabled | SElinux無効:ポリシーに関係なくアクセスが可能です。 |
SELinuxのモードを一時的に変更
SELinuxのモードを一時的に変更するには、setenforce コマンドを使います。
- setenforce 0 で Permissive モードになります。再起動すると元に戻ります。
# setenforce 0
# getenforce
Permissive
- setenforce 1 で Enforcing モードになります。再起動すると元に戻ります。
# setenforce 1
# getenforce
Enforcing
SELinuxのモードを永続的に変更
SELinuxのモードを永続的に変更するには、/etc/selinux/config ファイルを編集します。
SELINUX= の値を enforcing、permissive、disabled のいずれかに設定します。この変更は再起動後に反映されます。
# vi /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=enforcing
# SELINUXTYPE= can take one of these three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
SELinuxのメリットとデメリット
SELinuxのメリットは、標準的な Linux サービスについてはデフォルト設定でも十分に効果があることです。SELinuxは、プロセスやファイルにコンテキストというラベルを付けて、アクセス権限を細かく制御することができます。これにより不正なアクセスや攻撃を防ぐことができます。
SELinuxのデメリットは、アプリ開発中では初期チューニングが大変だったり、運用中でルール漏れが顕在化し、サービスが動作しなくなるといったところです。SELinuxは、ルールに従わないアクセスを拒否するため、ルールを適切に設定しないと、意図しない動作になる可能性があります。また、ルールの数や内容は複雑で、ログやエラーメッセージも分かりにくい場合があります。
コメント