3.4 コマンドラインインタフェースを使用したNovell AppArmorプロファイルの構築

Novell AppArmorを使用すると、GUIを使用せずにコマンドラインインタフェースを使用して、システムセキュリティを管理および設定できます。

3.4.1 AppArmorモジュール状態の確認

AppArmorモジュールの状態には以下の3種類があります。

アンロード

AppArmorモジュールはカーネルにロードされていません。

実行中

AppArmorモジュールはカーネルにロードされ、Novell AppArmorプログラムポリシーを強制しています。

停止

AppArmorモジュールはロードされていますが、強制されているポリシーはありません。

AppArmorモジュールが3つのうちどの状態にあるのか調べるには、/sys/kernel/security/apparmor/profilesを検査します。cat /sys/kernel/security/apparmor/profilesがプロファイルの一覧をレポートする場合、Novell AppArmorが実行されています。レポートが空白で何も戻らない場合、AppArmorは停止状態です。レポートファイルが存在しない場合、AppArmorはアンロードの状態です。

AppArmorモジュールは、modprobeinsmodlsmodおよびrmmodなどのをLinux標準モジュールを使用してロードまたはアンロードできますが、このアプローチは推奨されません。代わりに、スクリプトrcapparmorを使用してNovell AppArmorを管理することをお勧めします。スクリプトは以下の処理を行います。

rcapparmorの開始

AppArmorモジュールの状態により、異なる動作をします。アンロードの状態のとき、startはモジュールをロードして開始します。モジュールは実行中の状態となります。停止状態のとき、startによりモジュールは、通常/etc/apparmor.d内にあるthe Novell AppArmorプロファイルを再スキャンします。モジュールは実行中の状態となります。モジュールがすでに実行されているとき、startは警告をレポートし、アクションは起こりません。

rcapparmorの停止

カーネルメモリからすべてのプロファイルを削除してAppArmorモジュールを停止します(モジュールが実行している場合)。一切のアクセス権は無効となり、モジュールは停止状態となります。AppArmorモジュールがアンロードまたは停止状態のとき、stopは再びプロファイルのアンロードを試みますが、アクションは起こりません。

rcapparmorの再起動

AppArmorモジュールは、通常/etc/apparmor.dにあるプロファイルを再スキャンします。その際、実行プロセスの制限は解除されず、新しいプロセスは追加されず、/etc/apparmor.dから削除された任意のプロファイルは解除されません。

rcapparmorの強制終了

無条件にAppArmorモジュールをカーネルから削除します。モジュールをLinuxカーネルからアンロードすることは危険なため、この処理は安全ではありません。このコマンドは、デバッグのため、およびモジュールを削除する必要がある緊急の場合に備えて用意されているものです。

[Note]注意

Novell AppArmorは強力なアクセス制御システムであり、使用するマシンで自分自身をロックアウトしてしまい、管理を再開するのにレスキューメディア(SUSE LinuxのCD 1など)を使用してマシンを起動する必要がある場合もあります。

このような問題を避けるためには、AppArmorモジュールを再開するときに、マシン上のログインが実行していること、制限されていないこと、rootであることを確認してください。システムがダメージを受け、ログインができない場合(たとえば、SSHデーモンに関連するプロファイルが壊れた場合)、実行rootプロンプトを使用してAppArmorモジュールを再開し、ダメージを修正します。

3.4.2 Novell AppArmorプロファイルの構築

AppArmorモジュールプロファイルの定義は、プレーンテキストとして/etc/apparmor.d/ディレクトリに保存されています。

[Warning]警告

/etc/apparmor.d/ディレクトリ内のファイルはプロファイルとして解釈され、そのようにロードされます。このディレクトリ内のファイルの名前を変更しても、プロファイルがロードされるのを避けることにはなりません。ロードを避けるには、プロファイルをディレクトリから削除する必要があります。

これらのプロファイルにアクセスし変更を加えるには、vimのようなテキストエディタを使用します。以下のオプションで、プロファイルの構築に関する詳細を説明します。

ターミナルウィンドウでvimrと入力して、vimを使用してプロファイルを参照および編集してください。vimでNovell AppArmorプロファイルを編集するときに構文カラーを有効にするには、:syntax onコマンドを使用し、続いて:set syntax=apparmorコマンドを使用します。vimカラーおよび構文カラーに関する情報の詳細については、3.5.3.8項 「apparmor.vim」 (↑Novell AppArmor 2.0アドミニストレーションガイド)を参照してください。

[Note]注意

プロファイルに変更を加えたら、前のセクションで説明したrcapparmor restartコマンドを使用します。このコマンドを使用すると、Novell AppArmorはプロファイルを再び読み取ります。これらのファイルの構文の詳細な説明については、第3章 Novell AppArmorプロファイルの構築 (↑Novell AppArmor 2.0アドミニストレーションガイド)を参照してください。

3.4.3 Novell AppArmorプロファイルの追加または作成

アプリケーションにNovell AppArmorプロファイルを追加および作成するには、必要に応じて、全体に及ぶあるいはスタンドアロンのプロファイル方法を使用することができます。

スタンドアロンプロファイル

メールクライアントのようなクライアントアプリケーションのように、ランタイムに限りのある小規模のアプリケーションをプロファイルするのに適しています。詳細については、3.5.1項 「スタンドアロンプロファイル」 (↑Novell AppArmor 2.0アドミニストレーションガイド)を参照してください。

全体に及ぶプロファイル

大量のプログラムをすべて一度にプロファイルする場合、および数日、数週間または再起動に左右されず継続的に実行するアプリケーションをプロファイルするのに適しています。Webサーバ、メールサーバなどのサーバアプリケーションがこれに含まれます。詳細については、 3.5.2項 「全体に及ぶプロファイル」 (↑Novell AppArmor 2.0アドミニストレーションガイド).

3.4.4 Novell AppArmorプロファイルの編集

以下のステップでは、Novell AppArmorプロファイルを編集する手順について説明します。プロファイルの作成についての詳細は、3.1項 「プロファイルコンポーネントおよび構文」 (↑Novell AppArmor 2.0アドミニストレーションガイド)を参照してください。

  1. rootとしてサインインしていない場合、ターミナルウィンドウでsuと入力します。

  2. プロンプトが表示されたら、rootパスワードを入力します。

  3. ディレクトリに移動するには、cd /etc/apparmor.d/と入力します。

  4. 現在インストールされているプロファイル全て参照するには、lsと入力します。

  5. たとえばvimのような、テキストエディタで編集するプロファイルを開きます。

  6. 必要な変更を加え、プロファイルを保存します。

  7. ターミナルウィンドウでrcapparmor restartと入力し、Novell AppArmorを再起動します。

3.4.5 Novell AppArmorプロファイルの削除

以下のステップでは、Novell AppArmorプロファイルを削除する手順について説明します。

  1. rootとしてサインインしていない場合、ターミナルウィンドウでsuと入力します。

  2. プロンプトが表示されたら、rootパスワードを入力します。

  3. Novell AppArmorディレクトリに移動するには、cd /etc/apparmor.d/と入力します。

  4. 現在インストールされているNovell AppArmorプロファイル全て参照するには、lsと入力します。

  5. コマンドrm profilenameでプロファイルを終了し、プロファイルを削除します。

  6. ターミナルウィンドウでrcapparmor restartと入力し、Novell AppArmorを再起動します。