ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Solaris のシステム管理 (セキュリティサービス) Oracle Solaris 10 8/11 Information Library (日本語) |
パート II システム、ファイル、およびデバイスのセキュリティー
/dev/* デバイスから IP MIB-II 情報を取得する方法
13. Oracle Solaris の暗号化フレームワーク (概要)
14. Oracle Solaris の暗号化フレームワーク (手順)
19. Oracle Solaris Secure Shell の使用 (手順)
Oracle Solaris では、デバイスはデバイスポリシーによって保護されます。周辺機器は、デバイス割り当てによって保護できます。デバイスポリシーはカーネルによって適用されます。デバイス割り当ては、ユーザーレベルで任意に有効化と適用が行われます。
デバイス管理コマンドは、ローカルファイルのデバイスポリシーを管理するコマンドです。デバイスポリシーは特権要件を含むことができます。デバイスを管理できるのは、スーパーユーザーと、スーパーユーザーと同等の能力を持つ役割だけです。
次の表は、デバイス管理コマンドを示しています。
表 4-1 デバイス管理コマンド
|
デバイス割り当てによって、データの消失、コンピュータウイルス、セキュリティー侵害などからサイトを保護できます。デバイスポリシーと違い、デバイス割り当ては任意です。デバイスは、bsmconv スクリプトが実行されるまで割り当てることはできません。デバイス割り当ては、割り当て可能デバイスへのアクセスを制限するのに承認を使用します。
デバイス割り当てメカニズムの構成要素は、次のとおりです。
allocate、 deallocate、 dminfo、 list_devices コマンド。詳細は、「デバイス割り当てコマンド」を参照してください。
各割り当て可能デバイスのデバイスクリーンスクリプト。
これらのコマンドとスクリプトは、次のローカルファイルを使用してデバイス割り当てを実装します。
/etc/security/device_allocate ファイル。詳細は、device_allocate(4) のマニュアルページを参照してください。
/etc/security/device_maps ファイル。詳細は、device_maps(4) のマニュアルページを参照してください。
ロックファイル。割り当て可能デバイスごとに /etc/security/dev ディレクトリに配置します。
各割り当て可能デバイスに関連付けられたロックファイルの変更後の属性。
注 - /etc/security/dev ディレクトリは、将来の Oracle Solaris リリースでサポートされなくなる可能性があります。
大文字のオプションが指定された allocate、 deallocate、 および list_devices コマンドは管理用コマンドです。それ以外ではこれらのコマンドはユーザーコマンドです。次の表は、デバイス割り当てコマンドを示しています。
表 4-2 デバイス割り当てコマンド
|
デフォルトでは、ユーザーが割り当て可能デバイスを予約するには solaris.device.allocate 承認を必要とします。solaris.device.allocate 承認を含める権利プロファイルを作成する方法については、「ユーザーによるデバイス割り当てを承認する方法」を参照してください。
管理者がデバイスの割り当て状態を変更するには、どのデバイスの場合でも、solaris.device.revoke 承認が必要です。たとえば、allocate および list_devices コマンドの -U オプションや、deallocate コマンドの -F オプションは、solaris.device.revoke 承認が必要です。
詳細は、 「承認を必要とするコマンド」を参照してください。
deallocate コマンドが割り当ての解除に失敗する場合、または allocate コマンドが割り当てに失敗する場合は、デバイスは「割り当てエラー状態」になります。割り当て可能デバイスが割り当てエラー状態となった場合、そのデバイスの割り当てを強制的に解除する必要があります。割り当てエラー状態を処理できるのは、スーパーユーザーか、あるいは Device Management 権利プロファイルまたは Device Security 権利プロファイルを持った役割だけです。
F オプションを指定した -deallocate コマンドは、割り当て解除を強制します。あるいは、allocate -U を実行してデバイスを特定のユーザーに割り当てることもできます。いったんデバイスが割り当てられると、発生したエラーメッセージを調査できます。デバイスに関する問題が解決されたあとで、そのデバイスの割り当てを強制的に解除できます。
デバイス割り当てを設定すると、デバイスマップが作成されます。監査サービスが有効になる際には、bsmconv コマンドによってデフォルトの /etc/security/device_maps ファイルが作成されます。この当初の device_maps ファイルは、サイトに合わせてカスタマイズできます。device_maps ファイルには、デバイス名、デバイスの種類のほか、各割り当て可能デバイスに関連付けられたデバイス特殊ファイルが記録されます。
直観的にはわかりにくい各デバイスのために、device_maps ファイルはデバイス特殊ファイルのマッピングを定義します。このファイルによって、プログラムはどのデバイス特殊ファイルがどのデバイスに割り当てられているかを検出できます。たとえば、dminfo コマンドを使用すると、デバイス名、デバイスの種類およびデバイス特殊ファイルを取得して、割り当て可能なデバイスを設定するときに指定できます。dminfo コマンドは、device_maps ファイルを使用してデバイス割り当て情報を報告します。
device-name:device-type:device-list
例 4-14 device_maps エントリの例
次に、フロッピーディスクドライブ fd0 の device_maps ファイル内にあるエントリの例を示します。
fd0:\ fd:\ /dev/diskette /dev/rdiskette /dev/fd0a /dev/rfd0a \ /dev/fd0b /dev/rfd0b /dev/fd0c /dev/fd0 /dev/rfd0c /dev/rfd0:\
device_maps ファイルの行末にバックスラッシュ (\) を付けて、エントリを次の行に続けることができます。コメントも挿入できます。ポンド記号 (#) を付けると、1 つ前の行末にバックスラッシュのない改行まで、それに続くすべてのテキストはコメントになります。どのフィールドでも先行ブランクと後続ブランクを使用できます。フィールドの定義は次のとおりです。
デバイスの名前を指定します。現在のデバイス名の一覧を表示する方法については、「デバイスの割り当て情報を表示する方法」を参照してください。
汎用デバイスタイプを指定します。汎用名は、st、 fd、 audio などのデバイスクラス名です。device-type では、関連するデバイスが論理的にグループ化されます。
物理デバイスに関連付けられたデバイス特殊ファイルを一覧表示します。device-list には、特定のデバイスにアクセスできるすべての特殊ファイルが含まれている必要があります。リストが不完全な場合は、悪意を持ったユーザーでも個人情報を入手または変更できます。device-list フィールドには、/dev ディレクトリに入っているデバイスファイルを指定します。
当初の /etc/security/device_allocate ファイルは、監査サービスを有効にする際に bsmconv コマンドによって作成されます。この当初の device_allocate ファイルは、開始点として使用できます。/etc/security/device_allocate ファイルを変更して、デバイスを割り当て可能から割り当て不可に変更したり、新しいデバイスを追加したりします。device_allocate ファイルの例を次に示します。
st0;st;;;;/etc/security/lib/st_clean fd0;fd;;;;/etc/security/lib/fd_clean sr0;sr;;;;/etc/security/lib/sr_clean audio;audio;;;*;/etc/security/lib/audio_clean
device_allocate ファイル内のエントリは、デバイスが割り当て可能であると特に記述されていない限り、そのデバイスが割り当て可能であることを意味しません。上述の device_allocate ファイルの例では、オーディオデバイスエントリの第 5 フィールドにアスタリスク (*) が指定されています。第 5 フィールド内のアスタリスクは、そのデバイスが割り当て可能でないことをシステムに示します。つまり、このデバイスは使用できません。このフィールドにほかの値が入っているか、あるいは値が入っていない場合は、デバイスが使用可能であることを示します。
device_allocate ファイルでは、各デバイスは次の形式の 1 行のエントリで表されます。
device-name;device-type;reserved;reserved;auths;device-exec
device_allocate ファイル内の行は、バックスラッシュ (\) で終了することで次の行のエントリに継続できます。コメントも挿入できます。ポンド記号 (#) を付けると、1 つ前の行末にバックスラッシュのない改行まで、それに続くすべてのテキストはコメントになります。どのフィールドでも先行ブランクと後続ブランクを使用できます。フィールドの定義は次のとおりです。
デバイスの名前を指定します。現在のデバイス名の一覧を表示する方法については、「デバイスの割り当て情報を表示する方法」を参照してください。
汎用デバイスタイプを指定します。汎用名は、st、 fd、 sr などのデバイスクラス名です。device-type では、関連するデバイスが論理的にグループ化されます。デバイスを割り当て可能にするときは、device_maps ファイルの device-type フィールドからデバイス名を取得します。
reserved で示される 2 つのフィールドは、将来の使用に予約されています。
デバイスが割り当て可能かどうかを示します。このフィールドにアスタリスク (*) が入っている場合は、デバイスが割り当て不可能であることを示します。承認を示す文字列が入っている場合や、空の場合は、デバイスが割り当て可能であることを示します。たとえば、auths フィールドの文字列 solaris.device.allocate は、そのデバイスを割り当てるには solaris.device.allocate 承認が必要であることを示します。このフィールドに単価記号 (@) が入っている場合は、どのユーザーでもそのデバイスを割り当てることができることを示します。
割り当てプロセス中にクリーンアップやオブジェクト再使用防止などの特殊処理のために呼び出されるスクリプトのパス名を指定します。device-exec スクリプトは、デバイスに対して deallocate コマンドを実行するたびに実行されます。
たとえば、sr0 デバイスについての次のエントリは、CD-ROM ドライブが solaris.device.allocate 承認を得たユーザーによって割り当て可能であることを示します。
sr0;sr;reserved;reserved;solaris.device.allocate;/etc/security/lib/sr_clean
デフォルトのデバイスと、その定義済み特性をそのまま使用することもできます。新しいデバイスをインストールしたあとで、エントリを変更できます。使用前に割り当てが必要なデバイスはすべて、そのデバイスのシステムの device_allocate ファイルと device_maps ファイルで定義する必要があります。現在、カートリッジテープドライブ、フロッピーディスクドライブ、CD-ROM ドライブ、およびオーディオチップが、割り当て可能とみなされます。これらのデバイスタイプには、デバイスクリーンスクリプトが用意されています。
注 - Xylogics テープドライブやアーカイブテープドライブも、SCSI デバイス用の st_clean スクリプトを使用します。モデム、端末、グラフィックスタブレットなどの割り当て可能デバイスについては、独自のデバイスクリーンスクリプトを作成する必要があります。このスクリプトは、対応するデバイスタイプのオブジェクト再使用の要件を満たしている必要があります。
デバイス割り当てによって、いわゆるオブジェクト再使用要件の一部が満たされます。「デバイスクリーン」スクリプトは、使用可能なすべてのデータを再使用する前に物理デバイスからパージするというセキュリティー要件に対応するものです。データのクリアは、そのデバイスが別のユーザーによって割り当て可能になる前に実行されます。デフォルトでは、カートリッジテープドライブ、フロッピーディスクドライブ、CD-ROM ドライブ、オーディオデバイスは、デバイスクリーンスクリプトが必要です。Oracle Solaris ではそのスクリプトが提供されます。この節では、デバイスクリーンスクリプトが実行する処理について説明します。
st_clean デバイスクリーンスクリプトでは、3 つのテープデバイスがサポートされます。
SCSI ¼ インチテープ
アーカイブ ¼ インチテープ
オープンリール ½ インチテープ
st_clean スクリプトでは、mt コマンドの rewoffl オプションを使用してデバイスのクリーンアップを行います。詳細は、mt(1) のマニュアルページを参照してください。このスクリプトは、システムブート中に実行されると、デバイスを照会し、デバイスがオンライン状態であるかどうかを確認します。デバイスがオンラインになっていた場合、スクリプトはさらに、そのデバイスにメディアが挿入されているかどうかを調べます。¼ インチのテープデバイスにメディアが挿入されていた場合、このデバイスは割り当てエラー状態になります。この場合、管理者はそのデバイスを手動でクリーンアップする必要があります。
通常のシステム操作中に、deallocate コマンドを対話型モードで実行すると、メディアを取り出すように求めるプロンプトが表示されます。割り当て解除は、デバイスからメディアが取り出されるまで見送られます。
フロッピーディスクドライブと CD-ROM ドライブ用として、次のデバイスクリーンスクリプトが提供されています。
これらのスクリプトは、eject コマンドを使用してドライブからメディアを取り出します。eject コマンドが失敗すると、デバイスは割り当てエラー状態になります。詳細は、eject(1) のマニュアルページを参照してください。
オーディオデバイスは、audio_clean スクリプトを使用してクリーンアップします。スクリプトは、AUDIO_GETINFO ioctl システムコールを実行してデバイスを読み取ります。AUDIO_SETINFO ioctl システムコールを実行してデバイス構成をデフォルトにリセットします。
システムに新しく割り当て可能デバイスを追加する場合は、独自のデバイスクリーンスクリプトを作成する必要があります。deallocate コマンドは、デバイスクリーンスクリプトにパラメータを渡します。次に示すように、パラメータはデバイス名を含む文字列です。詳細は、device_allocate(4) のマニュアルページを参照してください。
clean-script -[I|i|f|S] device-name
デバイスクリーンスクリプトは、成功時には「0」を、失敗時には「0」より大きな値を、それぞれ返す必要があります。オプション -I、 -f、 および -S は、スクリプトの実行モードを決定します。