この記事では、Linux環境におけるSELinux(Security-Enhanced Linux)ポリシーの設定と管理について詳しく解説します。具体的なコード例、その解説、そして応用例を5つ以上含めています。SELinuxの導入と設定が初めての方も、この記事を参考にして独自のポリシーを設定できるようになるでしょう。
目次
SELinuxとは
SELinux(Security-Enhanced Linux)は、Linuxシステムのセキュリティ機能を強化するフレームワークです。ファイルやプロセスなどのリソースに対するアクセス制御を細かく設定できます。
SELinuxの主な特長
– マンダトリーアクセス制御(MAC)
– ロールベースのアクセス制御(RBAC)
– タイプエンフォースメント(TE)
SELinuxの設定状況の確認方法
最初にSELinuxが有効かどうかを確認する必要があります。
コマンドラインでの確認方法
getenforce # SELinuxの有効/無効を確認
このコマンドを実行すると、`Enforcing`、`Permissive`、`Disabled`のいずれかが出力されます。`Enforcing`であれば、SELinuxは有効です。
SELinuxの基本的な設定方法
SELinuxの基本設定は主に`/etc/selinux/config` ファイルで行います。
設定ファイルの編集
vi /etc/selinux/config # SELinuxの設定ファイルを開く
設定項目の説明
– `SELINUX`: 有効状態を設定(`enforcing`、`permissive`、`disabled`)
– `SELINUXTYPE`: 使用するポリシータイプを設定(通常は`targeted`)
応用例
ここではSELinuxの応用例を5つ紹介します。
HTTPサーバのポート番号を変更
semanage port -a -t http_port_t -p tcp 8080 # ポート8080をhttp用として設定
特定のディレクトリへの書き込み許可
chcon -t httpd_sys_rw_content_t /path/to/dir # /path/to/dir への書き込みを許可
MySQLデータベースへのアクセス許可
setsebool -P httpd_can_network_connect_db on # ApacheからMySQLへの接続を許可
ユーザーごとのリソース制限
semanage login -a -s user_u -r s0-s0:c0.c1023 new_user # ユーザーnew_userに対するリソース制限を設定
FTPサーバーへの接続許可
setsebool -P ftp_home_dir on # FTPサーバへの接続を許可
まとめ
この記事では、SELinuxの基本的な設定から応用例までを解説しました。SELinuxは非常に強力なセキュリティツールであり、その活用によりLinuxシステムの防御能力を格段に向上させることができます。各自のニーズに合わせて、設定をカスタマイズしてください。
コメント