Oct 23, 2005

Mac OS Xをメールサーバーにしよう-Postfix編-

Panther tiger


 職場のスタッフにそれぞれメールアドレスを配布できたらナァ、とか、社内メール専用アドレスが欲しいなぁとか、サークルのメンバーで使うアドレスが欲しいなぁなんて思うこともあるわけです。Mac OS X(Panther以上)にはメールサーバーソフトウェアとして、はじめからPostfixという優れたソフトがインストールされています。ここではMac OS XでPostfixを有効にして、職場に素敵なメール環境をつくっていくための方法を考えます。安全のためSSLでの接続を前提にすすめていきましょう。



 MacOSXにPostfixを使えるようにすると、単にSMTPサーバーにできるだけでなく、勉強次第ではその機能を活かしてYahoo!さんやinfoseekさんなどが提供しているようなWebメールシステムもつくれるようになります。

 このページでは基本、ddo.jpでドメインを取得していることを前提として進めていきます。ddo.jpドメインを取得するには以前のログを参考にしてください。


 ただし、とても重要で忘れてはいけないこともあります。それはサーバーを悪用しようと考える人がいることです。メールサーバーを運営するにはしっかりとした管理が必要です。そうでなければ、あなたのサーバーが悪意のある人たちによって、スパムメールの踏み台にされてしまうかもしれません。なによりこのインターネットメールというシステムが、危機に追い込まれてしまいます。かならずしっかりとした覚悟で、立ち上げてください。特にフリーのドメインネームサービスを利用しているような場合では、安全性に限界があることを理解しておきましょう。


 Mac OS X 10.3の頃には「Postfix Enabler」という非常に簡単でわかりやすい、ほぼマウスだけでPostfix(かつPOP3かつIMAPかつTSL/SSL)を使えるように設定してくれるという、度肝を抜くソフトウェアがドネーションウェア(だったと思う)として配布されていました。現在、「Postfix Enabler」はMac OS X10.4に対応した際に、シェアウェアとなりました。シェアウェアフィーはわずか$9.99ですから、この使いやすさからすれば安すぎるぐらいだと思います。決済をする方法をお持ちなら、こちらのソフトウェアを使った方が、とても簡単です。


必要なもの

  • Mac(Mac OS Xを搭載しているもの。ここは10.3.x(Panther)で進みます)
  • mi
  • ターミナル(Terminal)アプリケーションフォルダ>ユーティリティフォルダの中にあります。
  • コンソール(console)アプリケーションフォルダ>ユーティリティフォルダの中にあります。
  • Fugu(またはRBrowser, Cyberduckなどでも)
  • やる気
  • オープンソースコミュニティへの感謝
  • セキュリティーへの配慮
  • メールというシステムへの感謝と協力意識
  • インターネットを構築してくれた方々への畏敬の念



作業の全体的な流れ

最後のステップが終わるまでがんばります。

  1. Postfixの設定をする
  2. Postfixの設定をチェック
  3. Postfixを起動する
  4. メールのテスト送受信
  5. メールの不正中継チェック
  6. Postfixの自動起動設定
  7. POPdとIMAPdのインストール、設定
  8. SMTP, POP, IMAPをSSL経由で通信させるための設定
  9. メールソフトでの送受信テスト(認証が有効かの確認)


Postfixの設定-main.cfの編集-

PostfixはMac OS Xにはじめからインストールされていますが、インストールされているだけで、動いてはいません。これを動くように、そして、悪意のある人に踏み台にされたりしないように慎重に設定をしていきます。

  1. Finderの移動から「フォルダへ移動...」を選び/etc/postfix/へ移動します。





  2. postfixのフォルダが開きます。



  3. この中からmain.cfを見つけます。



  4. このままmain.cfをmiエディタで編集して、postfixの設定をしたいのですがアクセス権の関係で編集できません。なので、一度、main.cfファイルをデスクトップにドラッグアンドドラッグしてます。そうするとコピーが始まります。必ず、バックアップとして編集する前のmain.cfをどこかわかりやすいところにもう一つコピーしておいてください。

    アクセス権の関係で、そのままでは編集できません。

        
    そこで一度デスクトップにコピーします。可能なら万が一に備えて、もう一つ、バックアップとしてどこかにコピーしておきます。

    postfixバックアップなどと名前を付けたフォルダに保存しておきましょう。わかりやすいように日付なども付けておくと吉。あと他の人にはのぞかれないように注意しましょう。(MacOSXの場合、ホームにはおかないようにします。書類フォルダなどにしまっておく方がいいです。)


  5. main.cfをmiエディタなどで開きます。



  6. main.cfの中身が表示されます。

    なんか寒気とうんざりが一緒にやってきますけど、がんばりましょう。


  7. Postfix Enablerが設定している方法をマネしていきます。とにかく一番最後の行まで移動します。



  8. 650行目ぐらいに以下の文章をコピー、ペーストします。この設定はあくまで、Postfixが動くというだけの一例です。より自分の環境にあった条件を責任を持って検討しましょう。あなたのドメインネームの部分は自分の環境に合わせて変えてください。ddo.jpドメインを持っているなら、そのアドレスを入れます。Mac OS X 10.4.x(Tiger)の場合はちょっとかわりますので、以下のリンクをクリックして、記載の作業を済ませてからまたここに戻ってきてください。

    この設定では、お使いのMac OS Xにアカウント(システム環境設定のアカウントパネルなどで作成したもの)をもっている人以外は、あなたのMacをつかってメールを送信することができないようになっています。本来、SMTPという仕組みは誰でも使うことができるものなので、上の図665行から始まるような設定をしておかないと、SMTPサーバを勝手に使われる恐れが起きてきます。設定しないと、もしかしたらどこかの誰かがあなたのMacを悪いメール送信の踏み台にしてしまうかもしれません。
    ###で囲まれている部分は読み込まれない部分ですから、日付や時間はそれぞれの環境で変更してください。

    ###Postfix Parameter Edit 2005.10.14 21:30###
    inet_interfaces=all
    mynetworks_style=subnet
    message_size_limit=2048000
    mydomain=あなたのドメインネーム
    myhostname=あなたのドメインネーム

    smtpd_tls_cert_file=/System/Library/OpenSSL/certs/server.crt
    smtpd_tls_key_file=/System/Library/OpenSSL/certs/server.key
    smtpd_tls_loglevel=1
    smtpd_use_tls=yes
    smtpd_tls_session_cache_database = sdbm:/etc/postfix/smtpd_scache
    tls_random_source = dev:/dev/urandom

    smtpd_sasl_auth_enable=yes
    smtpd_use_pw_server=yes
    enable_server_options=yes
    smtpd_pw_server_security_options=plain, login, cram-md5
    smtpd_sasl_security_options=noanonymous, noplaintext
    broken_sasl_auth_clients=yes
    smtpd_recipient_restrictions=permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
    smtpd_sasl_local_domain=$mydomain
    ###End Postfix Parameter Edit###


    Mac OS X10.5(Leopard)の場合、main.cfの記述を少し変更する必要があります。上から10行目のところ

    smtpd_tls_session_cache_database = sdbm:/etc/postfix/smtpd_scache



    smtpd_tls_session_cache_database = btree:/etc/postfix/smtpd_scache

    に変更するとうまくいくようでした。
    ここがsdbmのままだと、「warning: /usr/libexec/postfix/local: bad command startup -- throttling」や「fatal: unsupported dictionary type: sdbm」、「warning: process /usr/libexec/postfix/tlsmgr」のようなエラーが出ていました。試してみてください。




    "message_size_limit=2048000"はメールボックスの大きさです。ここの例ではおよそ2MBとしてあります。大きくしたい場合はここの数字を変更します。

    "あなたのドメインネーム"はあなたが取得したドメインネームを入力します。ddo.jpをでドメインを使わせてもらっているなら、たとえばnamahage.ddo.jpのように入力します。外部と接続せず、自分のマシンの中だけでテスト、勉強するだけならlocalhostでいいと思います。

    668行目最後、", cram-md5"はMac OS XPantherでは機能しませんので書かなくてもオッケー。OpenDirectory Serverってオープンソースじゃないんですかね?どこかに認証サーバーのソースはないもんでしょうか。


  9. ここでファイルを保存します。



  10. 今編集、保存したデスクトップにあるmain.cfを、元の場所/etc/postfixに書き戻します。マウスでドラッグアンドドロップします。禁止マークが出ますけれども気にせず先に進みます。

    禁止マークはスクリーンキャプチャできません。本当は出ます。optionキーを押しながらドラッグアンドドロップするとコピーになります。ベストな設定を探すためにまだなんどか編集を繰り返すつもりならコピーの方がいいです。


  11. 移動できないというダイアログが出ますが、認証を押して先に進みます。





  12. 置き換えて良いか尋ねてきますので、置き換えを実行します。





  13. 置き換えに関して認証を求めてきますので、対応します。



  14. 置き換えが終了したら、main.cfのアクセス権を確認します。main.cfを選んで、Finderの情報を見るを実行します。






  15. "main.cf"の情報が開きます。所有者とアクセス権のところを開きます。開くと、所有者とアクセス権がMacのユーザー名になっているはずです。これを以下のように変更します。まずグループをwheel/読み出しのみに、次にオーナーをシステム/読み書きにします。その他は読み出しのみです。(postfixでもいいかもしれません)先にオーナーの方を変えるとグループの方がかえられませんので注意。認証を求められることがありますのでそのときは指示に従います。




  16. ロックがかかっていて変更できないときはロックを外してから編集します。編集が終わったら、かならずロックしてアクセス権が変更できないようにしておきます。



  17. 以上でmain.cfの編集は終わりです。


  18. SSL接続の際にpostfixがつかうキャッシュファイルを作成するコマンドを実行しておきます。ターミナルから以下のコマンドを入力してリターンで実行します。


    sudo touch /etc/postfix/smtpd_scache.pag




  19. もう一つ以下のコマンドを入力してリターンで実行します。

    sudo touch /etc/postfix/smtpd_scache.dir





Postfixの設定-master.cfの編集-

次にmaster.cfの編集をおこないます。基本操作はmain.cfのときと同じです。

  1. postfixのフォルダからmaster.cfを見つけます。postfixのウィンドウをすでに閉じてしまっていたら、main.cfの編集step1でおこなった方法で開いてください。



  2. main.cf同様、このままmiエディタで編集のはアクセス権の関係で編集できません。なので、やはり同様にデスクトップにドラッグアンドドラッグします。必ずmaster.cfもどこかわかりやすいところにもう一つバックアップとしてコピーしておきます。

    そこで一度デスクトップにコピーします。可能なら万が一に備えて、もう一つ、バックアップとしてどこかにコピーしておきます。



  3. miでmaster.cfを開きます。



  4. master.cfの内容が表示されます。




  5. 77行目に移動します。77行目には以下のようにあるはずです。Mac OS X 10.4.x(Tiger)でも記載されている内容はほぼ同じですが、行番号が違うので注意して探してみてください。

    smtp inet n - n - - smtpd




  6. 77行目の最初にある # を消します。



  7. 同様に87行目に移動します。Mac OS X 10.4.x(Tiger)でも記載されている内容はほぼ同じですが、行番号が違うので注意して探してみてください。



  8. 87行目の最初にある#を消します。


  9. あとはファイルを保存します。



  10. つぎに、main.cfの編集でやったstep10からstep16までをmaster.cfについてもおこないます。(つまり、postfixフォルダにmaster.cfの書き戻し、master.cfのアクセス権の変更です)


  11. これでmaster.cfの編集は終了です。


Postfixの設定をチェックする

main.cfとmaster.cfを編集してきましたが、この編集にミスがないかどうかをチェックします。

  1. ターミナルを起動させます。



  2. 次のコマンドを入力し、リターンで実行します。Passwordを要求されたら、入力します。

    sudo postfix check




  3. 正しく設定されていれば、なにも表示されません。問題があった場合は問題のある場所が表示されます。

    これは問題がなかったということ。


    これはmain.cfのhostnameまわりに問題があるということ。こうしたメッセージが出たら設定を見直しましょう。


Postfixの起動

  1. いよいよPostfixを起動させます。起動させる前にユーティリティフォルダからコンソールを起動させて、mailのログをすぐに確認できるようにしておきます。


    コンソールウィンドウの左上のログボタンを押すとログファイルが表示されので、/var/logのなかにあるmail.logをえらぶとmailのログが読めます。すでにいくつか書き込まれていると思います。


  2. ターミナルに次のコマンドを入力し、リターンで実行します。パスワードを求められることがありますがそのときは対応します。


    sudo postfix start


    ちなみに、postfixを停止させるにはsudo postfix stopと入力します。


  3. 実行すると、Postfixが動作したことを示す表示が出ます。



  4. コンソールのログにもPostfixが起動したことを示すログが残っているはずです。



  5. 以上でPostfixの起動は終了です。


Postfixの動作確認

Postfixでメールサーバーとして利用可能な状態か、また設定が有効になっているかを調べていきます。

  1. ターミナルに次のコマンドを入力し、リターンで実行します。


    telnet localhost 25


    SMTPはポート25を使用しますので、25接続します。


  2. 実行すると、Postfixが提供するSMTPサーバーに接続できたという表示が出ます。



  3. さらに以下のコマンドを入力して、リターンで実行します。

    EHLO localhost




  4. ばばばばばっと、文字列が表示されます。

    なんか表示がおかしいようなきもするんですけど...。


  5. 下から5行目に以下の表示があることを確認します。Postfixで使うことができる認証形式を表示しています。

    250-STARTTLS
    250-AUTH LOGIN PLAIN CRAM-MD5
    250-AUTH=LOGIN PLAIN CRAM-MD5




  6. quitとキーボードから入力、リターンで実行すると接続を切断することができます。



  7. 接続が切れたら、動作確認は終了です。


メール送受信テスト

とりあえずここまでで一度メールを送受信できるかどうか実際に試してみます。使い慣れたメールソフトでできるといいのですが、このテストのためだけにメールソフトの設定をするのがめんどくさいのと、Postfixを起動しただけでは、メールソフトを使った受信ができるサーバーにはなっていません。なので、しんどいですけどターミナルをつかっておこないます。mailxというコマンドを使用します。

  1. ターミナルに次のコマンドを入力し、リターンで実行します。ここでは例としてこのMacでの私のユーザー名namahageから、自分namahageへメールを送る操作をして、メールがちゃんと送れるか試してみます。

    mail あなたのMacのユーザーネーム

    mail namahage


    リターンで実行されます。


  2. 実行すると、mailを作成する画面になります。まずSubject、つまり題名を適当につけます。なんでもかまいません。ここではtestと入力しました。入力したらリターンで次に進みます。



  3. 本文を入力します。内容はなんでもかまいません。ようは送信できるかどうかだけですから。ここではtestと書き殴りました。



  4. 入力がすんだら、改行をして、ピリオド . を入力しリータン。EOTと表示されたら、あなたからあなたへメールが無事送信されたことになります。

    ピリオドだけを入力してリターンをするとすぐ、メールは送信されてmailxは終了します。ここではユーザーnamahageからユーザーnamahageあてに送られたことになります。


  5. では受信を試してみましょう。postfixが正しく動作していれば、今送信したメールがあなた宛に届いているはずです。メールを確認するには次のコマンドを入力、リターンで実行してください。

    mail




  6. ちょっと地味ですけど、メールが到着していることを示す嬉しいメッセージが表示されます。ばんざい、Postfixが動いています。

    ばんざい、Postfixがちゃんと動いていますよ。/var/mail/namahageにあるメールボックスに一つ新しいメッセージがあります。と書いてあるわけです。その次の行、Nは新着メールという意味。namahageさんからtestという名前のメールが来ていると書いてあります。


  7. メールを開くには1と入力、リターンを押します。(ただリターンだけでもオッケー)。&マークの後ろ、このまま入力すればよいです。下のようにメッセージが表示されます。

    1とだけ入力してリターン


    さっき送信したメールが表示されます。

  8. mailを終了します。&マークの後ろに q と入力し、リターンで実行します。メッセージを読んだことが記録されて、mailは終了します。

    qとだけ入力してリターン




  9. メール送受信の確認はこれで終了です。コンソールを見ると、送受信をおこなったことがログとして記録されているはずです。参考までに見ておくと良いです。




    namahageからnamahageへ送ったことがわかる。



不正な中継がおこなわれないかチェックしよう

Postfixは無事動作しましたが、もしかしたら設定が不十分で、メールサーバーをどこか知らない悪い人に使われてしまうようになっているかもしれません。これを確認しないまま、サーバーを動かし続けるのは、自分にとってマズイだけでなく、ずばり全世界的にまずいことです。不正な中継がおこなわれるようになっていないかチェックをします。

  1. 不正中継のチェックは、日本独自のメールブラックリストデータベースをつくろうというプロジェクトをがんばっておられるRBL.JPさんらのところでできます。



  2. RBL.JPさんらのトップページ中程に、ツールというコーナーがあります。ここに「第三者中継チェック」という項目がありますのでクリックして先に進みます。



  3. Third Party Relay Check(第三者中継チェック)のページに来ます。



  4. ホスト名を入力して、checkを押します。入力するのはあなたのサーバーのアドレスです。IPアドレスでもいいですし、ddo.jpから使わせてもらっているドメインネーム(あなたの希望した名前.ddo.jp)でもどちらでもかまいません。



    または

    自分のIPアドレスはシステム環境設定>ネットワークパネルで確認できます。


  5. 結構時間がかかりますが、じっくりと待つと、結果が表示されます。no relays accepted.なら完璧です。赤い文字でrelay accepted.と出た場合は不合格となります。ただし、注意書きにあるように、赤が出たからと言ってかならず問題があるというわけではありません。詳しくはRBL.JPさんらの説明を良く読んでください。



  6. これで第三者中継のチェックは終了です。



Postfixが自動起動するように設定しよう

Postfixは無事動作しましたが、このままではMacを再起動するたびに、手動でPostfixをスタートさせないといけません。そこでPostfixが自動的に起動するように設定します。Mac OS X 10.4.x(Tiger)の場合はhostconfigの変更だけでは自動起動するように設定できません。次のリンクをクリックして、記載の内容を行ってください。

Tigerの場合:自動起動の設定

  1. Finderの移動から「フォルダへ移動...」を選び/etcへ移動します。





  2. etcフォルダの中からhostconfigという名前のファイルを見つけます。



  3. 今までやってきたmain.cfやmaster.cf同様このままでは編集できませんので、これらと同じやり方で、デスクトップにドラッグアンドドロップ、コピー、miで編集していきます。もちろんバックアップとしてもうひとつわかりやすいところにコピーしておくことをおすすめします。



  4. 18行目にMAILSERVER=-AUTOMATIC-とあるのを見つけます。



  5. これを以下のように書き換えます。AUTOMATICYESに変えるだけです。

    MAILSERVER=-YES-




  6. 編集が終わったら保存をし、main.cfの編集でやったstep10からstep16までをhostconfigについても同様におこないます。(/etcへの書き戻しとhostconfigのアクセス権の変更)



  7. これで自動起動の設定は終了です。Mac起動時にPostfixも自動的に起動するようになりました。

Postfixの設定作業終了

お疲れ様でした。Macっぽくない操作が多くてしんどい作業でした。

 Postfixは無事設定、起動、動作しましたが、このままでは普通のメールソフトからは受信をすることができません。これはいわゆるふつうのメールソフトは、メールをサーバーから受信するのにPOP、もしくはIMAPというプロトコルを使用するためです。Mac OS X(Panther)には、このどちらもインストールされていません。ですから、まだまだ実際にユーザーがメールを受信するのには不十分な環境ということになりますね。めんどくさいウンチクが必要ない人はUWIMAPのインストールに進んでください。



Tigerの場合

 Mac OS X 10.4Tigerの場合は少しかわってきますので注意がいります。かわるといっても、インストールされているPostfixに違いがほとんどありませんので、基本的な設定はほとんどMac OS X 10.3.x(Panther)と同じです。main.cfにちょっとだけ手を加えるのと、master.cfの行番号が違うぐらいです。大きく変わったのはMac OS Xのほうです。Postfix(などのサービス)を自動起動させる方法がぐるっとかわりました。そのための作業が必要になります。

main.cfの編集-Tigerの場合-

  1. main.cfの修正をします。main.cfの一番最後の行あたりにある"mailbox_size_limit = 0"とsmtpd_tls_key_file = "の行頭に#をつけてください。

    これを


    に。


  2. この作業を行った後、上の「Postfixの設定-main.cfの編集-ステップ8」に戻って、Pantherと同様の文章を貼付けてください。それからmaster.cfについてはPantherと同様です。行番号が違うので注意して探してみてください。



自動起動の設定-Tigerの場合-

  1. Finderの移動から「フォルダへ移動...」を選び/etcへ移動します。





  2. etcフォルダの中からhostconfigという名前のファイルを見つけます。



  3. 今までやってきたmain.cfやmaster.cf同様このままでは編集できませんので、これらと同じやり方で、デスクトップにドラッグアンドドロップ、コピー、miで編集していきます。もちろんバックアップとしてもうひとつわかりやすいところにコピーしておくことをおすすめします。



  4. hostconfファイルは、Panther同様、MAILSERVER=-YES-にします。たぶんMAILSERVER=-YES-の記述はないはずなので、一番最後の行にでも追加しておきます。

    MAILSERVER=-YES-


    記述がないので


    行を追加しておく。


  5. 編集が終わったら保存をし、main.cfの編集でやったstep10からstep16までをhostconfigについても同様におこないます。(/etcへの書き戻しとhostconfigのアクセス権の変更)



  6. ここからが重要です。Pantherではhotsconfigファイルを設定すればよいだけだったのですが、どうもTigerではそうはいかないようです。ちょっと面倒な作業が増えます。ここではこの設定を簡単にすませるため、以下のサイトからPOSTFIXを自動起動させるためのファイルをダウンロードしてきます。
    よくわからない場合は、私が仲間向けにREITTER IT Mediaさんところで配布していたファイルをインストーラーパッケージにおしこんだものがあります。これを使うとアクセス権等の細かい設定をしなくてもインストールだけですむと思います。

    REITTER IT&Media : Activating Postfix on OS X 10.4 (Tiger)
    Mac OS Xでサーバー稼業 : Postfix_StartupItems_for_Tiger for仲間内


    ここからダウンロードしてくるか...。



    右のメニューのDownloadsからパッケージを入手するか...。


  7. ダウンロードが完了するとデスクトップにpostfix-tiger.tarというファイルができますので、これを解凍します。Postfixというファイルができるはずです。




  8. このPostfixフォルダを/System/Library/StartupItemsフォルダに移動させます。



  9. 変更できないというダイアログが出ますが、気にせず認証を押して進みます。パスワードを求められたら、対応します。



    ちゃんとコピーされたらオッケー。


  10. このPostfixフォルダの中身を表示させます。Postfixフォルダの中には次の二つのファイルがあるはずです。



    この二つファイルについてそれぞれFinderのメニューから「情報をみる...」を実行します。



  11. 二つのファイルの所有権を変更します。グループをwheelに、オーナーをシステムに変更です。認証を求められたら対応します。

    から

    に。


  12. さらに、この二つのファイルが入っているPostfixフォルダも同様に所有権を変更します。グループをwheelに、オーナーをシステムに変更です。認証を求められたら対応します。



  13. これでTigerのみの設定は終わりです。あとはPantherと同じ手順で大丈夫です。



メール送信時の認証暗号化の必要性

 ここまでの設定では、安全性のため、自分のMacに登録されているアカウント(システム環境設定のアカウントパネルの中に表示される人など)以外からはメールを送信することができないようになっています。これはメールサーバーを悪用されないようにする対策の一つです。こうした仕組みをSMTP-AUTHとよぶそうです。

 AppleMailはもちろん、最近のメールソフトはさまざまな認証形式のSMTP-AUTHに対応していますから、適切な設定をすれば、SMTP-AUTHをつかって送信をすることができます。

 で、この仕組みはどういうものかというと、メール送信のとき同時に、サーバーに登録されているアカウントとパスワードをサーバーへ送信して、それを受け取ったサーバーはサーバーに登録されているのものと一致するかどうかをチェックし、一致したユーザーだけを受け入れるというものです。わかりにくい説明ですいません。

 たとえば、あなたが自宅から、会社に立ち上げたこの設定のMacサーバーで、メールを送信したいと考えたときのことです。メールが送信されるまでのおおまかながれは次のように行われています。

普通のSMTPサーバーの場合

  1. メール送信ボタンを押す
  2. メールソフトが会社のメールサーバーに接続する
  3. サーバーがメールソフトからメールを受け取る
  4. 送信完了

これだけです。これだとSMTPサーバーに接続してきたのが誰なのか確認をしていないので、どこの誰でも会社のメールサーバーを好きなだけ使うことができます。

SMTP-AUTHが有効になっているサーバーの場合

  1. メール送信ボタンを押す
  2. メールソフトが会社のメールサーバーに接続する
  3. 会社のメールサーバーが「あれ?キミ、うちのサーバーにアカウントもってるの?」と聞く。
  4. メールソフトが「ボク?ボクはhogehogeです。パスワードはxxxxです。」と応えます。
  5. メールサーバーが「えーと...あー、hogehogeね。はい、パスワードも確認できました。じゃあ、キミのメール、送信をお受けしますよ。」と応答。
  6. 送信完了

このやり取りを加えることで、認証によってサーバーに登録されているユーザーしかSMTPサーバーを使うことができなくなります。


認証によって発生する危険性

SMTP-AUTHが有効になっていれば、どこの誰ともわからない人が勝手にメールサーバーを利用することを防ぐことができます。

 ですが、じつはここに危険性が潜んでいます。問題になるのは、「ボク?ボクはhogehogeです。パスワードはxxxxです。」のところ。メールソフトがサーバへパスワードを送るステップで、このときアカウントとパスワードがふらふらとインターネット上を流れていくわけです。ちょっと知識のある人なら、あっさりと解析して、あなたのMacのユーザーパスワードを知ることができます。もし、管理者権限を持つユーザーのパスワードが知られてしまったら、サーバーの環境は好き勝手に変えられてしまうかもしれません。

 このアカウントやパスワードを用いた認証方法を暗号化してできればいいのですが、Mac OS X(Panther)では、ここのところがいまいちなようで、素っ裸(下着ぐらいは着たレベル?)なやりとりしかできないそうです。Server版に含まれるOpenDirectryServerというのがあると良いのだとか。(Postfixがやってくるヤア!ヤア!ヤア!by yoshimotoさん)


対策としては以下の方法などが考えられます。

  • 社内LANの外からメール送信はおこなわない。

    インターネット上をパスワードが流れないので安全。ただし社内で盗まれる可能性もある。

  • サーバーへの接続にsasldb経由で認証の暗号化を実現する。

    Macユーザーアカウントと異なるのでネット上でパスワードが盗まれてもメールの盗聴ぐらいで被害がすむ。ただし、インストールと設定、アカウントごとにパスワードデータベースを作成する手間がある。

  • サーバーへの接続にSSL経由で認証の暗号化を実現する。

    サーバーとアカウント、パスワードのやり取りを暗号化してくれるので安心。ただし、設定によってはいちいち警告が目に触る。フリーのドメインサービスを利用している場合、心配が残る。

  • メールの送信はプロバイダが提供しているSMTPサーバーを使う。

    トラブルも少なく安心。餅は餅屋で。でも、そうしちゃうと勉強にならない。



ここでは、この先のことも考えて、サーバーへの接続にSSL経由での認証をおこなう方法で進めていきたいと思います。

ここまでが終了したらUWIMAPのインストールに進んでください。




sasldb経由での認証は「Postfixがやってくるヤア!ヤア!ヤア!」が大変参考になります。勉強にもなりますので一読された方がいいと思います。

yoshimotoさん:Postfixがやってくるヤア!ヤア!ヤア!



Trackback

No Trackbacks

Track from Your Website

http://earlybirds.ddo.jp/namahage/inegalog/trackback/tb.php?id=15
(言及リンクのないトラックバックは無視されます)

Comments in Forum

38 Comments