fpm コマンド

目的

setuid または setgid アクセス権を持つ特権ユーザーが所有するコマンドとデーモンへのアクセス権を管理します。

構文

fpm [ -l level [ -f file ] [ [ -c ] [ -p ] ] [ -v ] ] | [ -s ] | [ -q ] | [ -? ]

説明

fpm コマンドを使用すると、管理者はオペレーティング・システムで多くのコマンドの setuid ビットと setgid ビットを使用不可にしてシステムを強化することができます。このコマンドは、特権ユーザーが所有するコマンドとデーモンから setuid アクセス権を除去することを目的としています。ただし、このコマンドをカスタマイズして、固有のコンピューター環境の特殊なニーズに対応することもできます。

基本 AIX® オペレーティング・システム上の setuid プログラムは、強化のレベルのためにグループ化されています。このグループ化により、管理者はシステム環境に応じて強化のレベルを選択できます。また、fpm コマンドを使用して、環境内で使用不可にする必要があるプログラムのリストをカスタマイズできます。使用不可化のレベルを検討して、環境に適したレベルを選択する必要があります。

fpm コマンドでコマンドとデーモンの実行アクセス権を変更すると、非特権ユーザーがこれらのコマンドとデーモンまたはコマンドとデーモンの機能にアクセスできなくなります。また、これらのコマンドとデーモンを呼び出したり依存したりする他のコマンドも影響を受ける可能性があります。 fpm コマンドで変更されたアクセス権を持つコマンドとデーモンに依存するユーザー作成スクリプトは、非特権ユーザーがこれらを実行すると期待どおりに動作しません。コマンドとデーモンのデフォルトのアクセス権を変更する場合は、その効果と起こり得る影響についてよく考慮してください。

このコマンドを使用してクリティカルなコンピューター環境でコマンドとデーモンの実行アクセス権を変更する場合は、事前に適切なテストを実行する必要があります。実行アクセス権を変更した環境で問題が発生した場合は、デフォルトのアクセス権を復元し、このデフォルトの環境で問題を再作成して、その問題の原因が適切な実行アクセス権の不足ではないことを確認してください。

fpm コマンドには、-l default フラグを使用して元の AIX インストール済み環境のデフォルト・アクセス権を復元する機能があります。

また、fpm コマンドは、ファイルのアクセス権の状態をファイルの変更前にログに記録します。fpm ログ・ファイルは、/var/security/fpm/log/date_time ファイルに作成されます。必要に応じて、これらのログ・ファイルを使用して、前回保管されたログ・ファイルに記録されていたシステムのファイル・アクセス権を復元できます。

fpm コマンドがアクセス権を拡張したファイルで使用される場合、このコマンドはその拡張アクセス権を使用不可にします。ただし、fpm の呼び出し前に存在した拡張アクセス権のデータは拡張 ACL に保存されます。

カスタマイズされた構成ファイルを高、中、低、およびデフォルトの設定の一部として作成して設定することができます。ファイル・リストは、/usr/lib/security/fpm/custom/high/* ディレクトリー、 /usr/lib/security/fpm/custom/medium/* ディレクトリー、および /usr/lib/security/fpm/custom/default/* ディレクトリーで指定できます。この機能を利用するには、fpm コマンドの内部リストに加えて、自動的に処理したいファイルのリストを含むファイルを作成します。fpm コマンドは実行されると、対応するカスタマイズ・ディレクトリー内のリストも処理します。カスタマイズされたファイルのフォーマットの例を確認するには、/usr/lib/security/fpm/data/high_fpm_list ファイルを表示します。デフォルトのフォーマットは、/usr/lib/security/fpm/data/default_fpm_list.example ファイルで表示できます。-l low フラグのカスタマイズの場合、fpm コマンドは /usr/lib/security/fpm/custom/medium ディレクトリーの同じファイルを読み取りますが、setgid アクセス権だけを除去します。その一方で、-l medium フラグは、setuid と setgid の両方のアクセス権を除去します。

fpm コマンドは、TCB 対応ホストでは実行できません。

フラグ

項目 説明
-l level 指定したレベルに応じてファイルのアクセス権を変更することを指定します。
-l high
高レベル・セキュリティー。このフラグは、コンピューター・システムに対して setuid と setgid のアクセス権を除去し、それらを高レベル・セキュリティーに分類します。このフラグは、デフォルトの入力として /usr/lib/security/fpm/data/high_fpm_list ファイルと /usr/lib/security/fpm/custom/high/*.* ファイル内のファイル・リストを使用します。ただし、-f フラグを使用して代替入力ファイルを選択できます。
-l medium
中レベル・セキュリティー。このフラグは、コンピューター・システムに対して setuid と setgid のアクセス権を除去し、それらを中レベル・セキュリティーに分類します。このフラグは、デフォルトの入力として /usr/lib/security/fpm/data/med_fpm_list ファイルと /usr/lib/security/fpm/custom/med/*.* ファイル内のファイル・リストを使用します。-f フラグを使用して代替入力ファイルを選択できます。
-l low
低レベル・セキュリティー。このフラグは、コンピューター・システムに対して setuid アクセス権のみを除去し、それらを低レベル・セキュリティーに分類します。このフラグは、デフォルトの入力として /usr/lib/security/fpm/data/med_fpm_list ファイルと /usr/lib/security/fpm/custom/med/*.* ファイル内のファイル・リストを使用します。-f フラグを使用して代替入力ファイルを選択できます。
-l default
fpm コマンドで変更されたシステム・コマンドをデフォルトの出荷時のアクセス権に戻します (そのコマンドが高、中、または低のレベルを使用して変更された場合)。このオプションは、/usr/lib/security/fpm/custom/default/*.* ファイルを読み取り、そのファイルに定義されたアクセス権を設定します。
-s fpm コマンドで前回行われた変更の状況を表示します。状況は /usr/lib/security/fpm/data/status_fpm ファイルに書き込まれます。セキュリティー・レベルは、1 から 5 (包括的) の整数で表されます。
-f file ファイル・リストを指定してデフォルトの入力ファイルを上書きします。この場合、file パラメーターは、入力に使用されるファイルのリストを含むファイルの名前です。このフラグは、-l high|medium|low|default または -c フラグと一緒に使用する必要があります。高、中、低のレベルを使用する場合、入力ファイルのフォーマットは次のようになります。

full_path/filename

例: /usr/sbin/foo

-l default フラグと一緒に使用される場合、入力ファイルのフォーマットは次のようになります。

octet_permissions full_path/filename

octet_permissions 変数と full_path 変数の間にはスペースが 1 つ必要です。例: 0750 /usr/sbin/foo

-f フォーマットでは、影響を受けるファイル・リストの特定の制御が可能です。

-c ファイルのアクセス権を検査します。ただし、アクションは実行しません。fpm コマンドは、非準拠のファイルが見つからなかった場合、0 を返します。1 つ以上のファイルに非準拠のアクセス権が含まれている場合、このオプションは非準拠のファイルをリストし、1 を返します。このフラグは、-l level オプションと一緒に使用する必要があります。例えば、-c フラグと -l high フラグを一緒に使用すると、fpm コマンドは /usr/lib/security/fpm/data/high_fpm_list ファイルにリストされているファイルを検査し、それらの setuid と setgid のアクセス権を除去します。-f file フラグは、-c オプションと一緒に使用することもできます。
-v 詳細出力。
-p fpm コマンドが行う変更をプレビューします。ただし、アクションは実行しません。このフラグは、-l level フラグと一緒に使用する必要があります。
-q 終了モード。出力を最小限にして、警告を抑制します。
-? 使用方法に関するステートメントを表示します。

終了状況

項目 説明
0 成功です。
非ゼロ 失敗、または一部失敗。 詳しくは、-v フラグを参照してください。

セキュリティー

fpm コマンドは、setuid と setgid アクセス権のコマンド数を削減します。

  1. fpm コマンドの低レベル・セキュリティー設定を適用するには、次のように入力します。
    fpm –l low
    このコマンドは、/usr/lib/security/fpm/custom/med/ ディレクトリー内のファイル・リストも処理します。
  2. システム・コマンドが現在 fpm の低レベル・アクセス権に設定されているかを確認するには、次のように入力します。
    fpm –c –l low
    このコマンドは、不適合のアクセス権を持つファイルを報告します。
  3. 元々の出荷時のデフォルト・アクセス権を復元するには、次のように入力します。
    fpm –l default
    このコマンドは、/usr/lib/security/fpm/custom/default/ ディレクトリー内のファイル・リストも処理します。
  4. ファイル・アクセス権を変更せずに、fpm コマンドの高レベル・セキュリティーにシステムを準拠させるために行うアクセス権の変更をリストまたはプレビューするには、次のように入力します。
    
    fpm -l high –p
    このコマンドは、/usr/lib/security/fpm/custom/high/ ディレクトリー内のファイル・リストもプレビューします。
  5. fpm コマンドの高レベル・セキュリティー設定を適用するには、次のように入力します。
    fpm –l high
    このコマンドは、/usr/lib/security/fpm/custom/high/ ディレクトリー内のファイル・リストも処理します。
  6. fpm コマンドで変更されたシステムの現在の状況をリストするには、次のように入力します。
    fpm –s
  7. fpm -l level コマンドが 2007 年 1 月 7 日 8:00 a.m. に実行された場合、影響を受けるファイルのアクセス権の状態は fpm コマンドによりその変更前に取り込まれています。 ファイル・アクセス権を 2007 年 1 月 7 日 8:00 a.m. の状態に復元するには、次のように入力します。
    fpm –l default –f /var/security/fpm/log/01072007_08:00:00

ファイル

項目 説明
/usr/lib/security/fpm/data/default_list_example デフォルトの出荷時のアクセス権とファイルが入っています。
/usr/lib/security/fpm/data/high_fpm_list -l high フラグで変更可能なアクセス権を持つファイルのリストが入っています。
/usr/lib/security/fpm/data/med_fpm_list -l medium または -l low フラグで変更可能なアクセス権を持つファイルのリストが入っています。
/usr/lib/security/fpm/custom/high/* このディレクトリー内のファイルは、-l high レベルが選択された場合にユーザー構成の入力として使用できます。これらのファイルには、fpm コマンドが setuid と setgid のアクセス権を除去する元のファイルのリストが入っていなければなりません。
/usr/lib/security/fpm/custom/medium/* このディレクトリー内のファイルは、高レベルのディレクトリーと同様に機能しますが、-l medium フラグおよび -l low フラグと一緒に使用されます。
/usr/lib/security/fpm/custom/default/* このディレクトリー内のファイルは、高レベルのディレクトリーと同様に機能しますが、-l default フラグと一緒に使用されます。
注: これらのファイルは、/usr/lib/security/fpm/data/default_list_example ファイルと同じフォーマットでなければなりません。
/usr/lib/security/fpm/data/status_fpm fpm コマンドの前回の実行で変更されたファイル・アクセス権の状況が入っています。
/var/security/fpm/log/date_time fpm コマンドで変更された、コマンドの実行日時に対応するファイルのリストが入っています。このファイルは、-f フラグの入力ファイルとして使用してアクセス権をこのインスタンスに復元できます。