← Back to Home

SELinuxとAppArmorの理解

Views: 1043

You can try the commands on our interactive shell.

SELinux と AppArmor の理解

SELinux (Security-Enhanced Linux) と AppArmorは両方ともLinuxのセキュリティモデルを強化するツールですが、それぞれ異なるアプローチを取ります。このチュートリアルでは、SELinuxとAppArmorについて詳しく解説し、その使用方法と利点を比較します。

SELinux とは

SELinuxは、Mls(Multi-Level Security)と呼ばれる複数レベルセキュリティモデルに基づいています。これは、ファイルやプロセスがそれぞれ特定の「セキュリティコンテキスト」を持っていることを強調します。これらのコンテキストは、プロセスがどの資源にアクセスできるかを定義しています。

SELinuxの主要な概念

  1. Security Context: ファイルやプロセスが持つセキュリティ設定。
  2. Policy: セキュリティコンテキストとその相互作用を制御するルール集。
  3. Type Enforcement (TE): SELinuxのデフォルトポリシー形式。

SELinuxの使用方法

SELinuxを有効にするには、以下の手順が必要です:

  1. SELinuxモジュールのインストール: 様々なパッケージマネージャーを使用してSELinuxモジュールをインストールします。たとえば、Debian/Ubuntuではselinux-policy-defaultをインストールします。
  2. SELinuxの有効化: setenforce 1でSELinuxを有効にし、setenforce 0で無効にできます。

SELinuxのスクリプト例

以下はSELinuxポリシーを適用するための簡単なShellスクリプトです:

#!/bin/bash

# SELinuxがインストールされているか確認
if ! rpm -q selinux-policy-targeted &> /dev/null; then
  echo "SELinux ポリシーはインストールされていません。"
  exit 1
fi

# ファイルのセキュリティコンテキストを設定
chcon -t httpd_sys_content_t /var/www/html/index.html

# SELinuxポリシーを変更
semodule -i mypolicy.pp

AppArmor とは

AppArmorは、Linuxのカーネルのメモリアーセキュリティ機能(LSM: Linux Security Modules)を使用してアプリケーションのセキュリティを制御します。これは、ファイルやプロセスが特定の操作を行うことを許可または拒否することができます。

AppArmorの主要な概念

  1. Profile: アプリケーションのセキュリティポリシー。
  2. Mount Points: 特定のディレクトリを監視し、それにアクセスするアプリケーションを制御します。

AppArmorの使用方法

AppArmorを有効にするには、以下の手順が必要です:

  1. AppArmorモジュールのインストール: パッケージマネージャーを使用してAppArmorモジュールをインストールします。たとえば、Debian/Ubuntuではapparmorをインストールします。
  2. AppArmorの有効化: aa-enforce /etc/apparmor.d/usr.sbin.apache2でApache2のAppArmorプロファイルを適用します。

AppArmorのスクリプト例

以下はAppArmorのプロファイルを変更するための簡単なShellスクリプトです:

#!/bin/bash

# AppArmorがインストールされているか確認
if ! dpkg -l | grep apparmor &> /dev/null; then
  echo "AppArmor はインストールされていません。"
  exit 1
fi

# プロファイルの変更
sed -i 's/\/var\/www\/html\/index.html/\/var\/www\/html\//g' /etc/apparmor.d/usr.sbin.apache2

# 変更を適用
aa-enforce /etc/apparmor.d/usr.sbin.apache2

SELinuxとAppArmorの比較

結論

SELinuxとAppArmorはどちらもLinuxシステムのセキュリティを強化するための有用なツールですが、それぞれ異なるアプローチを取ります。選択する際には、システムの要件、管理の複雑さ、パフォーマンスなどを考慮してください。

SELinuxとAppArmorについて理解し、適切に使用することで、Linuxシステムのセキュリティを大幅に向上させることができます。

Try it Now!