ウィンドウズマックソフトウェア設定セキュリティ生産性リナックスAndroidパフォーマンス設定Apple すべて

SELinuxを使用してFedoraをセキュリティ保護する方法

編集済み 3 数週間前 によって ExtremeHow 編集チーム

フェドラセキュリティSELinuxオペレーティングシステムファイアウォール設定ネットワーク初心者上級ユーザーコンピュータ

SELinuxを使用してFedoraをセキュリティ保護する方法

翻訳が更新されました 3 数週間前

Security-Enhanced Linux(SELinux)は、Linuxカーネルに統合されたセキュリティアーキテクチャで、多用途の強制アクセス制御(MAC)メカニズムを提供します。Fedoraは最も人気のあるLinuxディストリビューションの1つであり、SELinuxを活用してプログラムやファイルへのアクセスを制御し、セキュリティを強化しています。この詳細なガイドでは、SELinuxを使用してFedoraシステムをセキュリティ保護する方法、そのポリシーを管理する方法、一般的なシナリオを処理する方法、およびセキュリティの利点を最大化する方法について探ります。

SELinuxモードの理解

SELinuxは3つの異なるモードで動作し、それぞれが異なるレベルのセキュリティを提供します。それらを見てみましょう:

SELinuxステータスの確認

変更を加える前に、Fedoraシステム上でのSELinuxの現在のステータスを確認することが重要です。これは、ターミナルで以下のコマンドを使用して確認できます:

$ sestatus

このコマンドは、現在のモード、ポリシーのバージョン、その他のSELinuxの状態の詳細を提供します。システムが施行、許可、または無効のいずれのモードになっているかを理解することで、次の手続きに進むことができます。

SELinuxモードの切り替え

SELinuxのモードを切り替えるのは簡単ですが、管理者(root)権限が必要です。モードを変更するには、/etc/selinux/configにあるファイルを編集し、SELINUX=行をenforcingpermissive、またはdisabledに更新します。

# 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 - SELinux is fully disabled.
SELINUX=enforcing
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy.
#     MLS - Multi Level Security protection.
SELINUXTYPE=targeted

変更を加えた後、システムを再起動して適用します。再起動せずに施行と許可モードを一時的に切り替えるには、setenforceコマンドを使用することもできます:

# Set SELinux to enforcing mode
$ sudo setenforce 1
# Set SELinux to permissive mode
$ sudo setenforce 0

SELinuxポリシータイプ

SELinuxは、一連のポリシーを使用してアクセス制御を定義します。主にターゲットと多階層セキュリティ(MLS)の2つのポリシータイプがあります。Fedoraは通常、重要なプロセスのターゲットセキュリティを提供するターゲットポリシーを使用します:

SELinuxブール値の管理

SELinuxブール値は、ポリシー自体を変更せずに特定のSELinuxポリシールールを有効または無効にするスイッチです。これにより、一時的な調整を通じて柔軟性が向上します。利用可能なすべてのブール値を一覧表示するには、次のコマンドを使用します:

$ semanage boolean -l

各ブール値には説明、現在の値、およびデフォルト値があります。ブール値を変更するには、setseboolコマンドを使用します:

# Enable a Boolean
$ sudo setsebool httpd_enable_homedirs on
# Disable a Boolean
$ sudo setsebool httpd_enable_homedirs off

変更を再起動後も保持するには、-Pオプションを追加します:

$ sudo setsebool -P httpd_enable_homedirs on

SELinuxのコンテキストとラベル

SELinuxのグローバルセキュリティは、コンテキストとラベルを中心に展開されます。Fedora内のファイル、ディレクトリ、およびプロセスには、それぞれ一意のコンテキストがあり、ユーザー、ロール、タイプ、およびレベルからなります。コンテキストを理解し、それに適したラベリングを行うことは、SELinuxのセキュリティを維持するために重要です。ファイルのコンテキストは、ls -Zコマンドを使用して表示できます:

$ ls -Z /var/www/html

ファイルの参照を変更する必要がある場合、chconコマンドを使用します:

$ sudo chcon -t httpd_sys_content_t /var/www/html/index.html

chconによる手動でのコンテキスト変更は、再ラベル操作後に元に戻る可能性があることに注意してください。永続的な変更を行うには、ポリシーとsemanage fcontextコマンドを使用します。

SELinuxのトラブルシューティング

SELinuxを操作すると、時々権限エラーが発生することがあります。これはポリシールールが正しく適用されている兆候であることが多いですが、予期しない場合は作業に支障をきたすことがあります。SELinux権限をトラブルシューティングする方法を紹介します:

  1. ログを確認する: SELinuxは、多くのアクセス拒否を/var/log/audit/audit.logに記録します。ausearchを使用して解析できます:
  2. $ ausearch -m avc -ts recent
  3. レポートを生成する: 詳細な診断情報を得るには、SELinuxトラブルシューティングのsealertコマンドを使用します:
  4. $ sudo sealert -a /var/log/audit/audit.log
  5. 施行モードを調整する: アプリケーションがSELinuxの影響で問題を抱えているかどうかを確認するには、一時的にPermissiveモードに切り替えてからsyslogをモニターします。

カスタムSELinuxポリシーの作成

Fedoraのデフォルトポリシーは多くのシナリオをカバーしていますが、上級者ユーザーは独自のユースケースをカバーするためにカスタムSELinuxポリシーを作成することができます。これを行うには、ポリシーファイル(通常.teで終わります)を作成し、checkmoduleおよびsemodule_packageツールを使用してコンパイルします:

# Write your policy in a .te file
module mycustom 1.0;
require {
    type user_home_t;
    type httpd_t;
    class file { read write };
}
# Allow the httpd process to read and write user home files
allow httpd_t user_home_t:file { read write };

次に、カスタムモジュールをコンパイルしてインストールします:

$ checkmodule -M -m -o mycustom.mod mycustom.te
$ semodule_package -o mycustom.pp -m mycustom.mod
$ semodule -i mycustom.pp

デフォルトSELinuxコンテキストの復元

ファイルやディレクトリのコンテキストが正しくない場合、アクセスの問題が発生する可能性があります。デフォルトのSELinuxコンテキストを復元するには、restoreconコマンドを使用します:

$ sudo restorecon -Rv /path/to/directory

このコマンドは、そのパスのデフォルトポリシーに一致するようにコンテキストを再帰的にリセットします。

結論

SELinuxは、Fedoraシステムにとって重要なセキュリティ層を追加します。個人が家庭のセットアップを保護する場合でも、組織全体のセキュリティを維持する企業管理者である場合でも、SELinuxの機能を理解することは非常に重要です。SELinuxのモード、ポリシー、ブール値、コンテキスト、およびポリシー作成に慣れ親しむことで、この強力なセキュリティツールを活用し、Fedoraシステムが攻撃や不正アクセスに対して堅牢であることを確保できます。

記事の内容に誤りがある場合, あなたは


コメント