AppArmorで強制アクセス制御AppArmorの使い方について記載します。AppArmorのインストールデフォルトでapparmorはインストールされていますが、utilsやprofileがインストールされていないのでインストールします。AppArmorの状態を表示aa-statusでAppArmorの状態を表示します。modeはプロファイルが許可しない動作をブロックします。modeはプロファイルが許可しない動作をブロックせずにログに残します。/sbin/dhclientはAppArmorによって制御されます(AppArmorはPathベースのMACです)。このプロファイルの一覧にないPathは特に制限を受けません。プロファイルの状態変更aa-enforceでEnforceモードにします。/etc/apparmor.d/<profile>aa-complainでComplainモードにします。disableディレクトリにシンボリックリンクを作成することで、AppArmor起動時に無効化します。disableディレクトリにシンボリックリンクを削除することで、AppArmor起動時に有効化します。プロファイルの作成/bin/catを/bin/mycatというファイル名でコピーします。/bin/mycat向けにプロファイルを作成していきます。/bin/mycataa-genprofで雛形を作成します。Fを押して終了します。aa-genprofをそのまま動かしつつ、他のターミナルで/bin/mycatを一通り操作することで、/var/log/syslogにログが溜まっていき、Sを押してアクションを許容するかどうかを決定してプロファイルの雛形を作成することもできます。(F)inish<snip>雛形は以下の通りです。mr,}雛形を以下のように変更します。/fooはファイルとして扱われ、/bar/はディレクトリとして扱われる点に注意してください。read.}プロファイルをEnforceにします。mode./bin/mycatの実行結果は以下の通りです。deniedになります。