牧原真治
インターネットメールを利用しているところでは,TelnetあるいはPOPサーバを利用してユーザにメールサービスを行っているはずである.このメールを管理するためには,sendmail+popperを利用しているところがほとんどであると思われるが,sendmailは非常に多機能であるが設定が非常に難しく,セキュリティホールとなりやすく,しばしばクラッカーのターゲットとなっている.Telnetを使ってユーザにメールを使ってもらうには,Unixコマンドを教育しなけらばならず,コンピュータの専門家集団でない大学の環境では,Eudora,AL−MailのようなPOPクライアントで利用してもらうのが最も望ましい利用形態であると考えられる.
そこで,Apple Internet Mail Server(AIMS)を紹介する.AIMSは,以前MailShareと言う名前で知られたフリーウェアであったが,作者のGlenn AndrsonがAppleに迎えられたことでAIMSとしてAppleのサーバからダウンロードできるようになった.URLは,<http://cybertech.apple.com/AIMS.html>である.設定は非常に簡単で,アカウントを設定するだけでとりあえず使える簡単なサーバである.それでもいくつか注意しなければならない点があるので,ここに紹介する.
2)同じように「Time Formats...」(時刻の書式)をクリックすると,図3画面が表示されるので,ポップアップメニューから「US」を選択する.
3)「Set Time Zone...」(時間帯の設定)をクリックすると,図4画面が表示されるので,日本国内の都市を選択する.ここでは,「Tokyo」を選択している.
Received: from [202.23.79.106] by post.miyazaki-med.ac.jp with SMTP (Apple Internet Mail Server 1.0); Wed, 24 Jan 1996 18:58:42 +0900のようなヘッダがあるが,この日付が英語でなければならないし,時差の+0900も設定されなければならないが,それらはコントロールパネルの設定に依存しているので,必ずこのように設定しなければならない.
| 図1 「Date & Time」コントロールパネル | 図2 Date Formatsの設定 |
| 図3 Time Formatの設定 | 図4 Time Zoneの設定 |
mail MX 10 mailとなっていれば,mailにメールが配送される.複数メールサーバがあれば,
mail MX 10 mail MX 20 postとすれば,mailにアカウントがないメールは,postに転送されることになる.
図5 一般設定
(2)最大接続数(Connections)
AIMSは,それぞれ3つのサービスを提供しているが,接続数を上限いっぱいまで設定可能である.ユーザ数が大きい場合,デフォルトで設定されている接続数よりも接続数を増やさなければならない.もしサービスを行いたくない場合,例えばパスワードサーバを(Eudoraなどのパスワードサーバに対応したクライアントであれば,自分のパスワードの変更も可能)起動したくない場合などは,接続数を「0」にする.
SMTPの送出側の接続数は,Outgoing SMTPの欄に記入する.初期設定値は「2」である.送出予定メールフォルダ(AIMSのモニタを参照)にいつもメールがあるようなら,この数値を増やす必要がある.
MacTCPの接続数の最大値は64であるが,サーバの中で動いているTCP/IP関連アプリケーションで分け合っている.AIMSは,起動した時に2つの接続を行う.1つはドメインネームを確認するため,2番目はNotifyMail(Finger)の要求のためである.従って,残り62の接続数をPOP,受取SMTP,送出SMTP,パスワードサービス,同じマシンでTCP/IPアプリケーション(MacHTTP,FTPd,GopherSurfer,インターネットクライアントソフト)を使うのならば,これとも分け合わなければならない.
OpenTransportになると,接続数の制限はなくなり,こういったことを考慮する必要はない.AIMSの接続数を増やしたならば,AIMSに割り当てるメモリも増やす必要がある.
[時間切れ設定]
時間切れの数値の単位は秒である.ユーザがダイアルアップSLIPで接続しているような場合,リンクに時間がかかるので,この数値を大きくする必要がある.
[その他の設定]
DNRキャッシュの部分には,AIMSに組み込まれているDomain Name Resolverのキャッシュサイズを入れる.このDomain Name Resolverは,AIMSが,ドメイン名で指定されたホストに接続する場合,その名前を解釈してIPアドレスに変換し,メールサーバを認識するが,AIMSはキャッシュすることで,その機能をアップさせ,ドメイン・ネーム・サーバからのダウンロードを少なくする.初期設定では,AIMSは64カ所の名前を覚えておく設定になっている.この設定で,大部分のところは問題ないだろうと考えられる.
AIMSのresolverは,MacTCPのhostsファイルがあっても参照しない.バッファーサイズ(キロバイト)を変えると,AIMSの中でバッファーに割り当てるメモリも増加する.もし,ユーザが大きな手紙を多数送るような場合(「メールログ」の項で詳しく説明する),この値を大きくすると,スピードが早くなる.
Max mail log sizeとMax error log sizeは,ファイルの大きさ(キロバイト)の上限を規定する.このファイルは,システムフォルダの中の初期設定フォルダにある「AIMS error log」と「AIMS mail log」という形で保存される.配布される時は,このファイルサイズを限度いっぱいまで大きくしてあるが,これはこの半分まで小さくできる.もし,ログの分析をAIMSのウィンドウの中で行う代わりに,ツールを使って分析する場合,この数値を大きくすると便利だが,この数値を大きくしすぎると,性能が低下するので,注意が必要である.
[日付と時刻の設定]
AIMSは,現在の日付,時刻,時間帯などのデータをコントロールパネルから得る.このことについては,先に説明した.
[サーバ名]
AIMSは,初めて起動した時のドメイン名を取得する.これがドメイン名の初期設定値となる.
このセッションの初めに1つの例を示す.「mailbox.earnest.org」が初期設定値の名前だとする.「user@mailbox.earnest.org」宛てのメールは,このサーバは自分が受け取るメールだと認識する.しかし,「user@earnest.org」というメールも受け取らせたい場合,「earnest.org」を欄の下の方へ書き込む必要がある.そのためには,「Add」のボタンをクリックし,ホスト名を入れる.ここで注意しなければならないことは,受け取るメールについてだけこの設定が有効である点である.ドメイン・ネーム・サービスは,入ってくるメールの転送のため,MXレコードの設定を行っておく必要がある.
AIMSは,自分自身や他のホストを初期設定の名前で認識する.初期設定の名前は,名前を選択し「Default」ボタンを押して設定する.設定を変更しても,AIMSを一度終了させてから再起動するまでその設定は有効にならない.
(3)メールアカウントの管理
メールアカウントの管理を行うためには,「Server」メニューから「Account Information」を選択する(図6).
図6 Account Information画面
[any-nameとPostmasterのアカウント]
AIMSを立ち上げて見ればわかるが,自動的に2つのアカウントができる(any-nameとPostmaster).Postmasterは,サーバで最も重要なアカウントである.Postmasterは,メール配送に失敗した時のメッセージや,これが重要なのであるが,ユーザの抱えている問題や訴えを受け取らなければならない.「メールホストにはPostmasterのアカウントを作らなければならない」と,RFC 822,"Standard for the Format of ARPA Internet Text Messages"と規定されている.Postmasterへのメールをいつも誰かが見ていることが必要で,そのメールのアカウントや転送先のユーザアカウントをチェックする必要がある(「転送オプション」の項を参照).
any-nameは,ユーザリストにないアカウントである.うまく接触できずに宛名が不正確であった時にここに集められるため,小さな商業サイトでは非常に有用である.Postmasterのアカウントにリンクさせたりモニターをする人のアカウントに転送する設定ができる(「転送オプション」の項を参照).
Postmasterは,機能を表す名前であって個人である必要はない.あなたの組織の中でポストマスターグループのようなものを作り,そのグループのメンバーにメールを転送することが可能である.例えば,「editor」というアカウントを作成したとすると,そのアドレスは,「editor@myorg.org」となり,グループで管理を行うことができる.個人で組織の管理を行うことは,たいへんな負担である.
[ユーザアカウントの追加]
アカウント名 User name:ユーザを追加する時には,「Add」ボタンをクリックし,「User name:」の欄にユーザ名を入れる.ユーザ名には,日本語やスペースや特殊文字は使えない.小規模なサイトであれば自分の好みの名前が使えるが,大規模なサイトでは何らかの定型的な名前の付け方が必要となる.例えば,ユーザのファーストネームのイニシャルとラストネームを付けるようにすれば,管理がやりやすくなる.また,Unixの世界では,アカウントの名前は8文字までという制限があるので,これに従うのが無難(しかし,長い名前は「Alias」ファイルとして保存され,ほとんど問題になることはない).
[パスワード]
Password:次に,パスワードを登録する.パスワードは,次のことに注意して設定すべきである.![]()
Full name:次の欄にはユーザのフルネームを入れる.これは,管理を行う上で基本的なもので,管理が容易となる.ここには,フルネームかあるいはアカウントの目的を入れる.![]()
[サイズリミット]
Size limit:ユーザごとにメールボックスの大きさを決めることができる.この設定は,ユーザが長期休暇中とか,メールの多いメーリングリストに加入している場合など,数日間でサーバのハードディスクがいっぱいになってしまうような場合に有効である.また,ネットワーク速度が遅く,メッセージを受け取っている時に時間切れとなってしまうようなクライアントの場合,非常に多くのメッセージを受け取とると困るので,このような場合にも有効な設定である.受け取ったメッセージがメッセージ保存の限度を超えてしまうと(受け取りメッセージの大きさが20KBで,100KBが限度という設定の場合,10KBしか残っていないような場合),それから受け取るメッセージは,一時的に受け取りが拒否される.ここに示した数字は,キロバイトの単位である.「0」という設定は,初期設定で,制限なしという設定になる.![]()
[Account Options]
ここで,サーバのオプションを使用する・使用しないの設定ができる.
「Account enabled」の設定は,普通はチェックする(図7).ここがチェックされてないと,このアカウントのメールは,サーバに拒否される(ただし,これまでに述べたように「any-name」が使用できるようになっている場合は別である).このオプションは,転送には関係ない.
図7 Account Options
「Login enabled」は,このユーザをPOPクライアントとしてログインできるようにしたい時にはこのボックスをチェックする.転送オプションが設定されていて,ここのボックスをチェックしないでおけば,モニターしなければならないパスワードを1つ減らすことができる.
「Require APOP」のPOPはアルファベット・数字を使ったパスワード必要とするが,これにはセキュリティ上のリスクがある.このボックスがチェックされていると,パスワードは暗号化される.このボックスをチェックする場合には,ユーザの使用しているクライアントソフトがAPOPをサポートしていることを確認する必要がある(Eudoraは,APOPをサポートしている).
「Master privileges」は,AIMSの管理者としてリモートログインできるようにする.しかし,まだこの機能は組み込まれていない.このボックスは,管理者としてリモートログインできるようにさせたい人だけ,チェックする.
[転送オプション]
メール転送オプションを選ぶこともできる(図8).「No forwarding」が初期設定となっている.この設定は,入ってくるメールを通常の方法で蓄積して行く.これは,普通のPOPクライアント向けの設定である.
図8 転送オプション
「Forward to...」は,入ってくるメールをほかのメールアカウントに転送する.同じサーバ内の違うアカウントに転送する場合は,アカウントの名前だけで大丈夫である.B(mailbox.earnest.org)サーバの「fairfax」に単純転送する場合には,「fairfax」とだけ書けば大丈夫である.「fairfax@mailbox.earnest.org」と書く必要はない.転送のループができないように注意が必要である.例えば,AからBへ転送設定を行い,さらにBからAへ転送設定を行うとループができる.AからBへの転送設定を行い,さらにCへの転送設定を行うということはまったく構わない.転送設定を変更した時には,問題なく設定できているかもう一度確認する必要がある.
「Save as archive...」設定は,メールをUnixのメールフォーマットで保存するかを設定する.この保存方法は,Eudoraと同じ方法である.Eudoraがインストールされている場合,このファイルをシステムフォルダの中のEudoraフォルダの中に入れておけば,Eudoraが次に起動された時には,メールボックスが追加されたように認識される.この設定をする時には,さらに保存するファイルの名前を指定しなければならない.ファイル名だけを指定すると,そのファイルはAIMSと同じフォルダの中にできる.フォルダまで指定する場合には,パス名を全部書かなければならない.例えば,ファイルの名前が「archive」でフォルダ名が「Folder」,ハードディスクの名前が「Macintosh HD」の場合は,「Macintosh HD:Folder:archive」となる.
「KeepCopis」のチェックボックスをチェックすると,メールはPOP maildropの中にも保存され,さらに指定したところにも保存される.
「NotifyMail to...」のNotifyMailは,Scott Grubyが作ったMacintoshの拡張機能で,Fingerの要求を聞き入れる.Fingerの要求があると,NotifyMailはPOPクライアントであるEudoraに向けてAppleEventを送りユーザのメールをチェックしにいく.このオプションは,AIMSにNotifyMailにFingerの信号を送るように設定する.ここではIPアドレスかドメイン名でユーザを特定できる.より詳しい設定については,次のNotifyMailを参照のこと.
「NotifyMail to last IP」は「NotifyMail to...」と大体同じであるが,最後にユーザがメールをチェックしたIPアドレスに,着信を知らせる設定となる点が異なる.この設定は,ユーザが移動しない場合には,非常に有効であるし,管理も容易である.ユーザのIPアドレスやドメイン名をチェックする必要がないわけであるからである.このオプションを設定した場合,NotifyMailでユーザが正確に設定されている必要がある.そうでなければ,最初のIPアドレスが設定される.
「Mailing list...」には,単純な機能しかない.1つのアカウントを指定すると,複数の宛先にメールが配送される.メーリングリストのファイルは,単純なテキストファイルである.1つのアドレスを「username@host(optional comment)」という形で1行に書く.もしファイル名だけしか書かなければ,メーリングリストのファイルはシステムフォルダの中のMail Folderに保存する.パス名を全部書けば,Mail Folder以外に保存することもできる.「Keep Copies」のボックスをクリックすると,メーリングリストの最後の行になった人は,メーリングリストにメールを送ると,それぞれ2つずつメールが配送されるので,チェックはしない.
これは,メーリングリストファイルのサンプルである.
ernest(Ernest) amoncrieff(Algernon Moncrieff) dgray@portrait.edu(Dorian Gray) carl@winternet.com(Carl Steadman)「ernest」と「amoncrieff」は,自分がホストとなっているユーザの名前である.この場合,「ernest@mailbox.earnest.org」とか「amoncrieff@mailbox.earnest.org」とか,電子メールアドレスを全部書いてはいけない.
[ユーザアカウントの消去]
ユーザアカウントの消去は,スクロールウィンドウから消去したいアカウントをクリックし,「Remove」ボタンをクリックする.確認のダイアログが出るが,ここで「OK」をクリックすると,消去される.Postmasterとany-nameのアカウントは消去できない(any-nameのアカウントを使用しない設定になっていても,削除できない).
(4)ほかのメールホストへのメール配送
Sending Setupの画面を使用して,他のホストへメールを転送する場合の設定を変更することができる(図9).ほとんどのところでは,メール保存期限の値を決めるほかは,新たにこのウィンドウで設定を行う必要はない.
図9 メールの配送
上の例のなかでは,BITNETを設定している.「.BITNET」で終わる宛先「LISTSERV@JHUVM.BITNET」のメール配送経路を設定することができる.この例では,初めに「.BITNET」で終わる名前がないかを探す.「*」は,ワイルドカードで「.BITNET」で終わるドメイン名であるか確認する.そして,ホスト経由が選択されるのでこのサーバを経由してメールが配送される.メールの単純な中継を行う時には,すべてのメールがほかのマシンに転送されるように設定する.「*」というドメイン(つまりどこでもということ)宛てのメールに経路設定を行えばよい.例えば,「relay.earnest.org」というメールホストにメールを送りたい場合は,「Route:Via host...」で設定したホストを中継して「relay.earnest.org」に到達する.
「Save as files...」の設定をポップアップメニューから選択することができるが,この設定は条件に合うメールを保存する.ある一定の期間パッチ処理を行い,特定の宛先のメールを一日のある期間配送を制限し,インターネットとの接続を制限したい場合に利用することができる.
ドメイン名のチェックは,リストの上の方から順に一致するまで行われる.リストをドラッグして順番を変更することができる.「*」は,必ず最後にしなければならない.なぜなら「*」は,すべてのドメインが一致するからである.
[時間切れ,再発送時間,メール保存期間]
「*」を含んだドメインは,Timeout,Retry Interval,Message Expiryを設定することができる.これは,メールが配送できなかった時のためである.これら3つの設定値は長くも短くもできるが,それらのルートの信頼性性能などによって,適切な値を設定する.また,AIMSを利用するユーザがどんなことを望んでいるかにもよる.もし,Message Expiryを72時間に設定したとすると,電子メールで大事なメッセージをやり取りする場合,3日間もメールが配送されたかそうでないかを知るのに時間がかかることになる.
(5)AIMSのモニタ―送出メールとログ
Outgoing mailのウィンドウは(図10),AIMSの外へ送るメールを示す.初期設定のドメイン(Sending setupウィンドウを参照)で期限の来たメッセージがあり,その障害の原因を突き止めたい場合には,メールが発送されるところをモニターするとよい.送出経路に原因があるのか,インターネットとの接続に問題があるのか,ループを作っているのか,を突き止めなければならない.
図10 メールキュー
Outgoing mailウィンドウは,4つの部分からできている.メッセージの宛先(To),メッセージの大きさ(bites),メッセージの到着時刻,次の配送予定時刻である.メッセージをクリックして選択し,「Message」メニューから「Send Now」(今送る),「Delete」(削除する),「Forward to...」(...へ転送する)の3つのオプションが選択できる.「Send Now」は,発送予定時刻がどんな設定になっていようが,直ちにメッセージを発送する.「Delete」は,メッセージを配送せずに削除する.「Forward to...」でメッセージは宛先とは別のところへ転送されるが,オプションでこのまま宛先にメッセージを送るか削除するかの選択ができる.「Delete」や「Forward to...」オプションを使った時は,メールの発信者にそのことを知らせなければならない.
[メールログ]
メールログ(図11)にはAIMSに入ってくるメールと出て行くメールのすべてが記録される.Mail logのウィンドウは,6つの部分(アドレス,メールの大きさ,種類,日付,メッセージID,インターネットアドレス)からできている(上には4つの部分だけ表示している).すべてのメッセージは,Mail logの中では2行で表される.一方は「from」で,これにはメッセージを発信者アドレスやメッセージがサーバに届いた日時が表示され,「to」には送り先が表示される.複数の宛先が指定されたメッセージは,「to」の行が複数になる.ほかのホストへ送られるメッセージは,「sent」の行が付け加わる.「sent」はおそらくほとんどお目にかかることはないと思うが,「from」/「to」の後につく.これは,すぐにメッセージが送れない時に付け加わる.メッセージが送れなかった場合には,エラーログにも記録される.
メールログは,システムフォルダの中の初期設定サブフォルダにAIMS mailing logとして単純なテキストファイルとして保存される.ファイルの大きさの制限は初期設定のところで説明した.
図11 メールログ
[エラーログ]
エラーログ(図12)は,AIMSに起こったすべてのエラーを記録する.この記録でどこが悪いかアドバイスを受けることが可能である.Error logのウィンドウは,2つの部分からできている.エラーの起こった日付とエラーメッセージである.エラーメッセージには,次のようなものがある.
図12 エラーログ
[接続統計]
Connection Statisticsウィンドウ(図13)は,現在の接続状態と仮想接続数の限度をそれぞれのサービスごとに示す.もし,設定した(初期設定のところであるでに説明した)最大接続数と現在の接続数とが一致していたなら,この数値を大きくする必要がある.
図13 接続統計
[デバグウィンドウ]
DebugウィンドウにはAIMSの行ったすべてのメッセージの転送状況についての記録がある.これにはスクロールバーはないが,Outgoing,Mail,Error logsなどで得られる情報よりも多くの情報を含んでいる.しかし,一番役に立つのは現在起こっている小さなトラブルの原因を追及する時である.デバグウィンドウの情報を後から解析するためにログファイルとして保存することもできる.その方法は,Debugウィンドウから「Capture to File」を選ぶことである.これは,現在のやり取りを保存するだけである.一度AIMSを終了し,再起動した時には,この設定は自動的にオフになる.
(6)AIMS運用のコツ
AIMSは,ほとんど何の設定を行わなくとも使用することができるが,アカウント数が増えるにつれてトラブルも増える.まず,Outgoing SMTPのファイルが異常に大きくなりメール送信ができなくなることがある.これは,メール送信する時に相手のメールサーバに接続ができずに時間切れを起こし,メールがたまってしまうのである.あまりメールがたまってしまうと,パフォーマンスの著しい低下を招く.そんな場合,AIMSを一度終了させて再起動させようとすると,ウィンドが表示されるまでに5分以上かかるので,途中でしびれを切らさないことが必要である.すぐに再起動させていた場合には,システムフォルダの中のMail Folderの中にあるOutgoing SMTPと名前の付いたファイルをこのフォルダの中から出して再起動する.ただし,この操作を行うとメールが失われるので,注意が必要である.こういった場合,メール送出の経路を近くのメールサーバ経由に指定してやるとメールがたまらなくなる.筆者の管理している宮崎医科大学のメールサーバは,AIMSからUnixのサーバにメールを送り,そこからメールを配送するようにしている.
AIMSにはどのくらいメールのアカウントを登録しても大丈夫かということだが,宮崎医科大学では400名ほどのアカウントを登録しているが,問題ない.400名くらいなら大丈夫だと言える.ただし,これも上記のように設定を最適化することによって安定して運用できるようになったのであって,条件の悪いところ・設定の不適切なところでは100名ほどのアカウントでも問題が出ることがある.
AIMSとAutoShareを合わせて使うとメーリングリストを運用できるが,AutoShareを動かしているサーバをPOPサーバとして使用すると,AutoShareが動き始めると反応が非常に鈍くなり,時には時間切れで接続できなくなる場合もあるので,AutoShareを動かしているサーバをPOPサーバとして使用しない方がよい.
メールサーバは,ほかのサーバよりも責任が重く,インターネットの基本的なサービスであるので,一時のサーバダウンも許されない.ダウンさせないためにも専用のサーバマシンを用意し,常にその動きを監視しておく必要がある.インターネット経由でクラッカーに狙われてもセキュリティホールはないと思われるが,AppleTalk的にサーバマシンに侵入すると,メールのファイルは暗号化されずにスプールされているので,そのままメールが読める.従って,LAN内部からの侵入に注意をする必要がある.極端なことを言えば,サーバマシンの前に座ってキーをたたけばそのままメールをのぞくこともできるわけであるから,サーバマシンに勝手にさわれないようにしておくことが必要である.