SELinuxの理解と設定 – RHELでセキュリティを強化する方法

SELinuxの理解と設定 – RHELでセキュリティを強化する方法

この記事では、Red Hat Enterprise Linux (RHEL) 環境でSELinuxを活用する方法について、具体的なステップと設定手法を集約しました。SELinuxを利用することで、システムのセキュリティを強化し、不正アクセスからの保護を強化します。

SELinuxの基本概念

SELinuxは、Linuxでのマンドトリ制御(Mandatory Access Control, MAC)を実現します。特定のラベルを使って、プロセスとファイル間の許可を制御します。

SELinuxの動作モード確認

システム上でSELinuxがどのように実行されているか確認します。

sestatus

SELinuxモードの切り替え

動作モードを設定ファイルで変更し、強制モードまたは許可モードの切り替えを行います。

sudo vi /etc/selinux/config

SELINUX=enforcing

変更を永続的にするためには再起動が必要
sudo setenforce 1  # 一時的な変更

基本ポリシーの理解

ポリシーには、ターゲットポリシーとMLSポリシーがあります。デフォルトのターゲットポリシーは、RHELシステムでの標準です。

SELinuxコンテキストの確認

ファイルやプロセスのSELinuxコンテキストを確認します。これにより、リソースのセキュリティラベルを把握します。

ls -Z /var/www/html
ps -eZ | grep httpd

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

特定のポリシーが原因でアクセスが拒否される場合、その詳細をチェックします。

sudo ausearch -m AVC,USER_AVC -ts recent
sudo audit2why < /var/log/audit/audit.log

ブール値を使ったポリシー調整

特定の機能をオンまたはオフにするためにブール値を設定します。

sudo getsebool -a
sudo setsebool httpd_enable_homedirs on

カスタムポリシーの作成

ユーザー定義のポリシーを作成し、カスタムニーズに対応します。

sudo audit2allow -M custompolicy
sudo semodule -i custompolicy.pp

ポリシーのインポートとエクスポート

ポリシーを他のシステムで共有するために、ポリシーのエクスポートとインポートを行います。

semodule -l > mypolicies.txt
semodule -i mymodule.pp

ファイルとディレクトリのラベル設定

適切なラベルを設定し、予期しない制限を回避し、正しくアクセス制御を設定します。

sudo chcon -t httpd_sys_content_t /var/www/html/index.html
restorecon -Rv /var/www/html

定期的なポリシーのレビュー

SELinuxの設定を定期的に確認し、不必要な制限や許可がないかをチェックします。

SELinux管理ツールの活用

setroubleshootサーバーやsemanageコマンドを使って更なる管理を行います。問題解決の際にはsetroubleshootが役立ちます。

sudo yum install setroubleshoot
sudo semanage fcontext -l

これらの手段を活用することで、SELinuxをより有効に活用し、RHELのセキュリティを高度化できます。