6.4 トラブルシューティング

以下のセクションでは、Novell AppArmorを使用する際に発生する、最も一般的な問題およびエラーメッセージを一覧表示します。

SUSE Linuxをインストールしたが、YaSTメニューでAppArmorが表示されない

インストールの際にGNOMEまたはKDEデスクトップを選択すると、AppArmorがインストールされます。[最小限のグラフィックシステム]または[テキストモード]を選択すると、AppArmorはデフォルトでは含まれません。このような場合、YaSTを使用して存在しないパッケージをインストールします。詳細については、 『Novell AppArmor 2.0 Installation and QuickStart Guide』を参照してください。

アプリケーションが奇妙な動作を行う

アプリケーションの奇妙な動作、またはその他の種類のアプリケーション問題に気付いたら、まずログファイル内の拒否メッセージを確認し、AppArmorが必要以上にアプリケーションを抑制していないかを見ます。

拒否メッセージを確認するには、[YaST]+[Novell AppArmor]を起動し[AppArmorレポート]に移動します。[アーカイブの参照][App Aud ]の順に選択し、アプリケーション監査レポート画面を表示します。日付および時間をフィルタして、アプリケーションの動作が開始した特定の期間を絞り込むことができます。

Apacheに付随する問題

Apacheが正しく起動しないか、またはWebページを表示せず、新しいモジュールをインストールしたか、設定を変更した場合です。

追加のApacheモジュール(mod-apparmorなど)をインストールする場合、またはApacheの設定を変更する場合、Apacheのプロファイリングを再び行い、プロファイルに追加する必要があるルールを拾います。

電子メール経由でレポートを送信できない

レポート機能が生成するHTMLファイルまたはCSVファイルがデフォルトサイズを超える場合、ファイルは送信されません。メールサーバにはデフォルトの堅固な電子メールサイズがあります。この制限は、レポーティングの目的で生成される電子メールを送信するAppArmorの機能の妨げとなり得ます。メールが届かないのは、これが原因である可能性があります。

ユーザは電子メールのサイズ制限を知り、電子メールを受信していない場合はアーカイブを確認する必要があります。

使用したプロファイルの一覧から特定のプロファイルが除外される

AppArmorでは常に、プロファイルディレクトリ(/etc/apparmor.d/)内で利用できるプロファイルをすべてロードおよび適用します。ある特定のアプリケーションにプロファイルを適用しない場合、そのプロファイルを削除するか、またはAppArmorが確認を行わない他の場所へ移動します。

AppArmorの処理はさまざまなエラーを起こす可能性があります。以下は、起こり得るエラーおよびその解決方法の一覧です。

apparmor_parserが見つからない

root以外のユーザとしてlogprofを実行する場合、このエラーが起こりやすくなります。

tux@localhost:~> /usr/sbin/logprof
Can’t find apparmor_parser.
[Note]注意

rootとしてのみlogprofを実行する必要があります。

/usr/sbin/genprofをrootとして実行する必要がある

root以外のユーザとしてgenprofを実行すると、同じような結果となります。

tux@localhost:~> /usr/sbin/genprof
/usr/sbin/genprof must be run as root.
AppArmorプロファイルのアンロードに失敗

AppArmorの起動およびAppArmorの停止スクリプトをrootとして実行する必要があります。root以外のユーザとしてこれらを実行すると、同じような結果となります。

tux@localhost:~> /etc/init.d/apparmor stop
/sbin/apparmor_parser: Sorry. You need root priveleges to run this program.
Unloading AppArmor profiles..failed
AppArmorパーサのエラー

以下の例は、パーサエラー全体の構文を示しています。

Novell AppArmorプロファイルを手動で変種すると、構文エラーが起こる場合があります。プロファイルに構文エラーを伴いAppArmorを起動または再起動しようとすると、以下のようなエラーが表示されます。

localhost:~ # /etc/init.d/apparmor start
Loading AppArmor profiles
AppArmor parser error, line 2: Found unexpected character: ’h’
Profile /etc/apparmor.d/usr.sbin.squid failed to load
failed