Trusted Solaris 環境では、メールの送受信は複数の機密ラベル付きで実施され、メールの持つ機密ラベルが保存されます。Trusted Solaris 環境におけるメールの取り扱いを以下に示します。
配送用のキューに入れられたメールの格納、および未読メールメッセージの格納にはマルチラベルディレクトリ (MLD) が使用されます。
詳しくは、「送信および着信メール用マルチラベルディレクトリ」および 「マルチラベルディレクトリ内のメールボックス」を参照してください。
Sendmail(1M) は、機密ラベルの運用をサポートするよう変更されています。さらに、Sendmail は、着信メールの持つ機密ラベルがユーザーの認可上限と最下位機密ラベルの範囲内にある場合にのみ、そのユーザーに対するメールのルーティングを行うよう変更されています。
他のユーザーが送ったメールが入っているメールキューの内容をユーザーが表示できるのは望ましくないため、デフォルトで sendmail.cf ファイル内に -restrictmailq オプションが設定されています。これにより、メールキュー内のジョブのリストを表示できるのは、メールキューと同じグループに所属するユーザーだけになります。
詳しくは、「メール待ち行列の内容を表示するには」を参照してください。
sendmail.cf ファイル内の -p オプションを拡張したものとして、「-Optsol..」機密オプションが提供されています。このオプションを設定すると、管理者は、ユーザーの持つ最下位機密ラベルよりも低い機密ラベルで到着したメールを sendmail がどう処理するかを指定できます。
詳しくは、「受信者の最下位ラベルよりも低いラベルのメールに関する Sendmail の処理」および 「ユーザーの最下位ラベルよりも低いラベルのメールに関するメール配送オプションを設定するには」を参照してください。
フロントパネルの「メール (Mail)」サブパネル内にあるデフォルトの dtmail アクションの代わりに、別のメールアプリケーション用の CDE アクションを使うことができます。
詳しくは、「他のメールアプリケーションを代用するには」を参照してください。
/var/spool/mqueue はマルチラベルディレクトリ (MLD) として実装されており、ここには異なる機密ラベルを持つメールが格納され、実際の配送を待つことになります。次の例に、ユーザーが /var/spool/mqueue ディレクトリに移動した時の例を示します。この場合、ユーザーは現在のプロセスと同じ機密ラベルを持つ SLD である「.SLD.2」に自動的にリダイレクトされています。.SLD.2 の内容として表示されているメールメッセージは、現在の機密ラベル付きで送信されるのを待機しているものです。
trustworthy% cd /var/spool/mqueue trustworthy% mldpwd /var/spool/.MLD.mqueue/.SLD.2 trustworthy% ls dfNAA00212 dfNAB00212 dfNAC00212 trustworthy% cd /var/spool/.MLD.mqueue trustworthy% ls -R .SLD.* ls: .SLD.1: Permission denied .SLD.0: .SLD.2: dfNAA00212 dfNAB00212 dfNAC00212 |
mqueue MLD 内にあるすべての SLD の内容の表示は、次のことを意味しています。
「.SLD.1: パーミッションが与えられていません。」は、「.SLD.1」が現在の機密ラベルよりも完全に優位なラベルを持つことを意味します。
「.SLD.0」は空です。
「.SLD.2」には、現在の機密ラベル付きでの送信を待機しているメッセージがあります。
Trusted Solaris オペレーティング環境は、/var/mail も MLD として作成し、このディレクトリ内にすべてのアカウント用のラベルを格納します。詳細は、「マルチラベルディレクトリ内のメールボックス」を参照してください。
sendmail プログラムは、/var/mail MLD 内にメールボックスファイルを作成し、このファイルに受信したメールを格納します。
各アカウントに対し、受信したメールのそれぞれの機密ラベルに別々のメールボックスが作成されます。この結果、各アカウントは複数のメールボックスを持つことになります。
たとえば、ユーザー roseanne が PUBLIC、NEED TO KNOW ENGINEERING、NEED TO KNOW MARKETING という 3 種類の機密ラベル付きのメールを受信した場合、roseanne はこれらの各ラベルに対応する 3 つの独立したメールボックスを、それぞれ独立した SLD 内に 1 つずつ持つことになります。メールボックスにはアカウントと同じ名前が付けられるため、roseanne の持つメールボックスの名前はすべて「roseanne」になります。
役割アカウントもユーザーアカウントと同様に、自分自身のメールボックスを持ちますが、この場合も、メールボックスには役割と同じ名前が付けられます。たとえば、secadmin という役割アカウントの作成したメールボックスの名前はすべて「secadmin」になります。
ホスト上のユーザーまたは役割に対して特定の機密ラベルを持つメールが初めて送られた場合、sendmail プログラムは、そのメールの持つ機密ラベルで /var/mail 内に新しいSLD を 1 つ作成し、この SLD 内のメールボックスにそのメールを格納します。
同じ機密ラベルを持つメールがこのユーザーまたはそれ以外のユーザーに対して送付された場合、それらのメールはこの同じ SLD に格納されます。
ユーザーが特定の機密ラベルでメールボックスからすべてのメールを削除すると、対応するメールボックス (/var/.MLD.mail/.SLD.?/username) が削除されます。
以下の例を参照して、たとえば、NEED TO KNOW ENGINEERING という機密ラベルを持つユーザー roseanne 宛てのメールをシステムが初めて受信した場合、NEED TO KNOW ENGINEERING という機密ラベルで /var/.MLD.mail/.SLD.0 が作成され、そのメールは .SLD.0 内の roseanne という名前のメールボックスに格納されます。この後、NEED TO KNOW ENGINEERING という機密ラベルを持つ別のユーザー jhoman 宛てのメールをシステムが受信した場合、そのメールは .SLD.0 内 の新規に作成された jhoman という名前のメールボックスに格納されます。続いて、PUBLIC ラベルを持つ roseanne 宛てのメールをシステムが受信した場合、今度は .SLD.1 が作成され、そのメールは .SLD.1 内の roseanne という名前のメールボックスに格納されます。NEED TO KNOW ENGINEERING ラベルを持つユーザー roseanne および jhoman 宛てのメールがそれぞれ .SLD.0 内のメールボックス roseanne および jhoman に格納され、PUBLIC ラベルを持つ roseanne 宛てのメールが .SLD.1 内の別の roseanne メールボックスに格納されている様子を次の図に示します。
$ cd /var/.MLD.mail/ $ ls -R .SLD.* .SLD.0 roseanne jhoman .SLD.1 roseanne |
フロントパネルの「メール (Mail)」サブパネルを通じてメールの到着を通知されます。図 6-1 に示すように、「メール (Mail)」サブパネルは、次の各機密ラベルごとに 1 つのメールアイコンを表示します。
ユーザーがメールを受け取った時の機密ラベル
ユーザーがなっている役割がメールを受け取った時の機密ラベル
「メール (Mail)」サブパネルの最上行に表示されているメールアイコンには、特定の機密ラベル名が付けられていません。このアイコンをクリックすると、フロントパネル内のメールアイコンをクリックした時と同じように、現在のワークスペースの機密ラベルで受け取られたメールが表示されます。
異なる機密ラベルを持つメールへのアクセスは、現在のワークスペースの持つ機密ラベルによっては制限されません。いかなるユーザーも、自分が許可された範囲内の機密ラベルでメールの読み込みや送信を行えることは、Trusted Solaris のセキュリティポリシーに違反していないからです。したがって、メールリーダーは、現在のワークスペースの機密ラベルやアイコンの機密ラベルにかかわらず、「メール (Mail)」サブパネルに表示されているどのアイコンからでも起動できます。
受信者がメールアイコンをクリックすると、メールリーダーが着信メールの持つ機密ラベルで表示されます。
機密ラベル名は長形式名で [ ] 内に表示されます。この場合、次の図に示すように、メールリーダーの表示する機密ラベル名は [INTERNAL_USE_ONLY] となります。
メールの持つ機密ラベルは次のいずれかの方法により決定されます。