シェルスクリプトマガジン

第26回 アクセスを制限する(AppArmor)

初期状態を確認する

まずは、インストールした直後のUbuntu Server 16.04 LTSでのAppArmorの状態を確認します。次のように「aa-status」コマンドを実行してください。「[sudo] taro のパスワード:」のように表示されたら、自分のパスワードを入力します。

次のようにAppArmorの状態が表示されます。

ポイントとなる部分は「13 profiles are loaded.」「13 profiles are in enforce mode.」「0 profiles are in complain mode.」「1 processes are in enforce mode.」「0 processes are in complain mode.」の五つです。これらは、13個のプロファイルが読み込まれていること、13個のプロファイルが「enforce」モードになっていること、「complain」モードになっているプロファイルがないこと、一つのプロセスがenforceモードになっていること、complainモードのプロセスがないことを表しています。「13 profiles are in enforce mode.」と「1 processes are in enforce mode.」の下には、enforceモードになっているプロファイルの名称やプロセスを表示しています。

プロファイルは、AppArmorでアクセス制限をかけるための定義ファイルです。プログラムや機能ごとに用意されていて、「/etc/apparmor.d」ディレクトリーの下に保存されています。ここでは、プロファイルの書き方を説明しません。詳しくはこちらのマニュアルを読んでください。

enforceは、プロファイルに書かれた定義に違反した場合にアクセスが制限され、警告が記録されるモードです。一方、complainは、違反してもアクセスを制限せずに警告のみ記録するモードです。complainモードは、新しく作成した定義ファイルが正しいかどうかの確認に用いるとよいでしょう。