編集済み 6 数か月前 によって ExtremeHow 編集チーム
セキュリティSELinux設定ポリシーコマンドライン実施シスアドミン監視ベストプラクティスアクセス制御
翻訳が更新されました 6 数か月前
SELinuxは、Security-Enhanced Linuxの略であり、カーネルに統合されたセキュリティアーキテクチャで、アクセス制御セキュリティポリシーをサポートするメカニズムを提供します。その目的は、プログラムの機能を制限し、潜在的な脆弱性からシステムを保護するオペレーティングシステムポリシーを適用することです。LinuxベースのシステムでSELinuxを構成することで、より安全な環境を実現できます。この包括的なガイドでは、LinuxマシンでSELinuxを構成する手順をステップバイステップで説明します。
SELinuxを構成する前に、SELinuxが動作するモードを理解することが重要です。これらのモードは、オペレーティングシステム内でSELinuxがアクセス制御を管理する方法を決定します。
SELinuxを効果的に構成するには、その現在の状態を確認する必要があります。これにより、SELinuxがアクティブかどうか、および現在どのモードで動作しているかを理解できます。
端末ウィンドウを開き、次のコマンドを入力してステータスを確認します。
getenforce
より詳細な情報が必要な場合は、次のコマンドも使用できます。
sestatus
このコマンドは、現在の状態がEnforcing
、Permissive
、またはDisabled
であるかを表示します。
SELinuxモードは、一時的または永続的に変更できます。テストやトラブルシューティングのために一時的にモードを変更することが有用であることが多いですが、永続的な変更は再起動後も設定を永続させるために必要です。
システムを再起動せずに一時的にモードを変更するには、setenforce
コマンドを使用します。たとえば、強制モードに切り替えるには、次のように実行します。
sudo setenforce 1
許可モードに切り替えるには、次のコマンドを実行します。
sudo setenforce 0
変更を永続させるには、/etc/selinux/config
にあるSELinux構成ファイルを更新します。このファイルをテキストエディタで開きます。
sudo nano /etc/selinux/config
SELINUX=
で始まる行を探し、enforcing
、permissive
、またはdisabled
に変更します。たとえば:
SELINUX=enforcing
ファイルを保存して閉じ、変更を有効にするためにシステムを再起動します。
SELinuxポリシーは、SELinuxによって適用されるセキュリティルールを定義します。これらのポリシーは、システム上のさまざまなユーザーやサービスに付与される権限を制御します。最も一般的に使用されるポリシーには、次のものがあります。
現在使用しているポリシーを確認するには、端末で次のコマンドを実行します。
sestatus | grep "Loaded policy name"
SELinuxを効果的に管理するには、関連するツールやパッケージをインストールする必要があります。これらはディストリビューションによって異なります。以下は、役立つ一般的なパッケージです。
apt
パッケージマネージャを使用してSELinuxツールをインストールします。
sudo apt update sudo apt install policycoreutils selinux-utils setools
yum
またはdnf
パッケージマネージャを使用してSELinuxツールをインストールします。
sudo yum install policycoreutils selinux-policy setools
特定のサービス向けにSELinuxポリシーを有効または無効にする方法を理解することは、必要なセキュリティレベルを達成しながらサービスの機能を妨げないようにするための重要な事項です。SELinuxはボーリアンを使用して、特定の機能のポリシーを切り替えます。
利用可能なSELinuxボーリアンを一覧するには、次のコマンドを実行します。
getsebool -a
一時的に(次回の再起動まで)ボーリアンの値を変更するには:
sudo setsebool httpd_enable_homedirs on
ボーリアンの値を永続的に変更するには、-P
オプションを使用し、ディスクに変更を書き込みます:
sudo setsebool -P httpd_enable_homedirs on
SELinuxはコンテキスト(ラベルとも呼ばれます)を使用して、ファイルやプロセスの権限を決定します。場合によっては、これらのコンテキストを手動で設定または変更する必要があります。ファイルのコンテキストを表示するには、ls -Z
コマンドを使用します。
ls -Z /var/www/html
ファイルのコンテキストを変更する必要がある場合は、chcon
コマンドを使用します。たとえば、Webサーバーに適したコンテキストにファイルを変更するには:
sudo chcon -t httpd_sys_content_t /var/www/html/index.html
ファイルに誤ったSELinuxコンテキストが設定されている場合は、restorecon
コマンドを使用してデフォルトのコンテキストに復元できます:
sudo restorecon -Rv /var/www/html
このコマンドは、指定されたディレクトリに対して正しいSELinuxコンテキストを再帰的に復元します。
SELinuxが強制モードで動作している場合、特にカスタムアプリケーションをインストールした場合、正当なアクションがブロックされることがあります。SELinuxのトラブルシューティングには、ログを分析し、何が拒否されたかを理解することが必要です。
SELinuxのメッセージは、/var/log/audit/audit.log
または、システムによっては/var/log/messages
にログされます。ログを表示するには、テキストエディタまたはtail
コマンドを使用します:
sudo tail -n 50 /var/log/audit/audit.log
ログは複雑で大きくなることがあるため、audit2allow
のような専門ツールは、それを理解するうえで役立ちます。このツールは、ログエントリを人間が読める形式に変換し、未承認のアクションを許可するのに必要なポリシーを提案します。
grep AVC /var/log/audit/audit.log | audit2allow -m custompolicy
上記のコマンドは、特定のアクションを許可できるSELinuxモジュールの作成に役立ちます。しかし、アクションを許可する場合は、システム全体のセキュリティが低下する可能性があるため注意が必要です。
LinuxでのSELinuxの構成には、異なるモードの理解、状態の確認、モードの変更、ポリシーとボーリアンの操作、ファイルのラベリング、コンテキストの復元が含まれます。SELinuxは厳格なアクセス制御を適用することで、Linux環境のセキュリティを大幅に向上させる強力なシステムです。適切に構成することで、不正アクセスやサービスの妨害を狙う脅威から守ることができます。
ログを常に監視し、新しくインストールしたソフトウェアやシステム要件の変化に対応してポリシーを更新し続けることをお勧めします。SELinuxは最初は複雑に感じるかもしれませんが、その機能に慣れてくると、Linuxのセキュリティを強化するための欠かせないツールとなります。
記事の内容に誤りがある場合, あなたは