Trusted Solaris 管理の手順

第 6 章 メール管理

Trusted Solaris 環境と Solaris 環境では、メールは本質的に同じです。したがって、管理者役割がメールサーバーを設定および管理するときは、基本的に『メールシステムの管理』の指示に従ってください。ただし、この章や sendmail(1M) のマニュアルページで説明されている若干の違いには注意してください=

この章では次の操作手続きを示します。

Trusted Solaris におけるメール機能の概要

Trusted Solaris 環境では、メールの送受信は複数の機密ラベル付きで実施され、メールの持つ機密ラベルが保存されます。Trusted Solaris 環境におけるメールの取り扱いを以下に示します。

送信および着信メール用マルチラベルディレクトリ

/var/spool/mqueue はマルチラベルディレクトリ (MLD) として実装されており、ここには異なる機密ラベルを持つメールが格納され、実際の配送を待つことになります。次の例に、ユーザーが /var/spool/mqueue ディレクトリに移動した時の例を示します。この場合、ユーザーは現在のプロセスと同じ機密ラベルを持つ SLD である「.SLD.2」に自動的にリダイレクトされています。.SLD.2 の内容として表示されているメールメッセージは、現在の機密ラベル付きで送信されるのを待機しているものです。


例 6-1 /var/spool/mqueue MLD とその内容 (異なる機密ラベルを持つ SLD)


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 の内容の表示は、次のことを意味しています。

Trusted Solaris オペレーティング環境は、/var/mail も MLD として作成し、このディレクトリ内にすべてのアカウント用のラベルを格納します。詳細は、「マルチラベルディレクトリ内のメールボックス」を参照してください。

マルチラベルディレクトリ内のメールボックス

sendmail プログラムは、/var/mail MLD 内にメールボックスファイルを作成し、このファイルに受信したメールを格納します。

以下の例を参照して、たとえば、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 メールボックスに格納されている様子を次の図に示します。


例 6-2 異なる機密ラベルを持つ SLD 内のメールボックス群


$ cd /var/.MLD.mail/
$ ls -R .SLD.*
.SLD.0
roseanne
jhoman
.SLD.1
roseanne

メールの通知

フロントパネルの「メール (Mail)」サブパネルを通じてメールの到着を通知されます。図 6-1 に示すように、「メール (Mail)」サブパネルは、次の各機密ラベルごとに 1 つのメールアイコンを表示します。

図 6-1 メールの複数のラベルを表示する「メール (Mail)」サブパネル

Graphic

「メール (Mail)」サブパネルの最上行に表示されているメールアイコンには、特定の機密ラベル名が付けられていません。このアイコンをクリックすると、フロントパネル内のメールアイコンをクリックした時と同じように、現在のワークスペースの機密ラベルで受け取られたメールが表示されます。

異なる機密ラベルを持つメールへのアクセスは、現在のワークスペースの持つ機密ラベルによっては制限されません。いかなるユーザーも、自分が許可された範囲内の機密ラベルでメールの読み込みや送信を行えることは、Trusted Solaris のセキュリティポリシーに違反していないからです。したがって、メールリーダーは、現在のワークスペースの機密ラベルやアイコンの機密ラベルにかかわらず、「メール (Mail)」サブパネルに表示されているどのアイコンからでも起動できます。

メールの読み込み

受信者がメールアイコンをクリックすると、メールリーダーが着信メールの持つ機密ラベルで表示されます。

機密ラベル名は長形式名で [ ] 内に表示されます。この場合、次の図に示すように、メールリーダーの表示する機密ラベル名は [INTERNAL_USE_ONLY] となります。

図 6-2 メールリーダーのウィンドウラベル

Graphic

メールの持つ機密ラベルの決定

メールの持つ機密ラベルは次のいずれかの方法により決定されます。

メールエイリアスの変更

メールエイリアスの管理方法については、Solaris のマニュアル『メールシステムの管理』に書かれています。以下の節では、Trusted Solaris 環境に特有の事項だけを説明します。

ホームディレクトリ MLD で .mailrc を利用する

各ユーザーは自分のホームディレクトリに .mailrc ファイルのローカルコピーを配置することで、個人的なメールエイリアスを作成できます。ホームディレクトリが常に MLD であるため、Trusted Solaris と Solaris では .mailrc ファイルの使い方が異なります。管理者やユーザーは .mailrc ファイル (その他のスタートアップファイル) を各 SLD (それぞれ異なる機密ラベルで作成されたもの)にコピーまたはリンクするために設定を行う必要があります。

新しいローカルエイリアスおよび NIS+ で管理されるエイリアスの作成と初期化

エイリアスは NIS+ マップで指定するか、または各ホストの /etc/aliases ファイルで指定します。データベースマネージャの「ネームサービス (Naming Service)」メニューを使うと、システム管理者は aliases を含むデータベースの編集時に、「NIS+」または「なし (none)」を選べます。

エイリアスを編集するには

  1. 管理役割になり、ADMIN_LOW ワークスペースに移動します。

    必要に応じて、「ログイン後、特定の管理役割になるには」を参照してください。

  2. データベースマネージャの「Aliases データベース」ウィンドウを起動します。

    必要に応じて、「管理アプリケーションを起動するには」を参照してください。

    1. 「データベース名」スクロールリスト上の「別名」を強調表示させます。

    2. NIS+ エイリアスマップを編集する場合は、「ネームサービス」メニューから「NIS+」を選びます。ローカルな /etc/aliases ファイルを編集する場合は「なし (None)」を選びます。

    3. 「了解 (OK)」をクリックします。

      データベースマネージャ「Aliases データベース」ウィンドウが表示されます。

  3. エイリアスを変更するには、既存のエイリアスを選択し、それを変更します。

    1. 特定のエイリアス名を強調表示させます。

    2. 「編集」メニューから「変更」を選択します。

      データベースマネージャの「変更」ダイアログボックスが表示されます。

    3. 「登録内容」テキスト入力フィールド内のテキストを必要に応じて変更します。

    4. 終了したら、「了解」ボタンをクリックします。

  4. エイリアスを追加するには、「編集」メニューから「追加」を選択します。

    1. 「エイリアス名」テキスト入力フィールドにエイリアスの名前を入力します。

    2. 「登録内容」テキスト入力フィールドに、そのエイリアスが表すアドレスをすべて入力します。

    3. 終了したら、「了解」ボタンをクリックします。

  5. データベースマネージャの「ファイル」メニューから「終了」を選択します。

ユーザーがメール待ち行列全体の内容を表示できるようにするには

Solaris オペレーティング環境の /etc/mail/sendmail.cf ファイルでは、restrictmailq オプションが利用可能ですが、このオプションはデフォルトではセットされていません。Trusted Solaris 環境の sendmail.cf ファイルでは、restrictmailq オプションがデフォルトでセットされているため、特定のメール待ち行列内のジョブのリストを表示できるのは、そのメール待ち行列と同じグループに属しているユーザーだけに限られます。このオプションを設定すると、他のユーザーから送信された待ち行列内のメールの一覧を通常のユーザーが表示できません。


注 -

メール待ち行列の一覧を表示するには、mailq コマンドまたは sendmail -bp コマンドを入力します。管理者が次の操作を実行したとしても、メール待ち行列の内容を表示できるのは、自分のプロファイル内に mailq または sendmail コマンドを持つユーザーだけに限られます。これらのコマンドは、そのユーザーのプロセスの持つ機密ラベルよりも劣位のラベルを持つメールだけを表示します。


メール待ち行列の内容を表示するには

  1. すべてのユーザーがメール待ち行列の内容を表示できるようにするには、/etc/mail/sendmail.cf ファイル内の -restrictmailq オプションを削除します。

    必要に応じて、「管理用エディタアクションを使用してファイルを編集するには」を参照してください。

  2. 特定のグループに属すユーザーだけがメール待ち行列の内容を表示できるようにするには

    1. 新しいグループを作成します。

    2. そのグループに必要なユーザーを追加します。

    3. chgrp(1) を使って、/var/spool/mqueue のグループを上記のグループに変更します。

  3. mailq および sendmail -bp コマンドをプロファイルに追加し、/var/spool/mqueue のグループをこれらのコマンドに割り当てます。

sendmail の活動をトレースするには

ローカルおよびリモートのメール配送には、複数の sendmail のインスタンスが関係します。図 6-3 に、sendmail プロセスの処理におけるデータの流れを示します。

sendmail の第 1 のインスタンスは、いくつかのメール送信に使われる任意のメーラー (デフォルトでは dtmail) によって開始されます。このインスタンスにより、現在のホストから発信されたメールの配送が試行されます。メールの内容は、実際に配送されるまで /var/spool/mqueue MLD 内に格納されます。システムクラッシュなどが発生した場合には、これらのメールメッセージは配送されません (図 6-3 の (1))。通常、メッセージは直ちに配送されるため、メッセージがメール待ち行列に存在する時間はほんの数秒です。ただし、リモートホストがダウンしている場合などには、メッセージはメール待ち行列に永久に存在することになります。

sendmail の第 2 のインスタンスは、ワークステーションまたはサーバーのブート時に開始されます。このインスタンスは 25 番ポートを監視することで、リモートホストから受信するメールの配送に備えています。各メッセージは、実際に配送されるまで /var/spool/mqueue MLD 内に格納されます(例の (3) と (5))。

sendmail の第 3 のインスタンスは、メール待ち行列を定期的にスキャンして、待ち行列にメールが存在する場合はその配送を試みます(例の (2) と (4))。次の図は、cascadetrustworthyjuggle という 3 つのホスト上のメール送信プロセスを示しており、ホスト trustworrthy はホスト juggle のメール中継ホストとして動作します。

図 6-3 sendmail が扱うデータの流れの例

Graphic

ユーザーが「username@hostname 」にメールを送る場合、「hostname」がリモートホストならば、sendmail はそのメッセージをそのホストの 25 番ポートに転送します。例に示すように、「homan@cascade 」宛てのメールがホスト cascade 上の homan 以外のアカウントから送信された場合、sendmail (1) はそのメールを cascade 上の /var/spool/.MLD.mqueue 内の SLD に格納し、このメールはローカルメーラーによって配送されます。cascade 上の sendmail (2) は、定期的にメール待ち行列のポーリングを行い、待ち行列にたまったメールの配送を行います。ホスト trustworthy および juggle 上の sendmail (3) および (5) は、着信メールに備えて 25 番ポートを監視しています。cascade から出された trustworthy および juggle 宛てのメッセージはどちらもローカルの /var/spool/.MLD.mqueue に入れられた後、trustworthy の 25 番ポートに送信されます (この例では trustworthy はメール中継ホストとして動作しています)。trustworthy 上の sendmail (3) がこれら両方のメッセージをローカルな /var/spool/.MLD.mqueue 内の SLD に入れると、「roseanne@trustworthy」宛てのメッセージはローカルメーラーによって配送され、「ahart@juggle」宛てのメッセージは、juggle 上の 25 番ポートを監視している sendmail (5) に転送されます。

-d オプションを使った sendmail のデバッグに関しては、O'Reilly & Associates, Inc 発行の『sendmail Nutshell Handbook』に詳しく説明されています。簡単な使い方としては、-d オプションの後に X を指定することで、デバッグ情報を見ることができます。sendmail -d の出力を特定のものだけに制限するには、カテゴリを指定し、オプションでそれに続けてピリオド (.) の後に 0〜9 のレベルを指定します (9 は情報の最大レベルを示します)。新しいカテゴリである 75 を指定すると、sendmail の Trusted Solaris 版独自のデバッグ情報を表示できます。

sendmail の Trusted Solaris 情報をトレースするには

  1. 管理役割になり、ADMIN_LOW ワークスペースに移動します。

    必要に応じて、「ログイン後、特定の管理役割になるには」を参照してください。

  2. プロファイルシェルにて /etc/init.d ディレクトリに移動し、sendmail を停止します。


    $ cd /etc/rc2.d
    $ sendmail stop
    
  3. sendmail -d に続いてカテゴリ番号 75、続いて必要であればピリオド (.) の後にレベル番号を指定します。さらにその後に、1 つスペースを入れ宛先とメッセージを指定します。

    次に示すように、メッセージはファイルの内容を宛先にリダイレクトすることでも指定できます。またはメッセージを指定せずに行末で return キーを押します。この場合、「Subject:」というプロンプトが表示されたらメールの件名を入力し、その後は mail(1) の構文に則ってメッセージの内容を記述できます。


    $ /usr/lib/sendmail -d75.9 roseanne@trusted < /etc/motd
    
  4. エラーメッセージを確認します。

  5. ADMIN_LOW のプロファイルシェルにて /etc/init.d ディレクトリに移動し、sendmail を再スタートさせます。


    $ cd /etc/init.d
    $ sendmail start
    

メール配送に関するトラブルシューティング

sendmail は、メールの送信や転送を行う前に、宛先に指定された受け手や受信ホストに関して多くのチェックを行います。メールがアカウントによって受け取り可能となるのは、そのメールがアカウントの認可上限と最下位機密ラベルの間にある場合に限られます。アカウントの持つ機密ラベル範囲については、第 5 章「ユーザーマネージャを使ったアカウントの設定」を参照してください。また、メールが特定のホスト上で受け取り可能となるのは、以下に示すように、そのメールがホストの持つ認可範囲内にある場合に限られます (詳しくは、第 10 章「トラステッドネットワークデータベース におけるセキュリティ属性の指定とルーティング設定」も参照のこと)。

ユーザーによるメール送信に問題が起こった場合は、次のガイドラインに従って、問題を調査してください。

    メールエイリアスをチェックすること。

    sendmail はメールの配送先を決定するのに、/etc/aliases ファイルと NIS+ テーブルである mail_aliases を参照します。たとえば、xxx という名前の Trusted Solaris ワークステーション上のプロセスがユーザー fred に対してメールを送信した場合、sendmailmail_aliases テーブルを参照した結果 fred のエイリアスとして fred@yyy を見つけた場合、そのメールは fred@xxx には送信されません。

    送信ホストと受信ホスト間のネットワーク接続が正しく設定されていることを確認すること。

    ここで、「メール送信用にネットワーク接続が正しく設定されていることをチェックするには」に示されている手順を実行してください。

メール送信用にネットワーク接続が正しく設定されていることをチェックするには

  1. mailx を使ってメールを送信します。


    # mailx -v somebody@somehost
    Subject: test1
    testl
    .

    mailx が出力するメッセージを調べます。メッセージが受け付けられたことを示す行が表示されていれば手順 4 に移ります。

  2. 送信元のホストにログインし (またはメールサーバーが送信元ホストでない場合には、メールサーバーにログインし)、ユーザーのメール送信に必要となる機密ラベルにログインします。

  3. telnet(1) コマンドを発行し、受信側ホストの 25 番ポートに接続します。


    trustworthy% telnet hostname 25
    

    送信元のホストと受信側ホスト間のトラステッドネットワークデータベース内で、正しいラベルで接続が設定されている場合は、宛先ホストの sendmail が次のようなメッセージを出力します。


    220 hostname Sendmail version ready at date
    

    接続を終了するには quit と入力します。


    quit
    

    telnet からエラーメッセージが出力された場合は、接続が設定されていません。この場合、手順 6 以降に移り、デバッグしたいホストの種類に適合した手順を実行してください。接続が正しく設定された場合には次の手順に移ります。

  4. 送信メールの機密ラベルで、送信元ホスト上のメール待ち行列の内容を表示します。メールサーバーが送信元ホストでない場合には、メールサーバー上のメール待ち行列の内容を表示します。

    表示内容を調べ、送信したメールがメールサーバー上の待ち行列に入っているかどうかを調べます。


    # mailq | more 
    
  5. 「sendmail の Trusted Solaris 情報をトレースするには」に示されている手順を実行します。

  6. 宛先ホストが Trusted Solaris 2.x または 7 システムである場合、次の手順で宛先ユーザーがTrusted Solaris のセキュリティポリシーに基づくメールを受け取れるかどうかを確認します。

    1. (必要に応じてユーザーマネージャを使って)、受信者が有効なユーザーアカウントを持っていることを確認します。

    2. ユーザーマネージャの「ラベル (Labels)」ダイアログボックスを使って、そのアカウントの最下位ラベルと認可上限を調べます。

    3. 送信されたメールの持つ機密ラベルが、受信者の最上位ラベルよりも劣位で、かつ、受信者の最下位ラベルよりも優位であることを確認します。

      1. 送信されたメールの持つ機密ラベルが受信者のアカウントの持つラベル範囲にない場合、送信者と受信者の相互に受け入れ可能な機密ラベルが見つかるならば、そのラベルを使って再度送信を試みます。

      2. メールが届いた場合は、今後この受信者に対しては、上記の相互に受け入れ可能な機密ラベルを使うよう送信者に指示します。

    4. メールの持つ機密ラベルが、label_encodings(4) ファイルに定義されて、宛先ホストのユーザー認可範囲およびシステム認可範囲内にあることを確認します。

      sendmail は、メールの持つ機密ラベルがシステム認可範囲外にある場合、そのメールを配送しません。

      たとえば、ADMIN_LOWADMIN_HIGH ラベルで送信されたメールのように、メールの持つ機密ラベルがシステム認可範囲内にはあるが、ユーザー認可範囲内にはない場合、一般ユーザーはデフォルトではそのメールを受け取れません。このような場合は、次の手順に移ります。

    5. 宛先ユーザーの最下位ラベルよりも低いラベルを持つメールの場合、自サイトのセキュリティポリシーが許すならば、次の手順を実行します。

      詳細は、「受信者の最下位ラベルよりも低いラベルのメールに関する Sendmail の処理」および 「ユーザーの最下位ラベルよりも低いラベルのメールに関するメール配送オプションを設定するには」を参照してください。

      1. システム上のすべてのユーザーが自分の最下位ラベルよりも低いラベルのメールを受け取れるようにするには、tsoluserlowupgrade (デフォルト) の指定により sendmail がメールを自動的に昇格していることを確認します。または、tsoluserlowaccept を指定することで、メールリーダーがメールを着信ラベルで生成していることを確認します (これが行われている場合、アカウントが必要な承認を持っていれば、昇格が可能になります)。

      2. 管理役割に移行可能なすべての一般ユーザーアカウントだけが、ユーザー認可範囲外にあるシステムプロセスからのメールを受け取れるようにするには、sendmail の設定ファイルで tsoladminlowupgrade または tsoladminlowaccept オプションを設定してください。

      3. ある特定の管理役割が、ユーザー認可範囲外にあるシステムプロセスからのメールを受け取れるようにするには、プロファイルマネージャを使って、その管理役割に「すべての定義済みラベルを使用」承認を指定してください。

        (デフォルトの管理役割は、この承認をプロファイルに持っています)

  7. Trusted Solaris 2.x または 7 オペレーティング環境を実行している宛先ホストの場合、送信側ホスト上で、受信側ホスト用の tnrhdb(4)/tnrhtp(4) エントリが正しく設定されており、他のホストとの通信ができるようにしてください。


    注 -

    tninfo(1M) コマンドを使うと、各ホストに割り当てられているテンプレートの種類、およびそのテンプレート内に指定されているホストのタイプや属性を調べることができます。-h hostname オプションは指定のホストに割り当てられているテンプレートの名前を表示し、-t template_name オプションはそのテンプレートに指定されているエントリ (ホストのタイプを含む) を表示します。


    1. 宛先ホストが、tnrhdb(4) データベース内でそのホストに割り当てられている正しいテンプレート名を持つことを確認します。また、tnrhtp(4) ファイル内のテンプレートにそのホストのタイプが sun_tsol として正しく定義されていることを確認します。

    2. tnrhtp ファイル内のテンプレートに記述されている最下位および最上位機密ラベルセットが、配送されなかったメールの持つ機密ラベルでの通信を許すかどうかを調べます。

    3. これらの検査をパスした場合、ネットワーク接続は正しく動作するはずです。手順 3 に戻り、確認のために telnet(1) を再度実行してください。

  8. Trusted Solaris 1.x オペレーティング環境を実行している宛先ホストの場合、送信側ホスト上で、受信側ホスト用の tnrhdb/tnrhtp エントリが正しく設定されており、他のホストとの通信ができるようになっていることを確認してください。

    1. 宛先ホストが、tnrhdb データベース内でそのホストに割り当てられている正しいテンプレート名を持つことを確認します。また、tnrhtp ファイル内のテンプレートにそのホストのタイプが msix として正しく定義されていることを確認します。

    2. tnrhtp ファイル内のテンプレートに記述されている最下位および最上位機密ラベルセットが、配送されなかったメールの持つ機密ラベルでの通信を許すかどうかを調べます。

    3. これらの検査をパスした場合、ネットワーク接続は正しく動作するはずです。手順 3 に戻り、確認のために telnet を再度実行してください。

  9. Trusted Solaris 以外のラベル付きオペレーティングシステムを実行している宛先ホストの場合、送信側ホスト上で、受信側ホスト用の tnrhdb ならびに tnrhtp エントリが正しく設定されており、Trusted Solaris システムがネットワークを介して他のホストとの通信ができるようになっていることを確認してください。

    1. 必要であれば tnrhtp(4) のマニュアルページを読み、このホストに割り当てるテンプレート内で指定するホストタイプやその他のオプションを確認します。

      たとえば、CIPSO タイプのホストと RIPSO タイプのホストでは、それぞれ必要とするオプションが異なります。詳細は、第 10 章「トラステッドネットワークデータベース におけるセキュリティ属性の指定とルーティング設定」を参照してください。

    2. テンプレートを作成するかまたは tnrhtp 内にコピーを作成し、tnrhdb データベース内でそのホストに正しいテンプレートが割り当てられており、適切なホストタイプでそのホストが識別できることを確認します。

    3. tnrhtp ファイル内のテンプレートに記述されている最下位および最上位機密ラベルセットが、配送されなかったメールの持つ機密ラベルでの通信を許すかどうかを調べます。

    4. これらの検査をパスした場合、ネットワーク接続は正しく動作するはずです。手順 3 に戻り、確認のために telnet を再度実行してください。

  10. ラベルを認識可能なオペレーティングシステムを実行していない宛先ホストの場合、送信側ホスト上で、受信側ホスト用の tnrhdb ならびに tnrhtp エントリが正しく設定されており、他のホストとの通信ができるようになっていることを確認してください。

    1. 宛先ホストが、tnrhdb データベース内でそのホストに割り当てられている正しいテンプレート名を持つことを確認します。また、tnrhtp ファイル内のテンプレートにそのホストのタイプが「unlabeled」として正しく定義されていることを確認します。

    2. tnrhtp ファイル内のテンプレートに記述されているラベルなしホスト用のデフォルトの機密ラベルが、配送されなかったメールの持つ機密ラベルでの通信を許すかどうかを調べます。

    3. これらの検査をパスした場合、ネットワーク接続は正しく動作するはずです。手順 3 に戻り、確認のために telnet を再度実行してください。

ユーザーの再下位ラベルよりも低いラベルのメールに関する Trusted Solaris メール配送オプションの設定

セキュリティ管理者役割は、sendmail の設定ファイルである sendmail.cf に、Trusted Solaris に特有の機密性オプションとして、自サイトのセキュリティポリシーに合った値が設定されていることを確認する必要があります。詳細は、sendmail(1M) のマニュアルページの「Trusted Solaris での変更点」セクションを参照してください。以下の節ではこれらのオプションについて説明します。

受信者の最下位ラベルよりも低いラベルのメールに関する Sendmail の処理

受信者の最下位機密ラベルよりも低い機密ラベルのメールを受信した場合に sendmail が実行する処理には 2 つの種類を指定することができます。sendmail の設定ファイル内に「-Optsol...」機密性オプションを設定することで、メールが ADMIN_LOW ラベルを持つかそれとも受信者の最下位機密ラベルよりも低い他のラベルを持つかに応じて、どのような処理を実行するかを指定できます。ADMIN_LOWラベルのメールは他のラベルのメールとは違った扱いを受けます。これは、ADMIN_LOW ラベルのメールは常にシステムプロセスから特定のアカウント (通常は、管理役割アカウント) へと送信されるものであり、同アカウントはそのメールを読む必要があるからです。一方、ユーザー認可範囲内の特定のラベル (CONFIDENTIALINTERNAL USE ONLY など) を持つことを許可されたユーザーの場合、その最下位ラベルが SECRET または NEED TO KNOW であるようなユーザーにメールを送れるようにする必要はおそらくないでしょう。

このようなオプションを使用するかどうかは、各サイトのセキュリティポリシーに任されています。/etc/mail/sendmail.cf のデフォルト設定では、ADMIN_LOW ラベルで送信されたメールは自動的に昇格されますが、受信者の最下位ラベルよりも低いラベルを持つメールは送信者に戻されるようになっています。

メール処理オプション

上記の処理を行うために、-tsoladminlow という接頭辞を持つ互いに排他的な 3 つのオプションと、-tsolotherlow という接頭辞を持つ互いに排他的な 3 つのオプションが提供されています。これらはいずれも同じ接頭辞を持つ 3 つのうちのどれか 1 つだけを指定するタイプのオプションです。各オプション名には、ADMIN_LOW ラベルのメールを受け取った時に sendmail が実行する処理、または受信者の最下位機密ラベルよりも低いその他の機密ラベルのメールを受け取った時に sendmail が実行する処理の名前が含まれています。-upgrade は受信者の最下位機密ラベルでそのメッセージを配送することを意味します。-accept はそのメッセージ自身が持つ機密ラベルでメッセージを配送することを意味します。-return はそのメッセージを送信者に戻すことを意味します。

表 6-1 Trusted Solaris のメール処理オプション

オプション名 

意味 

-tsoladminlowupgrade

デフォルトの設定。ADMIN_LOW ラベルのメールを受け入れ、それをユーザーの最下位 SL で配送する。

-tsoladminlowaccept

ADMIN_LOW ラベルのメールを受け入れ、それを ADMIN_LOW ラベルで配送する。ユーザーの実行プロファイルに「すべての定義済みラベルを使用」承認が存在する場合にのみ、そのユーザーはこのメールを昇格し、読むことができる。

-tsoladminlowreturn

ADMIN_LOW ラベルのメールを送信者に戻す

-tsolotherlowupgrade

受信者の最下位 SL よりも低い SL で受け取ったメールを受信者の最下位 SL まで昇格する。このメールは sendmail によりアップグレードされるため、これを受け取るユーザーに「すべての定義済みラベルを使用」承認は必要ない。

-tsolotherlowaccept

受信者の最下位 SL よりも低い SL のメールを受け入れ配送する。ユーザーの実行プロファイルに「すべての定義済みラベルを使用」承認が存在する場合にのみ、そのユーザーはこのメールを昇格し、読むことができる。 

-tsolotherrlowreturn

デフォルトの設定。受信者の最下位 SL よりも低い SL のメールを送信者に戻す。 

ユーザーの最下位ラベルよりも低いラベルのメールに関するメール配送オプションを設定するには

  1. セキュリティ管理者役割になり、ADMIN_LOW ワークスペースに移動します。

    必要に応じて、「ログイン後、特定の管理役割になるには」を参照してください。

  2. 「メール・オプションの設定 (Set Mail Options)」アクションを使用して sendmail.cf ファイルを開き、編集を行います。

    必要に応じて、「管理用エディタアクションを使用してファイルを編集するには」を参照してください。

  3. -Optsol」で始まる行を検索し、2 つのデフォルト設定を変更します。

    tsol 機密性オプションの名前と意味については、表 6-1を参照してください。


    # TSOL actions for mail received below recipient min label
    #    options are:
    #         tsoladminlowupgrade - upgrade to user min label (default)
    #        tsoladminlowaccept  - accept at delivered label
    #        tsoladminlowreturn  - return to sender
    #        tsolotherlowupgrade - upgrade to user min label
    #        tsolotherlowaccept  - accept at delivered label
    #        tsolotherlowreturn  - return to sender (default)
     
    Optsoladminlowupgrade    
    Optsolotherlowreturn

他のメールアプリケーションを代用するには

デフォルトでは、Trusted Solaris のフロントパネルのメールパネルから起動されるメールアプリケーションは dtmail になります。Trusted Solaris システムでは、これを別のメールアプリケーションに置き換えることが可能です。ただし、そのメーラーが完全なマルチレベル対応のメール機能を提供できるようにするための、置き換えに必要な設定作業を行えるのは管理者役割だけです。

管理者による処理がなくても、各ユーザーは代替メールアプリケーションのアクションをフロントパネルにドラッグ&ドロップすることで、新しくインストールされたメーラーを現在のワークスペースの機密ラベルで使用することができます。しかし、このような方式でアクションをインストールした場合、複数の機密ラベルによるメールの監視が行えなくなります。したがって、このような方式は、単一機密ラベルを使っているサイトでのみ有効です。

管理者役割は次のことが行えます。

代替メールアクションをフロントパネルにインストールする場合、そのメールアプリケーションに対応するアプリケーションを定義しなければなりません。「フロントパネルの代替メールアクションをすべてのユーザーが使えるようにするには」では、Dtmail の代わりに OpenWindows の mailtool を使用する例を示します。/usr/dt/appconfig/types/localename/sunOW.dt に定義されている OpenWindows の mailtool アクションを次の例に示します (localename はロケール名を示しています)。


例 6-3 sunOW.dt 内の OpenWindows の mailtool アクションの定義


ACTION OWmailtool
{
        LABEL           OW Mail Tool
        ICON            OWmailtool
        TYPE            COMMAND
        WINDOW_TYPE     NO_STDIO
        EXEC_STRING     /usr/openwin/bin/mailtool
}

デフォルトのメールアイコンを変更するときの注意

代替メールアイコンをインストール中に、またはデフォルトのメールアイコンを削除中にメールが到着した場合には問題が起こる場合があります。このため、これらの作業を行う場合は前もって sendmail を停止させ、作業が終了してから sendmail を最起動するとよいでしょう。

すべてのメールアイコンがフロントパネルから消えた場合、アカウントのホームディレクトリの /.dt/fp.dynamics ディレクトリを調査してください。システムの運用中は、フロントパネルに対するすべての変更は、そのセッションの認可上限で各アカウントの $HOME/.dt/fp.dynamics に保存されています。fp.dynamics の内容をバックアップディレクトリにコピーし、フロントパネルの設定が復旧するまでそのファイルをひとつずつ戻します。

フロントパネルの代替メールアクションをすべてのユーザーが使えるようにするには


注意 - 注意 -

次の操作は、アカウントがシステムでメールの受け取りを開始する前に行なってください。そうしない場合、ウィンドウシステムが各ホームディレクトリ MLD の各 SLD にある .dt/fp.dynamics に作成したディレクトリの内容をきれいにすることが必要となることがあります。


  1. 管理者役割になり、ADMIN_LOW ワークスペースにいることを確認します。

    必要に応じて、「ログイン後、特定の管理役割になるには」を参照してください。

  2. dtterm(1) などの端末エミュレータにおいて、/etc/init.d ディレクトリに移動し、sendmail を停止します。


    $ cd /etc/init.d
    $ sendmail stop
    
  3. セキュリティ管理者役割になり、ADMIN_LOW ワークスペースに移動します。

  4. 代替メールアクションにアクションが定義されていることを確認します。

    必要に応じて、「他のメールアプリケーションを代用するには」を参照してください。

  5. アプリケーションマネージャの「システム管理 (System_Admin)」フォルダの「管理用エディタ (Admin Editor)」アクションを使用して、/usr/dt/appconfig/types/locale_name/dtwm.fp を開き、編集を行います (locale_name はロケール名を示しています)。

    必要に応じて、「管理用エディタアクションを使用してファイルを編集するには」を参照してください。

  6. 次に示すようなメールの制御を行うセクションを検索します。


    CONTROL Mail
    {
      TYPE                      icon
      CONTAINER_NAME            Top
      CONTAINER_TYPE            BOX
      POSITION_HINTS            5
      ICON                      DTmail
      LABEL                     Mail
      ALTERNATE_ICON            DtMnew
      MONITOR_TYPE              mail
      DROP_ACTION               Compose
      PUSH_ACTION               DTWmail
      PUSH_RECALL               true
      CLIENT_NAME               dtmail
      HELP_TOPIC                FPOnItemMail
      HELP_VOLUME               FPanel
    }
    1. TYPECONTAINER_NAMECONTAINER_TYPEPOSITION_HINTS は、以下に示すようにそのままにしておきます。


      TYPE                            icon
      CONTAINER_NAME                  Top
      CONTAINER_TYPE                  BOX
      POSITION_HINTS                  5
    2. ICON フィールドの値を、代替アプリケーションのアイコンを表す値に変更します。


       ICON								OWmailtool
    3. LABEL フィールドの値を、「メール (Mail)」サブパネル内の代替アプリケーションのアイコンと一緒に表示されるアイコンラベルに変更します。


       LABEL								OW Mail Tool
    4. ALTERNATE_ICON および MONITOR_TYPE は変更しません。


      ALTERNATE_ICON                   DtMnew
      MONITOR_TYPE                     mail
    5. DROP_ACTION を変更するか、またはそのままにしておきます。


      DROP_ACTION 								Compose

      メールプログラムには「メール作成」アクションを持つものと持たないものがあります。OpenWindows の メールツール (mailtool) は「メール作成」アクションを持ちません。このため、DROP_ACTION を「メール作成」のままにしておくと、誰かがメールをメールアイコンにドラッグした場合、dtmail の「メール作成」アクションが起動されます。DROP_ACTION を削除すると、メールがメールアイコンにドラッグされても何も起こりません。

    6. PUSH_ACTION フィールドの値を、ユーザーが新しいメールアイコンをクリックした時に実行する代替アクションを表す値に変更します。


       PUSH_ACTION								OWmailtool

      ここで指定するアクション名は、アプリケーション検索パスのどれかに定義されている必要があります。上記の OWmailtool アクションは /usr/dt/appconfig/types/localename ディレクトリの sunOW.dt に定義されています (localename はロケール名を示しています)。

    7. PUSH_RECALL は変更しません。


       PUSH_RECALL								true

      この値が「true」の場合、アプリケーションを 2 度立ち上げようとしても、新しいアプリケーションは起動しません。アプリケーションウィンドウがワークスペースで隠されている場合には、代わりにアプリケーションウィンドウが最前面に移動します。

    8. CLIENT_NAME フィールドの値を、代替アプリケーションの実行可能ファイルを表すものに変更します。


       CLIENT_NAME								mailtool

      CLIENT_NAME に指定するアクションのパス名は、そのアクション定義の EXEC_STRING に指定されているものである必要があります。たとえば、OWmailtool アクションの EXEC_STRING/usr/openwin/bin/mailtool として定義されています。

    9. エントリ HELP_* は変更しません。


       
      HELP_TOPIC                    FPOnItemMail
      HELP_VOLUME                   FPanel
  7. 変更を保存し、ファイルを閉じます。


    :wq
    

    注 -

    次の手順 8 は、この作業をシステムの稼動後に行なった場合にのみ必要となります。


  8. $HOME/.dt/fp.dynamics ディレクトリの内容をすべて削除します。

  9. ワークスペースのメニューを使ってワークスペースマネージャを再起動し、dtwm.fp に対する変更がフロントパネル上に反映されていることを確認します。

  10. 管理者役割になり、ADMIN_LOW ワークスペースに移動します。

  11. dtterm(1) などの端末エミュレータにおいて、/etc/init.d ディレクトリに移動し、sendmail を再スタートさせます。


    $ cd /etc/init.d
    $ sendmail start
    

代替メールアプリケーション用のマルチレベルアクションを作成するには

  1. セキュリティ管理者役割になり、ADMIN_LOW ワークスペースに移動します。

    必要に応じて、「ログイン後、特定の管理役割になるには」を参照してください。

  2. 「管理用エディタ (Admin Editor)」アクションを使って、/usr/dt/appconfig/types/localename/dtwm.fp ファイルを編集用に開きます (localename はロケール名を示しています)。

    必要に応じて、「管理用エディタアクションを使用してファイルを編集するには」を参照してください。

  3. 以下に示すようなメールの制御を行うセクションを検索します。


    CONTROL Mail
    {
      TYPE                      icon
      CONTAINER_NAME            Top
      CONTAINER_TYPE            BOX
      POSITION_HINTS            5
      ICON                      DTmail
      LABEL                     Mail
      ALTERNATE_ICON            DtMnew
      MONITOR_TYPE              mail
      DROP_ACTION               Compose
      PUSH_ACTION               DTWmail
      PUSH_RECALL               true
      CLIENT_NAME               dtmail
      HELP_TOPIC                FPOnItemMail
      HELP_VOLUME               FPanel
    }
  4. 上記の制御テキストを拡張子 .fp を持つファイル (たとえば mail.fp) にコピーし、dtwm.fp を閉じます。


    注 -

    新しいファイル mail.fp は、/etc または /usr/bin のように、すべてのユーザーのパスにあるようなディレクトリに作成します。



    :wq
    
  5. 「システム管理 (System_Admin)」フォルダから「管理用エディタ (Admin Editor)」アクションを起動し、新ファイル mail.fp を編集用に開きます。

  6. CONTROL OW_Mail セクションを以下のように変更します。


    CONTROL OW_Mail
    {
      TYPE                      icon
      CONTAINER_NAME            Top
      CONTAINER_TYPE            BOX
      POSITION_HINTS            5
      ICON                      DTmail
      LABEL                     Mail
      ALTERNATE_ICON            DtMnew
      MONITOR_TYPE              mail
      DROP_ACTION               Compose
      PUSH_ACTION               DTWmail
      PUSH_RECALL               true
      CLIENT_NAME               dtmail
      HELP_TOPIC                FPOnItemMail
      HELP_VOLUME               FPanel
    }
    1. TYPECONTAINER_NAMECONTAINER_TYPEPOSITION_HINTS は変更しません。


      TYPE                       icon
      CONTAINER_NAME             Top
      CONTAINER_TYPE             BOX
      POSITION_HINTS             5
    2. ICON フィールドの値を、代替アプリケーションのアイコンを表す値に変更します。


       ICON 								OWmailtool
    3. LABEL フィールドの値を、「メール (Mail)」サブパネル内の代替アプリケーションのアイコンと一緒に表示されるアイコンラベルに変更します。


       LABEL 								OW Mail Tool
    4. ALTERNATE_ICON および MONITOR_TYPE は変更しません。


       
      ALTERNATE_ICON                    DtMnew
      MONITOR_TYPE                      mail
    5. DROP_ACTION を変更するか、またはそのままにしておきます。


      DROP_ACTION 								Compose

      メールプログラムには「メール作成」アクションを持つものと持たないものがあります。たとえば OpenWindows の メールツール (mailtool) は「メール作成」アクションを持ちません。このため、DROP_ACTION を「メール作成」のままにしておくと、誰かがメールをメールアイコンにドラッグした場合、dtmail の「メール作成」アクションが起動されます。DROP_ACTION を削除すると、メールがメールアイコンにドラッグされても何も起こりません。

    6. PUSH_ACTION フィールドの値を、ユーザーが新しいメールアイコンをクリックした時に実行する代替アクションを表す値に変更します。


       PUSH_ACTION								OWmailtool

      ここで指定するアクション名は、アプリケーション検索パスのどれかに定義されている必要があります。上記の OWmailtool アクションは /usr/dt/appconfig/types/localename ディレクトリの sunOW.dt に定義されています (localename はロケール名を示しています)。

    7. PUSH_RECALL は変更しません。


       PUSH_RECALL								true

      この値が「true」の場合、アプリケーションを 2 度立ち上げようとしても、新しいアプリケーションは起動しません。アプリケーションウィンドウがワークスペースで隠されている場合には、代わりにアプリケーションウィンドウが最前面に移動します。

    8. CLIENT_NAME フィールドの値を、代替アプリケーションの実行可能ファイルを表すものに変更します。


       CLIENT_NAME								mailtool

      CLIENT_NAME に指定するパス名は、そのアクション定義の EXEC_STRING に指定されているものである必要があります。たとえば、OWmailtool アクションの EXEC_STRING/usr/openwin/bin/mailtool として定義されています。

    9. エントリ HELP_* は変更しません。


      HELP_TOPIC                   FPOnItemMail
      HELP_VOLUME                  FPanel
  7. 変更を保存し、ファイルを閉じます。


    :wq
    
  8. 事前にこの手順をテストし、メーラーが表示され正しく動作することを確認した後、「フロントパネルに別のメールプログラムをインストールするには」の手順をユーザーに指示します。

フロントパネルに別のメールプログラムをインストールするには

  1. 管理者から、正しいメールアプリケーションの制御ファイルのパス名を入手します。

    管理者役割は、ユーザーの認可範囲内にあるすべてのラベルのメールを監視または通知するようにメーラーを設定する必要があります。詳細は、「代替メールアプリケーション用のマルチレベルアクションを作成するには」を参照してください。


    注意 - 注意 -

    自サイトのセキュリティ管理者の承認を得ない限り、次を厳守してください。

    • アプリケーションマネージャのフォルダから別のメールプログラムをインストールしない。

    • 接尾辞 .fp が付かない制御ファイルを持つ別のメールプログラムはインストールしない。


  2. セキュリティ管理者役割に sendmail を停止するよう依頼します。

  3. ファイルマネージャを使って、インストールするメールプログラム (新しいメールプログラムと呼びます) の制御ファイルが置かれているディレクトリに移動します。

  4. 「メールプログラム」サブパネル呼び出しボタンをクリックし、同サブパネルを起動します。

  5. 新しいメールプログラムのフロントパネル制御ファイルのアイコンをドラッグし、「メール 」サブパネルの「アイコンのインストール」ドロップサイト上にドロップします。

    新しいメールアプリケーション用のアイコンが「メール」スライダに表示されます。

  6. ポインタを新しいメールアプリケーション用のアイコンに置いた状態で、マウスの右ボタンをクリックし、「メインパネルに表示」を選択します。

  7. ポインタを「メール 」サブパネル内の古いメールアプリケーション用のアイコンに置いた状態で、マウスの右ボタンをクリックし、「削除」を選択します。

    古いメールアプリケーション用のアイコンをすべて削除するまで、上記の操作を繰り返します。古いメールアプリケーションと新しいメールアプリケーションを同時に使用することはできません。

  8. ワークスペースのメニューから「ワークスペース・マネージャの再起動」を選択します。

    サブパネルのサイズは、ウィンドウマネージャを再起動するまで補正されません。

  9. 管理者役割に sendmail を再起動するよう依頼します。