3.3 YaST GUIを使用したNovell AppArmorプロファイルの構築

メインメニューで YaST+Novell AppArmorを起動して、YaST GUIを開きます。以下に示すように、Novell AppArmorがYaSTインタフェースの中で開きます。

[Note]注意

また、ターミナルウィンドウを開き、rootとしてログインし、「yast2」と入力してYaST GUIにアクセスすることもできます。

Novell AppArmorへのYaSTの主要な制御

右のフレームにNovell AppArmorオプションアイコンが表示されます。YaSTウィンドウの左フレームでNovell AppArmor が表示されない場合、またはNovell AppArmorアイコンが表示されない場合、Novell AppArmorを再インストールする必要があるかもしれません。以下のアクションはNovell AppArmorから行うことができます。

以下のNovell AppArmorアイコンから1つをクリックし、以下に示すセクションに進みます。

プロファイルウィザードの追加

手順の詳細については、3.3.1項 「ウィサードを使用してプロファイルを追加する」 (↑Novell AppArmor 2.0アドミニストレーションガイド)を参照してください。

手動によるプロファイルの追加

ウィザードを使用せずに、使用するシステム用のNovell AppArmorプロファイルを追加します。手順の詳細については、3.3.2項 「手動によるプロファイルの追加」 (↑Novell AppArmor 2.0アドミニストレーションガイド)を参照してください。

プロファイルの編集

使用するシステム上で既存のNovell AppArmorプロファイルを編集します。手順の詳細については、3.3.3項 「プロファイルの編集」 (↑Novell AppArmor 2.0アドミニストレーションガイド)を参照してください。

プロファイルルの削除

使用するシステムから既存のNovell AppArmorプロファイルを削除します。手順の詳細については、3.3.4項 「プロファイルの削除」 (↑Novell AppArmor 2.0アドミニストレーションガイド)を参照してください。

プロファイルルウィザードのアップデート

手順の詳細については、3.3.5項 「Syslogエントリからのプロファイルの更新」 (↑Novell AppArmor 2.0アドミニストレーションガイド)を参照してください。

AppArmorのレポート

手順の詳細については、4.3項 「レポート」 (↑Novell AppArmor 2.0アドミニストレーションガイド)を参照してください。

AppArmorコントロールパネル

手順の詳細については、3.3.6項 「Novell AppArmorおよびセキュリティイベントの状態の管理」 (↑Novell AppArmor 2.0アドミニストレーションガイド)を参照してください。

3.3.1 ウィサードを使用してプロファイルを追加する

プロファイルの追加ウィザードは、Novell AppArmorプロファイルツール、genprof (プロファイルの生成)およびlogprof(ラーニングモードログファイルからプロファイルを更新)を使用して、Novell AppArmorプロファイルを設定するよう設計されています。これらのツールについての詳細は、3.5.3項 「ツールのプロファイルの概要」 (↑Novell AppArmor 2.0アドミニストレーションガイド)を参照してください。

  1. アプリケーションの起動がプロファイルに含まれるようにするには、アプリケーションをプロファイルする前に停止します。これを行うには、アプリケーションまたはデーモンがプロファイルする前に実行されていないことを確認します。

    たとえば、rootとしてログインしている間に、ターミナルウィンドウで/etc/init.d/PROGRAM stopと入力します。PROGRAMは、プロファイルするプログラム名に置き換えます。

  2. まだ行っていない場合、YaST GUIで[Novell AppArmor]+[プロファイルウィザードを追加]をクリックします。

    プロファイルするアプリケーションの選択
  3. アプリケーション名を入力するか、プログラムがある場所を検索します。

  4. [作成]をクリックします。autodepという名前のNovell AppArmorツールが実行されます。このツールではプログラムの静的な分析を行い、およそのプロファイルをNovell AppArmorモジュールにロードします。iautodepについての詳細は、3.5.3.1項 「autodep」 (↑Novell AppArmor 2.0アドミニストレーションガイド)を参照してください。

    [AppArmorプロファイルウィザード]ウィンドウが開きます。

    Novell AppArmor genprofプロファイルウィザード Wizard

    バックグラウンドでは、Novell AppArmorはプロファイルをラーニングモードに設定します。ラーニングモードについての詳細は、3.5.3.2項 「コンプレインモードまたはラーニングモード」 (↑Novell AppArmor 2.0アドミニストレーションガイド)を参照してください。

  5. プロファイルされているアプリケーションを実行します。

  6. できるだけ多くのアプリケーション機能を実行し、ラーニングモードが、プログラムが正しく機能するためにアクセスを必要とするファイルおよびディレクトリを記録できるようにします。

  7. [エントリのシステムログをスキャンしてプロファイルに追加する]をクリックして、ラーニングモードログファイルを解析します。セキュリティプロファイルを生成する際に、ウィザードを誘導するため答える必要がある一連の質問が生成されます。

    質問は2つのカテゴリに分かれます。

    これらのケースはそれぞれ、リソースをプロファイルに追加するとき、またはプログラムをプロファイルに追加するときに回答する必要がある一連の質問となって現れます。以下の2つの図は、各ケースの例を示します。後のステップでは、これらの質問に回答する際のオプションについて記載します。

    [AppArmorプロファイルウィザード]ウィンドウが開きます。

    図 3.1 ラーニングモードの例外:特定のリソースへのアクセス制御

    ラーニングモードの例外:特定のリソースへのアクセス制御

    図 3.2 ラーニングモードの例外:エントリへの実行権限を定義する

    ラーニングモードの例外:エントリへの実行権限を定義する
  8. [プロファイルウィザードの追加]は、プロファイルしているアプリケーションがアクセスしているディレクトリパスエントリを示唆します(図 3.1. 「ラーニングモードの例外:特定のリソースへのアクセス制御」 (↑Novell AppArmor 2.0アドミニストレーションガイド)が示すとおり)。またはエントリへの実行権限を定義するよう要求します(図 3.2. 「ラーニングモードの例外:エントリへの実行権限を定義する」 (↑Novell AppArmor 2.0アドミニストレーションガイド)が示すとおり)。

    1. (↑Novell AppArmor 2.0アドミニストレーションガイド)に向けて以下のオプションから、アクセスの要求を満たすものを選択します。選択するのは、推奨されるinclude、特定のグロッビングされたパスのバージョン、または実際のパス名などです。これらのオプションは必ずしも利用できるわけではないことに注意してください。

      #include

      includeファイルを参照するNovell AppArmorプロファイルのセクションです。プログラムへのアクセス権を取得するファイルを含めます。includeを使用すると、その他のプログラムもまた必要とするディレクトリパスまたはファイルへのアクセス権を、プログラムに備えることができます。 includeを使用すると、プロファイルのサイズを縮小できます。提案されたときにincludeを選択するのは、良い習慣です。

      グロッビングされたバージョン

      以下のステップで説明するように、グロッビングをクリックすることによりアクセスします。詳細については、3.6項 「パス名およびグロッビング」 (↑Novell AppArmor 2.0アドミニストレーションガイド)を参照してください。

      実際のパス名

      正しく実行されるよう、プログラムがアクセスを必要とする完全なパスです。

    2. (↑Novell AppArmor 2.0アドミニストレーションガイド)に向けて以下のオプションから、アクセスの要求を満たすものを選択します。

      継承

      同じセキュリティプロファイルを維持します(親のプロファイル)。

      プロファイル

      実行されたプログラムに対し別のプロファイルが存在することが必要です。

      制限なし

      セキュリティプロファイルを持たずにプログラムを実行します。

      [Warning]警告

      どうしても必要な場合以外は、制限なしで実行しないでください。[制限なし]オプションを選択すると、AppArmorからの保護なしに新しいプログラムが実行されます。

  9. ディレクトリパスを選択したら、[許可]または[拒否]をクリックして、ディレクトリパスをNovell AppArmorプロファイルへのエントリとして処理する必要があります。表示されるディレクトリパスに満足しない場合は、[グロッビング]または[編集]できます。

    ラーニングモードエントリの処理およびプロファイルの構築では、以下のオプションを使用できます。

    許可

    特定のディレクトリパスエントリへのアクセスをプログラムに許可します。[プロファイルウィザードの追加]ではファイルのアクセス権を示唆します。詳細については、3.7項 「ファイルアクセス権限モード」 (↑Novell AppArmor 2.0アドミニストレーションガイド)を参照してください。

    拒否

    プログラムが特定のディレクトリパスエントリへアクセスするのを防ぐには、[拒否]をクリックします。

    グロッビング

    これをクリックすると、(ワイルドカードを使用して)ディレクトリが変更され、提示されたエントリディレクトリ内のすべてのファイルが含まれます。ダブルクリックすると、表示されたファイル以下のすべてのファイルおよびサブディレクトリへのアクセスが許可されます。

    構文のグロッビングに関する情報の詳細については、3.6項 「パス名およびグロッビング」 (↑Novell AppArmor 2.0アドミニストレーションガイド)を参照してください。

    拡張子を付けてグロッビング

    もとのディレクトリパスを変更する一方、ファイル名の拡張子は保持します。シングルクリックをすると、/etc/apache2/file.ext/etc/apache2/*.extとなります。ファイル名の替わりにワイルドカード(アスタリスク)を追加しています。これによりプログラムは、提案されたディレクトリ内にある、.ext拡張子で終わるすべてのファイルにアクセスできます。ダブルクリックすると、表示されたファイル以下の、(特定の拡張子を持つ)すべてのファイルおよびサブディレクトリへのアクセスが許可されます。

    編集

    強調表示された行を編集できるようにします。新しい(編集した)行はリストの最後に表示されます。

    停止

    これまでに入力した変更を排除し、すべてのプロファイルを制限なしのままにして、logprofを停止します。

    完了

    これまでに入力した変更を保存し、すべてのプロファイルを変更して、logprofを閉じます。

    各ラーニングモードエントリで、[許可]または[拒否]をクリックします。これらの処理はNovell AppArmorプロファイルの構築を支援します。

    [Note]注意

    ラーニングモードエントリの数は、アプリケーションの複雑性と一致します。

    アプリケーションの機能性をさらに実行するには、前のステップを繰り返します。

    終了したら、[完了]をクリックします。続くポップアップ画面で[はい]をクリックして、[プロファイル作成ウィザード]を終了します。プロファイルは保存され、Novell AppArmorモジュールにロードされます。

3.3.2 手動によるプロファイルの追加

Novell AppArmorを使用すると、手動でエントリをプロファイルに追加してNovell AppArmorプロファイルを作成できます。単純にプロファイルを作成するアプリケーションを選択し、エントリを追加するだけです。

  1. プロファイルを追加するには、YaST+Novell AppArmorを開きます。Novell AppArmorインタフェースが開きます。

  2. [Novell AppArmor]で、[手動でプロファイルを追加]を選択します(図 3.3. 「手動によるプロファイルの追加アプリケーションの選択」 (↑Novell AppArmor 2.0アドミニストレーションガイド)を参照)。

    図 3.3 手動によるプロファイルの追加アプリケーションの選択

    プロファイルを作成するアプリケーションを選択
  3. システムをブラウズしてプロファイルを作成するアプリケーションを検索します。

  4. プロファイルを検索したら、選択して[開く]をクリックします。[Novell AppArmorプロファイルダイアログ]ウィンドウ内に、基本的な空のプロファイルが表示されます。

    手動によるプロファイルの作成
  5. [AppArmor プロファイルダイアログ]ウィンドウでは、対応するボタンをクリックして以下のセクションを参照し、Novell AppArmorプロファイルエントリを追加、編集、削除できます。3.3.2.1項 「エントリの追加」 (↑Novell AppArmor 2.0アドミニストレーションガイド)3.3.2.2項 「エントリの編集」 (↑Novell AppArmor 2.0アドミニストレーションガイド)または3.3.2.2項 「エントリの編集」 (↑Novell AppArmor 2.0アドミニストレーションガイド)です。

  6. 終了したら、[終了]をクリックします。

3.3.2.1 エントリの追加

このセクションでは、3.3.2項 「手動によるプロファイルの追加」 (↑Novell AppArmor 2.0アドミニストレーションガイド)または3.3.3項 「プロファイルの編集」 (↑Novell AppArmor 2.0アドミニストレーションガイド)にある、[エントリの追加]オプションについて説明します。[エントリの追加]を選択すると、ドロップダウンリスト上に、Novell AppArmorプロファイルに追加できるエントリの種類が表示されます。

3.3.2.2 エントリの編集

このセクションでは、3.3.2項 「手動によるプロファイルの追加」 (↑Novell AppArmor 2.0アドミニストレーションガイド)または3.3.3項 「プロファイルの編集」 (↑Novell AppArmor 2.0アドミニストレーションガイド)にある、[エントリの編集]オプションについて説明します。[エントリの編集]を選択すると、ファイルブラウザポップアップウィンドウが開きます。ここから選択したエントリを編集できます。

ポップアップウィンドウで、ファイルの絶対パスおよび与えられているアクセス権を指定します。必要な場合、グロッビングを使用できます。終了したら、[OK]をクリックします。

グロッビングの情報については、3.6項 「パス名およびグロッビング」 (↑Novell AppArmor 2.0アドミニストレーションガイド)を参照してください。ファイルアクセス権情報に関しては、3.7項 「ファイルアクセス権限モード」 (↑Novell AppArmor 2.0アドミニストレーションガイド)を参照してください。

エントリの編集

3.3.2.3 エントリの削除

このセクションでは、3.3.2項 「手動によるプロファイルの追加」 (↑Novell AppArmor 2.0アドミニストレーションガイド)または3.3.3項 「プロファイルの編集」 (↑Novell AppArmor 2.0アドミニストレーションガイド)にある、[エントリの削除]オプションについて説明します。エントリを選択し、[エントリを削除]をクリックすると、Novell AppArmorは選択したプロファイルエントリを削除します。

3.3.3 プロファイルの編集

Novell AppArmorを使用すると、エントリを追加、編集、削除してNovell AppArmorプロファイルを手動で編集できます。単純にプロファイルを選択してエントリを追加、編集、削除するだけです。プロファイルを編集するには、次のステップに従ってください。

  1. YaST+Novell AppArmorを開きます。

  2. [Novell AppArmor]で、[プロファイルの編集]をクリックします。[プロファイルの編集—編集するプロファイルを選択]ウィンドウが開きます。

    編集するプロファイルの選択
  3. プロファイルされたプログラムの一覧から、編集するプロファイルを選択します。

  4. [次へ] をクリックします。[AppArmor Profile Dialog]ウィンドウでプロファイルを表示します。

    プロファイルダイアログ
  5. [appArmorプロファイルダイアログ]ウィンドウでは、対応するボタンをクリックして以下のセクションを参照し、Novell AppArmorプロファイルエントリを追加、編集、削除できます。3.3.2.1項 「エントリの追加」 (↑Novell AppArmor 2.0アドミニストレーションガイド)3.3.2.2項 「エントリの編集」 (↑Novell AppArmor 2.0アドミニストレーションガイド)または3.3.2.3項 「エントリの削除」 (↑Novell AppArmor 2.0アドミニストレーションガイド)です。

  6. 終了したら、[終了]をクリックします。

  7. 表示されるポップアップ画面で、[はい]をクリックしてプロファイルへの変更を確定します。

3.3.4 プロファイルの削除

Novell AppArmorを使用すると、Novell AppArmorプロファイルを手動で削除できます。単純にプロファイルを削除するアプリケーションを選択し、以下のように削除するだけです。

  1. YaST+Novell AppArmorを開きます。Novell AppArmorインタフェースが表示されます。

  2. [Novell AppArmor]で、[プロファイルの削除]をクリックします。[プロファイルの削除—削除するプロファイルを選択]ウィンドウが開きます。

    プロファイルの削除、削除するプロファイルを選択
  3. 削除するプロファイルを選択します。

  4. [次へ] をクリックします。

  5. 表示されるポップアップ画面で、[はい]をクリックしてプロファイルを削除します。

3.3.5 Syslogエントリからのプロファイルの更新

Novell AppArmorプロファイルウィザードではlogprofを使用します。このツールでログファイルをスキャンしてプロファイルを更新できます。logprofは、使用するシステム上で実行されているすべてのプロファイルへの例外を示す、Novell AppArmorモジュールからのメッセージを追跡します。これらの例外は、プログラムへのプロファイル定義外である、プロファイルされたアプリケーションの動作を表します。提案されたプロファイルエントリを選択して、新規の動作を関連するプロファイルに追加できます。

  1. YaST+Novell AppArmorを開きます。Novell AppArmorインタフェースが表示されます。

  2. [Novell AppArmor]で、[プロファイルウィザードの更新]をクリックします。[AppArmorプロファイルウィザード]ウィンドウが表示されます。

    AppArmorプロファイルウィザード

    [プロファイルウィザードの更新](logprof)を実行すると、ラーニングモードログファイルが解析されます。セキュリティプロファイルを生成する際に、logprofを誘導するため答える必要がある一連の質問が生成されます。

    質問は2つのカテゴリに分かれます。

    これらの場合の結果はいずれも、リソースまたはプログラムをプロファイルに追加するために答える必要がある質問となります。以下の2つの図は、各ケースの例を示します。後のステップでは、これらの質問に回答する際のオプションについて記載します。

    図 3.4 ラーニングモードの例外:特定のリソースへのアクセス制御

    ラーニングモードの例外:特定のリソースへのアクセス制御

    図 3.5 ラーニングモードの例外:エントリへの実行権限を定義する

    ラーニングモードの例外:エントリへの実行権限を定義する
  3. logprofは、プロファイルしているアプリケーションがアクセスしているディレクトリパスエントリを示唆します(図 3.4. 「ラーニングモードの例外:特定のリソースへのアクセス制御」 (↑Novell AppArmor 2.0アドミニストレーションガイド)が示すとおり)。またはエントリへの実行権限を定義するよう要求します(図 3.5. 「ラーニングモードの例外:エントリへの実行権限を定義する」 (↑Novell AppArmor 2.0アドミニストレーションガイド)が示すとおり)。

    1. 図 3.4. 「ラーニングモードの例外:特定のリソースへのアクセス制御」 (↑Novell AppArmor 2.0アドミニストレーションガイド)に向けて以下のオプションから、アクセスの要求を満たすものを選択します。選択するのは、推奨されるinclude、特定のグロッビングされたパスのバージョン、または実際のパス名などです。これらのオプションは必ずしも利用できるわけではないことに注意してください。

      #include

      includeファイルを参照するNovell AppArmorプロファイルのセクションです。プログラムへのアクセス権を取得するファイルを含めます。includeを使用すると、その他のプログラムもまた必要とするディレクトリパスまたはファイルへのアクセス権を、プログラムに備えることができます。 includeを使用すると、プロファイルのサイズを縮小できます。提案されたときにincludeを選択するのは、良い習慣です。

      グロッビングされたバージョン

      以下のステップで説明するように、グロッビングをクリックすることによりアクセスします。詳細については、3.6項 「パス名およびグロッビング」 (↑Novell AppArmor 2.0アドミニストレーションガイド)を参照してください。

      実際のパス名

      正しく実行されるよう、プログラムがアクセスを必要とする完全なパスです。

    2. 図 3.5. 「ラーニングモードの例外:エントリへの実行権限を定義する」 (↑Novell AppArmor 2.0アドミニストレーションガイド)に向けて以下から、アクセスへの要求を満たすものを一つ選択します。

      継承

      同じセキュリティプロファイルを維持します(親のプロファイル)。

      プロファイル

      実行されたプログラムに対し別のプロファイルが存在することが必要です。

      制限なし

      セキュリティプロファイルを持たずにプログラムが実行されます。

      [Warning]警告

      どうしても必要な場合以外は、制限なしで実行しないでください。[制限なし]オプションを選択すると、AppArmorからの保護なしに新しいプログラムが実行されます。

  4. ディレクトリパスを選択したら、[許可]または[拒否]をクリックして、ディレクトリパスをNovell AppArmorプロファイルへのエントリとして処理する必要があります。表示されるディレクトリパスに満足しない場合は、[グロッビング]または[編集]できます。

    ラーニングモードエントリの処理およびプロファイルの構築では、以下のオプションを使用できます。

    許可

    特定のディレクトリパスエントリへのアクセスをプログラムに許可します。[プロファイル作成ウィザード]ではファイルのアクセス権を示唆します。詳細については、3.7項 「ファイルアクセス権限モード」 (↑Novell AppArmor 2.0アドミニストレーションガイド)を参照してください。

    拒否

    プログラムが特定のディレクトリパスエントリへアクセスするのを防ぐには、[拒否]をクリックします。

    グロッビング

    これをクリックすると、(ワイルドカードを使用して)ディレクトリが変更され、提示されたエントリディレクトリ内のすべてのファイルが含まれます。ダブルクリックすると、表示されたファイル以下のすべてのファイルおよびサブディレクトリへのアクセスが許可されます。

    構文のグロッビングに関する情報の詳細については、3.6項 「パス名およびグロッビング」 (↑Novell AppArmor 2.0アドミニストレーションガイド)を参照してください。

    拡張子を付けてグロッビング

    もとのディレクトリパスを変更する一方、ファイル名の拡張子は保持します。シングルクリックをすると、/etc/apache2/file.ext/etc/apache2/*.extとなります。ファイル名の替わりにワイルドカード(アスタリスク)を追加しています。これによりプログラムは、提案されたディレクトリ内にある、.ext拡張子で終わるすべてのファイルにアクセスできます。ダブルクリックすると、表示されたファイル以下の、(特定の拡張子を持つ)すべてのファイルおよびサブディレクトリへのアクセスが許可されます。

    編集

    強調表示された行を編集できるようにします。新しい(編集した)行はリストの最後に表示されます。

    停止

    これまでに入力した変更を排除し、すべてのプロファイルを制限なしのままにして、logprofを停止します。

    完了

    これまでに入力した変更を保存し、すべてのプロファイルを変更して、logprofを閉じます。

    各ラーニングモードエントリで、[許可]または[拒否]をクリックします。これらの処理はNovell AppArmorプロファイルの構築を支援します。

    [Note]注意

    ラーニングモードエントリの数は、アプリケーションの複雑性と一致します。

    アプリケーションの機能性をさらに実行するには、前のステップを繰り返します。

    終了したら、[完了]をクリックします。続くポップアップ画面で[はい]をクリックして、[プロファイル作成ウィザード]を終了します。プロファイルは保存され、Novell AppArmorモジュールにロードされます。

3.3.6 Novell AppArmorおよびセキュリティイベントの状態の管理

Novell AppArmorを使用すると、Novell AppArmorの状態を変更し、イベントの通知を設定できます。

Novell AppArmorの状態の変更

有効または無効にすることで、Novell AppArmorの状態を変更することができます。Novell AppArmorを有効にすると、システムでプログラムが悪用される可能性を防ぎます。Novell AppArmorを無効にすると、プロファイルが設定されていたとしても、システムから保護を削除します。

イベント通知の設定

システムセキュリティイベントが発生したときに通知する方法と時間を決定します。

[Note]注意

SUSE Linuxサーバ上に、単独メール配信プロトコル(smtp)を使用してメールを送信できるメールサーバを設定する必要があります。たとえば、イベント通知を動作させるには、postfixまたはeximを設定します。

イベントの通知を設定する、またはNovell AppArmorの状態を変更するには、以下のステップを行います。

  1. [Novell AppArmorコントロールパネル]をクリックすると、[Novell AppArmor設定]ウィンドウが以下のように表示されます。

    AppArmorコントロールパネル
  2. [AppArmor設定]画面から、[有効]を読み取るステータスメッセージを検索し、Novell AppArmorおよびセキュリティイベントの通知が実行されているか確認します。 

3.3.6.1 Novell AppArmorの状態の変更

Novell AppArmorの状態を変更するときは、有効または無効に設定します。Novell AppArmorが有効のとき、インストールは行われていて、Novell AppArmorセキュリティポリシーを実行し強制しています。

  1. Novell AppArmorを有効にするには、YaST+Novell AppArmorを開きます。Novell AppArmorメインメニューが開きます。

  2. [Novell AppArmor]のメインメニューで、[AppArmorコントロールパネル]をクリックします。[AppArmor設定]ウィンドウが表示されます。

    AppArmor設定ウィンドウ
  3. ウィンドウの[Novell AppArmorを有効にする]セクションで、[設定]をクリックします。[Novell AppArmorの有効化]ダイアログボックスが開きます。

    AppArmorの有効化
  4. Novell AppArmorを有効にするには[有効にする]を、無効にするには[無効にする]を選択します。[OK]をクリックします。

  5. [AppArmor設定]ウィンドウから[終了]をクリックします。

  6. YaSTコントロールセンターで [ファイル]+[終了]をクリックします。