Trusted Solaris 環境と Solaris 環境では、メールは本質的に同じです。したがって、管理者役割がメールサーバーを設定および管理するときは、基本的に『メールシステムの管理』の指示に従ってください。ただし、この章や sendmail(1M) のマニュアルページで説明されている若干の違いには注意してください=
この章では次の操作手続きを示します。
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] となります。
メールの持つ機密ラベルは次のいずれかの方法により決定されます。
Trusted Solaris ホストまたはそれ以外のラベル付きホスト (トラステッドネットワークデータベースのラベル付きホストオプションで設定されているもの) からの着信メールの場合、その機密ラベルはメール作成プロセスの持つ機密ラベル (そのメールを送信したメーラーの持つ機密ラベル) になります。
ラベルなしホスト (ラベルを認識せず、トラステッドネットワークデータベース内でラベルなしホストとして設定されているもの) からの着信メールの場合、その機密ラベルはトラステッドネットワークデータベース内でそのホストに割り当てられているデフォルトの機密ラベルになります。
メールエイリアスの管理方法については、Solaris のマニュアル『メールシステムの管理』に書かれています。以下の節では、Trusted Solaris 環境に特有の事項だけを説明します。
各ユーザーは自分のホームディレクトリに .mailrc ファイルのローカルコピーを配置することで、個人的なメールエイリアスを作成できます。ホームディレクトリが常に MLD であるため、Trusted Solaris と Solaris では .mailrc ファイルの使い方が異なります。管理者やユーザーは .mailrc ファイル (その他のスタートアップファイル) を各 SLD (それぞれ異なる機密ラベルで作成されたもの)にコピーまたはリンクするために設定を行う必要があります。
エイリアスは NIS+ マップで指定するか、または各ホストの /etc/aliases ファイルで指定します。データベースマネージャの「ネームサービス (Naming Service)」メニューを使うと、システム管理者は aliases を含むデータベースの編集時に、「NIS+」または「なし (none)」を選べます。
管理役割になり、ADMIN_LOW
ワークスペースに移動します。
必要に応じて、「ログイン後、特定の管理役割になるには」を参照してください。
データベースマネージャの「Aliases データベース」ウィンドウを起動します。
必要に応じて、「管理アプリケーションを起動するには」を参照してください。
エイリアスを変更するには、既存のエイリアスを選択し、それを変更します。
エイリアスを追加するには、「編集」メニューから「追加」を選択します。
データベースマネージャの「ファイル」メニューから「終了」を選択します。
Solaris オペレーティング環境の /etc/mail/sendmail.cf ファイルでは、restrictmailq オプションが利用可能ですが、このオプションはデフォルトではセットされていません。Trusted Solaris 環境の sendmail.cf ファイルでは、restrictmailq オプションがデフォルトでセットされているため、特定のメール待ち行列内のジョブのリストを表示できるのは、そのメール待ち行列と同じグループに属しているユーザーだけに限られます。このオプションを設定すると、他のユーザーから送信された待ち行列内のメールの一覧を通常のユーザーが表示できません。
メール待ち行列の一覧を表示するには、mailq コマンドまたは sendmail -bp コマンドを入力します。管理者が次の操作を実行したとしても、メール待ち行列の内容を表示できるのは、自分のプロファイル内に mailq または sendmail コマンドを持つユーザーだけに限られます。これらのコマンドは、そのユーザーのプロセスの持つ機密ラベルよりも劣位のラベルを持つメールだけを表示します。
すべてのユーザーがメール待ち行列の内容を表示できるようにするには、/etc/mail/sendmail.cf ファイル内の -restrictmailq オプションを削除します。
必要に応じて、「管理用エディタアクションを使用してファイルを編集するには」を参照してください。
特定のグループに属すユーザーだけがメール待ち行列の内容を表示できるようにするには
mailq および sendmail -bp コマンドをプロファイルに追加し、/var/spool/mqueue のグループをこれらのコマンドに割り当てます。
ローカルおよびリモートのメール配送には、複数の 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))。次の図は、cascade、trustworthy、juggle という 3 つのホスト上のメール送信プロセスを示しており、ホスト trustworrthy はホスト juggle のメール中継ホストとして動作します。
ユーザーが「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 版独自のデバッグ情報を表示できます。
管理役割になり、ADMIN_LOW
ワークスペースに移動します。
必要に応じて、「ログイン後、特定の管理役割になるには」を参照してください。
プロファイルシェルにて /etc/init.d ディレクトリに移動し、sendmail を停止します。
$ cd /etc/rc2.d $ sendmail stop |
sendmail -d に続いてカテゴリ番号 75、続いて必要であればピリオド (.) の後にレベル番号を指定します。さらにその後に、1 つスペースを入れ宛先とメッセージを指定します。
次に示すように、メッセージはファイルの内容を宛先にリダイレクトすることでも指定できます。またはメッセージを指定せずに行末で return キーを押します。この場合、「Subject:」というプロンプトが表示されたらメールの件名を入力し、その後は mail(1) の構文に則ってメッセージの内容を記述できます。
$ /usr/lib/sendmail -d75.9 roseanne@trusted < /etc/motd |
ADMIN_LOW
のプロファイルシェルにて /etc/init.d ディレクトリに移動し、sendmail を再スタートさせます。
$ cd /etc/init.d $ sendmail start |
sendmail は、メールの送信や転送を行う前に、宛先に指定された受け手や受信ホストに関して多くのチェックを行います。メールがアカウントによって受け取り可能となるのは、そのメールがアカウントの認可上限と最下位機密ラベルの間にある場合に限られます。アカウントの持つ機密ラベル範囲については、第 5 章「ユーザーマネージャを使ったアカウントの設定」を参照してください。また、メールが特定のホスト上で受け取り可能となるのは、以下に示すように、そのメールがホストの持つ認可範囲内にある場合に限られます (詳しくは、第 10 章「トラステッドネットワークデータベース におけるセキュリティ属性の指定とルーティング設定」も参照のこと)。
認可範囲が ADMIN_LOW
と ADMIN_HIGH
の間であるマルチレベルホストは、すべての機密ラベルのメールを受信できます。
制限された認可範囲を持つマルチレベルホストは、その最上位から最下位機密ラベル間にあるメールだけを受信できます。
シングルレベル (ラベルなし) ホストは、そのホスト用に設定されている単一機密ラベルを持つメールだけを受信できます。
ユーザーによるメール送信に問題が起こった場合は、次のガイドラインに従って、問題を調査してください。
メールエイリアスをチェックすること。
sendmail はメールの配送先を決定するのに、/etc/aliases ファイルと NIS+ テーブルである mail_aliases を参照します。たとえば、xxx という名前の Trusted Solaris ワークステーション上のプロセスがユーザー fred に対してメールを送信した場合、sendmail が mail_aliases テーブルを参照した結果 fred のエイリアスとして fred@yyy を見つけた場合、そのメールは fred@xxx には送信されません。
送信ホストと受信ホスト間のネットワーク接続が正しく設定されていることを確認すること。
ここで、「メール送信用にネットワーク接続が正しく設定されていることをチェックするには」に示されている手順を実行してください。
mailx を使ってメールを送信します。
# mailx -v somebody@somehost Subject: test1 testl . |
mailx が出力するメッセージを調べます。メッセージが受け付けられたことを示す行が表示されていれば手順 4 に移ります。
送信元のホストにログインし (またはメールサーバーが送信元ホストでない場合には、メールサーバーにログインし)、ユーザーのメール送信に必要となる機密ラベルにログインします。
telnet(1) コマンドを発行し、受信側ホストの 25 番ポートに接続します。
trustworthy% telnet hostname 25 |
送信元のホストと受信側ホスト間のトラステッドネットワークデータベース内で、正しいラベルで接続が設定されている場合は、宛先ホストの sendmail が次のようなメッセージを出力します。
220 hostname Sendmail version ready at date |
接続を終了するには quit と入力します。
quit |
telnet からエラーメッセージが出力された場合は、接続が設定されていません。この場合、手順 6 以降に移り、デバッグしたいホストの種類に適合した手順を実行してください。接続が正しく設定された場合には次の手順に移ります。
送信メールの機密ラベルで、送信元ホスト上のメール待ち行列の内容を表示します。メールサーバーが送信元ホストでない場合には、メールサーバー上のメール待ち行列の内容を表示します。
表示内容を調べ、送信したメールがメールサーバー上の待ち行列に入っているかどうかを調べます。
# mailq | more |
「sendmail の Trusted Solaris 情報をトレースするには」に示されている手順を実行します。
宛先ホストが Trusted Solaris 2.x または 7 システムである場合、次の手順で宛先ユーザーがTrusted Solaris のセキュリティポリシーに基づくメールを受け取れるかどうかを確認します。
(必要に応じてユーザーマネージャを使って)、受信者が有効なユーザーアカウントを持っていることを確認します。
ユーザーマネージャの「ラベル (Labels)」ダイアログボックスを使って、そのアカウントの最下位ラベルと認可上限を調べます。
送信されたメールの持つ機密ラベルが、受信者の最上位ラベルよりも劣位で、かつ、受信者の最下位ラベルよりも優位であることを確認します。
メールの持つ機密ラベルが、label_encodings(4) ファイルに定義されて、宛先ホストのユーザー認可範囲およびシステム認可範囲内にあることを確認します。
sendmail は、メールの持つ機密ラベルがシステム認可範囲外にある場合、そのメールを配送しません。
たとえば、ADMIN_LOW
や ADMIN_HIGH
ラベルで送信されたメールのように、メールの持つ機密ラベルがシステム認可範囲内にはあるが、ユーザー認可範囲内にはない場合、一般ユーザーはデフォルトではそのメールを受け取れません。このような場合は、次の手順に移ります。
宛先ユーザーの最下位ラベルよりも低いラベルを持つメールの場合、自サイトのセキュリティポリシーが許すならば、次の手順を実行します。
詳細は、「受信者の最下位ラベルよりも低いラベルのメールに関する Sendmail の処理」および 「ユーザーの最下位ラベルよりも低いラベルのメールに関するメール配送オプションを設定するには」を参照してください。
システム上のすべてのユーザーが自分の最下位ラベルよりも低いラベルのメールを受け取れるようにするには、tsoluserlowupgrade (デフォルト) の指定により sendmail がメールを自動的に昇格していることを確認します。または、tsoluserlowaccept を指定することで、メールリーダーがメールを着信ラベルで生成していることを確認します (これが行われている場合、アカウントが必要な承認を持っていれば、昇格が可能になります)。
管理役割に移行可能なすべての一般ユーザーアカウントだけが、ユーザー認可範囲外にあるシステムプロセスからのメールを受け取れるようにするには、sendmail の設定ファイルで tsoladminlowupgrade または tsoladminlowaccept オプションを設定してください。
ある特定の管理役割が、ユーザー認可範囲外にあるシステムプロセスからのメールを受け取れるようにするには、プロファイルマネージャを使って、その管理役割に「すべての定義済みラベルを使用」承認を指定してください。
(デフォルトの管理役割は、この承認をプロファイルに持っています)
Trusted Solaris 2.x または 7 オペレーティング環境を実行している宛先ホストの場合、送信側ホスト上で、受信側ホスト用の tnrhdb(4)/tnrhtp(4) エントリが正しく設定されており、他のホストとの通信ができるようにしてください。
tninfo(1M) コマンドを使うと、各ホストに割り当てられているテンプレートの種類、およびそのテンプレート内に指定されているホストのタイプや属性を調べることができます。-h hostname オプションは指定のホストに割り当てられているテンプレートの名前を表示し、-t template_name オプションはそのテンプレートに指定されているエントリ (ホストのタイプを含む) を表示します。
宛先ホストが、tnrhdb(4) データベース内でそのホストに割り当てられている正しいテンプレート名を持つことを確認します。また、tnrhtp(4) ファイル内のテンプレートにそのホストのタイプが sun_tsol
として正しく定義されていることを確認します。
tnrhtp ファイル内のテンプレートに記述されている最下位および最上位機密ラベルセットが、配送されなかったメールの持つ機密ラベルでの通信を許すかどうかを調べます。
これらの検査をパスした場合、ネットワーク接続は正しく動作するはずです。手順 3 に戻り、確認のために telnet(1) を再度実行してください。
Trusted Solaris 1.x オペレーティング環境を実行している宛先ホストの場合、送信側ホスト上で、受信側ホスト用の tnrhdb/tnrhtp エントリが正しく設定されており、他のホストとの通信ができるようになっていることを確認してください。
宛先ホストが、tnrhdb データベース内でそのホストに割り当てられている正しいテンプレート名を持つことを確認します。また、tnrhtp ファイル内のテンプレートにそのホストのタイプが msix
として正しく定義されていることを確認します。
tnrhtp ファイル内のテンプレートに記述されている最下位および最上位機密ラベルセットが、配送されなかったメールの持つ機密ラベルでの通信を許すかどうかを調べます。
これらの検査をパスした場合、ネットワーク接続は正しく動作するはずです。手順 3 に戻り、確認のために telnet を再度実行してください。
Trusted Solaris 以外のラベル付きオペレーティングシステムを実行している宛先ホストの場合、送信側ホスト上で、受信側ホスト用の tnrhdb ならびに tnrhtp エントリが正しく設定されており、Trusted Solaris システムがネットワークを介して他のホストとの通信ができるようになっていることを確認してください。
必要であれば tnrhtp(4) のマニュアルページを読み、このホストに割り当てるテンプレート内で指定するホストタイプやその他のオプションを確認します。
たとえば、CIPSO タイプのホストと RIPSO タイプのホストでは、それぞれ必要とするオプションが異なります。詳細は、第 10 章「トラステッドネットワークデータベース におけるセキュリティ属性の指定とルーティング設定」を参照してください。
テンプレートを作成するかまたは tnrhtp 内にコピーを作成し、tnrhdb データベース内でそのホストに正しいテンプレートが割り当てられており、適切なホストタイプでそのホストが識別できることを確認します。
tnrhtp ファイル内のテンプレートに記述されている最下位および最上位機密ラベルセットが、配送されなかったメールの持つ機密ラベルでの通信を許すかどうかを調べます。
これらの検査をパスした場合、ネットワーク接続は正しく動作するはずです。手順 3 に戻り、確認のために telnet を再度実行してください。
ラベルを認識可能なオペレーティングシステムを実行していない宛先ホストの場合、送信側ホスト上で、受信側ホスト用の tnrhdb ならびに tnrhtp エントリが正しく設定されており、他のホストとの通信ができるようになっていることを確認してください。
宛先ホストが、tnrhdb データベース内でそのホストに割り当てられている正しいテンプレート名を持つことを確認します。また、tnrhtp ファイル内のテンプレートにそのホストのタイプが「unlabeled
」として正しく定義されていることを確認します。
tnrhtp ファイル内のテンプレートに記述されているラベルなしホスト用のデフォルトの機密ラベルが、配送されなかったメールの持つ機密ラベルでの通信を許すかどうかを調べます。
これらの検査をパスした場合、ネットワーク接続は正しく動作するはずです。手順 3 に戻り、確認のために telnet を再度実行してください。
セキュリティ管理者役割は、sendmail の設定ファイルである sendmail.cf に、Trusted Solaris に特有の機密性オプションとして、自サイトのセキュリティポリシーに合った値が設定されていることを確認する必要があります。詳細は、sendmail(1M) のマニュアルページの「Trusted Solaris での変更点」セクションを参照してください。以下の節ではこれらのオプションについて説明します。
受信者の最下位機密ラベルよりも低い機密ラベルのメールを受信した場合に sendmail が実行する処理には 2 つの種類を指定することができます。sendmail の設定ファイル内に「-Optsol...」機密性オプションを設定することで、メールが ADMIN_LOW
ラベルを持つかそれとも受信者の最下位機密ラベルよりも低い他のラベルを持つかに応じて、どのような処理を実行するかを指定できます。ADMIN_LOW
ラベルのメールは他のラベルのメールとは違った扱いを受けます。これは、ADMIN_LOW
ラベルのメールは常にシステムプロセスから特定のアカウント (通常は、管理役割アカウント) へと送信されるものであり、同アカウントはそのメールを読む必要があるからです。一方、ユーザー認可範囲内の特定のラベル (CONFIDENTIAL や INTERNAL 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 はそのメッセージを送信者に戻すことを意味します。
オプション名 |
意味 |
---|---|
-tsoladminlowupgrade |
デフォルトの設定。 |
-tsoladminlowaccept |
|
-tsoladminlowreturn |
|
-tsolotherlowupgrade |
受信者の最下位 SL よりも低い SL で受け取ったメールを受信者の最下位 SL まで昇格する。このメールは sendmail によりアップグレードされるため、これを受け取るユーザーに「すべての定義済みラベルを使用」承認は必要ない。 |
-tsolotherlowaccept |
受信者の最下位 SL よりも低い SL のメールを受け入れ配送する。ユーザーの実行プロファイルに「すべての定義済みラベルを使用」承認が存在する場合にのみ、そのユーザーはこのメールを昇格し、読むことができる。 |
-tsolotherrlowreturn |
デフォルトの設定。受信者の最下位 SL よりも低い SL のメールを送信者に戻す。 |
セキュリティ管理者役割になり、ADMIN_LOW
ワークスペースに移動します。
必要に応じて、「ログイン後、特定の管理役割になるには」を参照してください。
「メール・オプションの設定 (Set Mail Options)」アクションを使用して sendmail.cf ファイルを開き、編集を行います。
必要に応じて、「管理用エディタアクションを使用してファイルを編集するには」を参照してください。
「-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 システムでは、これを別のメールアプリケーションに置き換えることが可能です。ただし、そのメーラーが完全なマルチレベル対応のメール機能を提供できるようにするための、置き換えに必要な設定作業を行えるのは管理者役割だけです。
管理者による処理がなくても、各ユーザーは代替メールアプリケーションのアクションをフロントパネルにドラッグ&ドロップすることで、新しくインストールされたメーラーを現在のワークスペースの機密ラベルで使用することができます。しかし、このような方式でアクションをインストールした場合、複数の機密ラベルによるメールの監視が行えなくなります。したがって、このような方式は、単一機密ラベルを使っているサイトでのみ有効です。
管理者役割は次のことが行えます。
フロントパネル制御ファイルを変更し、代替メールアクションをすべてのユーザーが使えるようにすること (「フロントパネルの代替メールアクションをすべてのユーザーが使えるようにするには」を参照のこと)。
代替メールアクションの制御ファイルを各ユーザーに配布し、代替の制御ファイルを各ユーザーのフロントパネルの「メール (Mail)」サブパネルにドラッグ&ドロップする方法を指示すること (「代替メールアプリケーション用のマルチレベルアクションを作成するには」を参照のこと)。
代替メールアクションをフロントパネルにインストールする場合、そのメールアプリケーションに対応するアプリケーションを定義しなければなりません。「フロントパネルの代替メールアクションをすべてのユーザーが使えるようにするには」では、Dtmail の代わりに OpenWindows の mailtool を使用する例を示します。/usr/dt/appconfig/types/localename/sunOW.dt に定義されている OpenWindows の mailtool アクションを次の例に示します (localename はロケール名を示しています)。
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 に作成したディレクトリの内容をきれいにすることが必要となることがあります。
管理者役割になり、ADMIN_LOW
ワークスペースにいることを確認します。
必要に応じて、「ログイン後、特定の管理役割になるには」を参照してください。
dtterm(1) などの端末エミュレータにおいて、/etc/init.d ディレクトリに移動し、sendmail を停止します。
$ cd /etc/init.d $ sendmail stop |
セキュリティ管理者役割になり、ADMIN_LOW
ワークスペースに移動します。
代替メールアクションにアクションが定義されていることを確認します。
必要に応じて、「他のメールアプリケーションを代用するには」を参照してください。
アプリケーションマネージャの「システム管理 (System_Admin)」フォルダの「管理用エディタ (Admin Editor)」アクションを使用して、/usr/dt/appconfig/types/locale_name/dtwm.fp を開き、編集を行います (locale_name はロケール名を示しています)。
必要に応じて、「管理用エディタアクションを使用してファイルを編集するには」を参照してください。
次に示すようなメールの制御を行うセクションを検索します。
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 } |
TYPE、CONTAINER_NAME、CONTAINER_TYPE、POSITION_HINTS は、以下に示すようにそのままにしておきます。
TYPE icon CONTAINER_NAME Top CONTAINER_TYPE BOX POSITION_HINTS 5 |
ICON フィールドの値を、代替アプリケーションのアイコンを表す値に変更します。
ICON OWmailtool |
LABEL フィールドの値を、「メール (Mail)」サブパネル内の代替アプリケーションのアイコンと一緒に表示されるアイコンラベルに変更します。
LABEL OW Mail Tool |
ALTERNATE_ICON および MONITOR_TYPE は変更しません。
ALTERNATE_ICON DtMnew MONITOR_TYPE mail |
DROP_ACTION を変更するか、またはそのままにしておきます。
DROP_ACTION Compose |
メールプログラムには「メール作成」アクションを持つものと持たないものがあります。OpenWindows の メールツール (mailtool) は「メール作成」アクションを持ちません。このため、DROP_ACTION を「メール作成」のままにしておくと、誰かがメールをメールアイコンにドラッグした場合、dtmail の「メール作成」アクションが起動されます。DROP_ACTION を削除すると、メールがメールアイコンにドラッグされても何も起こりません。
PUSH_ACTION フィールドの値を、ユーザーが新しいメールアイコンをクリックした時に実行する代替アクションを表す値に変更します。
PUSH_ACTION OWmailtool |
ここで指定するアクション名は、アプリケーション検索パスのどれかに定義されている必要があります。上記の OWmailtool アクションは /usr/dt/appconfig/types/localename ディレクトリの sunOW.dt に定義されています (localename はロケール名を示しています)。
PUSH_RECALL は変更しません。
PUSH_RECALL true |
この値が「true」の場合、アプリケーションを 2 度立ち上げようとしても、新しいアプリケーションは起動しません。アプリケーションウィンドウがワークスペースで隠されている場合には、代わりにアプリケーションウィンドウが最前面に移動します。
CLIENT_NAME フィールドの値を、代替アプリケーションの実行可能ファイルを表すものに変更します。
CLIENT_NAME mailtool |
CLIENT_NAME に指定するアクションのパス名は、そのアクション定義の EXEC_STRING に指定されているものである必要があります。たとえば、OWmailtool アクションの EXEC_STRING は /usr/openwin/bin/mailtool として定義されています。
エントリ HELP_* は変更しません。
HELP_TOPIC FPOnItemMail HELP_VOLUME FPanel |
変更を保存し、ファイルを閉じます。
:wq |
次の手順 8 は、この作業をシステムの稼動後に行なった場合にのみ必要となります。
$HOME
/.dt/fp.dynamics ディレクトリの内容をすべて削除します。
ワークスペースのメニューを使ってワークスペースマネージャを再起動し、dtwm.fp に対する変更がフロントパネル上に反映されていることを確認します。
管理者役割になり、ADMIN_LOW
ワークスペースに移動します。
dtterm(1) などの端末エミュレータにおいて、/etc/init.d ディレクトリに移動し、sendmail を再スタートさせます。
$ cd /etc/init.d $ sendmail start |
セキュリティ管理者役割になり、ADMIN_LOW
ワークスペースに移動します。
必要に応じて、「ログイン後、特定の管理役割になるには」を参照してください。
「管理用エディタ (Admin Editor)」アクションを使って、/usr/dt/appconfig/types/localename/dtwm.fp ファイルを編集用に開きます (localename はロケール名を示しています)。
必要に応じて、「管理用エディタアクションを使用してファイルを編集するには」を参照してください。
以下に示すようなメールの制御を行うセクションを検索します。
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 } |
上記の制御テキストを拡張子 .fp を持つファイル (たとえば mail.fp) にコピーし、dtwm.fp を閉じます。
新しいファイル mail.fp は、/etc または /usr/bin のように、すべてのユーザーのパスにあるようなディレクトリに作成します。
:wq |
「システム管理 (System_Admin)」フォルダから「管理用エディタ (Admin Editor)」アクションを起動し、新ファイル mail.fp を編集用に開きます。
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 } |
TYPE、CONTAINER_NAME、CONTAINER_TYPE、POSITION_HINTS は変更しません。
TYPE icon CONTAINER_NAME Top CONTAINER_TYPE BOX POSITION_HINTS 5 |
ICON フィールドの値を、代替アプリケーションのアイコンを表す値に変更します。
ICON OWmailtool |
LABEL フィールドの値を、「メール (Mail)」サブパネル内の代替アプリケーションのアイコンと一緒に表示されるアイコンラベルに変更します。
LABEL OW Mail Tool |
ALTERNATE_ICON および MONITOR_TYPE は変更しません。
ALTERNATE_ICON DtMnew MONITOR_TYPE mail |
DROP_ACTION を変更するか、またはそのままにしておきます。
DROP_ACTION Compose |
メールプログラムには「メール作成」アクションを持つものと持たないものがあります。たとえば OpenWindows の メールツール (mailtool) は「メール作成」アクションを持ちません。このため、DROP_ACTION を「メール作成」のままにしておくと、誰かがメールをメールアイコンにドラッグした場合、dtmail の「メール作成」アクションが起動されます。DROP_ACTION を削除すると、メールがメールアイコンにドラッグされても何も起こりません。
PUSH_ACTION フィールドの値を、ユーザーが新しいメールアイコンをクリックした時に実行する代替アクションを表す値に変更します。
PUSH_ACTION OWmailtool |
ここで指定するアクション名は、アプリケーション検索パスのどれかに定義されている必要があります。上記の OWmailtool アクションは /usr/dt/appconfig/types/localename ディレクトリの sunOW.dt に定義されています (localename はロケール名を示しています)。
PUSH_RECALL は変更しません。
PUSH_RECALL true |
この値が「true」の場合、アプリケーションを 2 度立ち上げようとしても、新しいアプリケーションは起動しません。アプリケーションウィンドウがワークスペースで隠されている場合には、代わりにアプリケーションウィンドウが最前面に移動します。
CLIENT_NAME フィールドの値を、代替アプリケーションの実行可能ファイルを表すものに変更します。
CLIENT_NAME mailtool |
CLIENT_NAME に指定するパス名は、そのアクション定義の EXEC_STRING に指定されているものである必要があります。たとえば、OWmailtool アクションの EXEC_STRING は /usr/openwin/bin/mailtool として定義されています。
エントリ HELP_* は変更しません。
HELP_TOPIC FPOnItemMail HELP_VOLUME FPanel |
変更を保存し、ファイルを閉じます。
:wq |
事前にこの手順をテストし、メーラーが表示され正しく動作することを確認した後、「フロントパネルに別のメールプログラムをインストールするには」の手順をユーザーに指示します。
管理者から、正しいメールアプリケーションの制御ファイルのパス名を入手します。
管理者役割は、ユーザーの認可範囲内にあるすべてのラベルのメールを監視または通知するようにメーラーを設定する必要があります。詳細は、「代替メールアプリケーション用のマルチレベルアクションを作成するには」を参照してください。
自サイトのセキュリティ管理者の承認を得ない限り、次を厳守してください。
アプリケーションマネージャのフォルダから別のメールプログラムをインストールしない。
接尾辞 .fp が付かない制御ファイルを持つ別のメールプログラムはインストールしない。
セキュリティ管理者役割に sendmail を停止するよう依頼します。
ファイルマネージャを使って、インストールするメールプログラム (新しいメールプログラムと呼びます) の制御ファイルが置かれているディレクトリに移動します。
「メールプログラム」サブパネル呼び出しボタンをクリックし、同サブパネルを起動します。
新しいメールプログラムのフロントパネル制御ファイルのアイコンをドラッグし、「メール 」サブパネルの「アイコンのインストール」ドロップサイト上にドロップします。
新しいメールアプリケーション用のアイコンが「メール」スライダに表示されます。
ポインタを新しいメールアプリケーション用のアイコンに置いた状態で、マウスの右ボタンをクリックし、「メインパネルに表示」を選択します。
ポインタを「メール 」サブパネル内の古いメールアプリケーション用のアイコンに置いた状態で、マウスの右ボタンをクリックし、「削除」を選択します。
古いメールアプリケーション用のアイコンをすべて削除するまで、上記の操作を繰り返します。古いメールアプリケーションと新しいメールアプリケーションを同時に使用することはできません。
ワークスペースのメニューから「ワークスペース・マネージャの再起動」を選択します。
サブパネルのサイズは、ウィンドウマネージャを再起動するまで補正されません。