ファイルおよびディレクトリへのアクセスの制限
では、UNIX システムの権限チェック機能を保持しつつ、強化されたアクセス制御機能を追加します。
capamsc141
PAM Server Control
では、UNIX システムの権限チェック機能を保持しつつ、強化されたアクセス制御機能を追加します。PAM Server Control
は以下の各ファイル アクセス操作をインターセプトします。製品は、その特定の操作がユーザに許可されていることを確認してから、UNIX に制御を戻します。かっこ内はアクセス タイプです。- ファイルを作成する(create)
- 読み取りの目的でファイルを開く(read)注:read権限は、ユーザがファイルに関する情報を取得する操作(ls -l など)を実行できるかどうかを制御できます。これを行うには、STAT_intercept 構成設定を 1 に設定します。詳細については、「リファレンス」セクションを参照してください。
- 書き込みの目的でファイルを開く(write)
- ファイルを実行する(execute)
- ファイルを削除する(delete)
- ファイル名を変更する(delete、rename)
- アクセス許可ビットを変更する(chmod)
- 所有者を変更する(chown)
- タイム スタンプを変更する - たとえば touch コマンドを実行によるものなど(utime)
- ACL をサポートしているシステムのネイティブ ACL を(acledit コマンドを使用して)編集する(sec)
- ディレクトリを変更する(chdir)
PAM Server Control
のアクセス チェックがネイティブ UNIX の認証と異なる点は以下のとおりです。- PAM Server Controlの権限チェックは、ユーザの実効ユーザ ID(euid)ではなく、ログインに使用した元のユーザ ID に基づいて行われます。例:userAが su コマンドを実行して別のユーザの代理になった場合、userAがアクセスできるのは、userAがアクセスを許可されているファイルのみです。su コマンドを実行して別のユーザになっても、UNIX の認証とは異なり、su コマンドを実行したユーザに、ターゲット ユーザのファイルにアクセスする権限が自動的に与えられることはありません。
- PAM Server Controlでは、システム上のすべてのファイルにアクセスできる権限がスーパーユーザ(root)に自動的に与えられることはありません。スーパーユーザは、システムの他のすべてのユーザと同様に、権限チェックの対象です。
- 権限チェックは、PAM Server Controlの標準アクセス リスト、条件付きアクセス リスト、日時制限、セキュリティ レベル、セキュリティ カテゴリ、およびセキュリティ ラベルの条件に基づいて行われます。
- 管理者がユーザに対してファイルへのアクセスを明示的に許可しなかった場合、PAM Server Controlは、そのユーザがファイルへのアクセス権限を持つグループに属しているかどうかをチェックします。
- 個々のファイル アクセスは、PAM Server Controlの通常の監査手続きによって監査されます。
- ファイルを削除する場合、PAM Server Controlでは、ユーザが指定したファイルに対する DELETE アクセス権を持つ必要があります。UNIX では、ユーザが親ディレクトリに対して WRITE アクセス権限を持つ必要があります。
- ファイルの名前変更を行う場合は、ソース ファイルに対する DELETE アクセス権限と、ターゲット ファイルに対する RENAME アクセス権限がユーザに必要です。また、UNIX では、親ディレクトリに対する WRITE アクセス権限もユーザに必要です。
- すべてのユーザには、デフォルト設定とは関係なく/etc/passwd ファイルおよび /etc/group ファイルに対する永久的な READ アクセス権(最低限)が与えられます。このアクセス権の付与によって、システムの中断を防ぎます。
- PAM Server Controlデータベースの FILE オブジェクトの所有者には、このオブジェクトによって保護されているファイルへのフル アクセス権が常に与えられます。
- chdir アクセス タイプは chdir コマンドを明示的に制御し、UNIX の場合とは動作が異なります。
以下の条件がファイル保護システムの制限事項です。
- 特別な _restricted グループのメンバでないユーザについては、以下のファイルとディレクトリのみがPAM Server Controlで保護されます。
- データベースに個々の名前で定義されているファイルおよびディレクトリ
- データベースに定義された名前パターン(/etc/* など)と一致するファイルおよびディレクトリ
PAM Server Controlで保護されます。データベースに定義されていないファイルに対する権限は、FILE クラスの _default レコードに基づきます。 - PAM Server Controlでは、保護が必要なリソースを示すすべてのファイル名およびディレクトリ名(ワイルドカードを使用したパターンを含む)のテーブルが保持されます。このテーブルを格納するために使用できるメモリの量には制限があります。通常、データベース内に個々の名前で定義できるファイルおよびディレクトリの最大数は 4096 です。名前パターンの最大数は 512 です。
- 一部のファイルは、明示的なアクセス ルールがない場合でも保護対象となります。このようなファイルには、PAM Server Controlデータベース ファイル、監査ログ、および環境設定ファイルがあります。注:詳細については、「リファレンス」セクションの FILE クラスの説明を参照してください。
PAM Server Control
では、ファイルに対して以下のアクセス タイプを使用できます。- すべて
- CHDIR
- CHMOD
- CHOWN
- CONTROL
- CREATE
- DELETE
- EXECUTE
- NONE
- READ
- RENAME
- SEC
- UPDATE
- UTIME
- WRITE
ファイル保護システムは、機密データが保存されている特定のファイルを保護する場合に便利です。たとえば、
PAM Server Control
を使用して保護できるファイルは、以下のとおりです。- /etc/passwd
- /etc/group
- /etc/hosts
- /etc/shadow
PAM Server Control
を使用して、データベースおよびサイトにあるその他すべての機密ファイルを保護します。サーバ デーモンへのアクセスのみを許可します。ユーザが明示的にルールを指定しなくても、ルールによって、常にアクセス制御が必要な一部のファイルが制御されます。
このページには以下のセクションが含まれます。
ファイル保護の機能
seosd デーモンが起動すると、データベースに定義されている各個別ファイル オブジェクトに対して UNIX の stat コマンドが実行されます。次にデーモンは、各ファイル オブジェクトのエントリを含むテーブルをメモリ内に作成します。さらに、このテーブルには個別ファイルごとにファイルの i-node およびデバイスが格納されます。
PAM Server Control
では、この情報を使用して、ファイルへのハード リンクを保護することもできます。これは、ハード リンクの保護がデバイスおよび i-node に基づいて行われるためです。データベースには、ファイルの i-node およびデバイスに関する情報は保存されません。PAM Server Control
でファイル ルールを作成する場合:- ファイルが UNIX 環境にある場合は、PAM Server Controlによってまずファイルに対して stat コマンドが実行されます。次に、ファイルの i-node およびデバイスの情報と共にエントリがファイル テーブルに追加されます。
- ファイルが UNIX 環境にない場合は、PAM Server Controlによってファイル名のエントリがファイル テーブルに追加されます(i-node およびデバイスの情報は含まれません)。この新規エントリは、包括的なファイル オブジェクトに対するエントリと同じです。同時に、カーネルの内部テーブルには、i-node およびデバイス情報の作成時にこのファイルをチェックする必要があるという指示が保存されます。ファイルが作成されると、カーネルはその作成をインターセプトします。カーネルは、ファイルの i-node およびデバイス情報を seosd に通知します。これにより、seosd デーモンは、ファイル テーブル内のファイルのエントリを更新できます。
ファイルを削除すると、
PAM Server Control
により、seosd ファイル テーブル内のエントリが削除されます。エントリは、再作成する場合に備えて PAM Server Control
データベースに保持されます。ファイルの保護
selang で保護ファイルを定義するには、以下のコマンドを入力します。
newres FILE filename
たとえば、/tmp/binary.bkup ファイルを登録するには、以下のコマンドを入力します。
newres FILE /tmp/binary.bkup
注:
アクセス タイプを指定せずにファイル ルールを定義すると、デフォルト アクセス権に NONE が割り当てられます。この場合、ファイルの所有者のみがファイルにアクセスできます。大部分の保護ファイルは、スーパーユーザによるアクセスから保護する必要があります。これを行わないと、スーパーユーザのパスワードを知っているユーザに、保護ファイルへのアクセス権が自動的に与えられます。同時に、ファイル所有者以外のすべてのユーザによるファイルへのアクセスも防止できます。
同じような名前の複数のファイルを保護するには、ワイルドカードを含むファイル名パターンを使用します。ワイルドカードは
*
(0 個以上の文字を表す) と ?
(/
以外の任意の 1 文字を表す)を使用できます。指定したパターンは、ファイルの完全パス名と照合されます。その結果、パターン /tmp/x* は、/tmp/x1、/tmp/xxx、および /tmp/xdir/a という名前のファイルに一致します。
PAM Server Control
で指定できない
パターンは、/*
、/tmp/*
、および /etc/*
です。ファイル名パターンは非常に影響力の大きいツールであるため、練習でむやみにいろいろなパターンを試さないでください。
例: 以下のコマンドでは、/tmp ディレクトリ内の、a で始まり b で終わるファイル名を持つすべてのファイルを保護対象として定義しています。これには、/tmp/axyz/axyzb のようなファイルも含まれます。
newres FILE /tmp/a*b
ファイル リソース名でのワイルドカードの使用
ファイル リソース名にワイルドカードを使用することで、複数のファイルに対応するファイル レコードを作成できます。ワイルドカードのパターンと一致する名前を持つファイルはすべて、レコードに関連付けられたアクセス権限によって保護されます。
使用できるワイルドカードは、以下のとおりです。
- * - 任意の複数文字に対応します。
- ? - 任意の 1 文字に対応します。
物理リソースの名前が複数のリソース レコード名と一致する場合、そのリソースには、ワイルドカードを除く、最も長い一致が使用されます。
PAM Server Control
では、FILE リソースの名前として以下のパターンを受け付けません
。- *
- /*
- /tmp/*
- /etc/*
例: ファイル リソースでのワイルドカードの使用
FILE リソース /usr/lpp/bin/* は、/usr/lpp/bin の下にある(深くネストされているものを含む)すべてのファイルおよびサブディレクトリを保護します。