Feb 17, 2007

Postfixの追加設定-SubmissionPortによるOP25B対応-

Panther


 Mac OS X(PantherやTiger)には、Postfixという強力なメールサーバーソフトウェアが標準で装備されています。これまでに、Postfixを起動し、自宅や職場のMacをメールサーバーにして、サークルのメンバーや職場のスタッフに独自のメールアドレスを配布したりする方法を考えてきました。

 ここでは、さらに設定を追加して、近年増加するSPAM対策として、多くのプロバイダが導入しつつある「Outbound Port 25 Blocking」に対応する方法を考えていきます。


2009.1.11 Leopard用の設定方法を追記




Outbound Port 25 Blocking(OP25B)って

 近年、あちこちのプロバイダが導入を始めた「迷惑、SPAMメール対策」です。詳細は、プロフェッショナルなサイトにお任せしてしまいますが、とりあえずの概要を説明すると、あなたが使っているプロバイダがOP25Bを導入すると、自宅や会社に構築したMacのメールサーバーから、外部へメール送信できなくなります。


 ユーティリティからコンソールを起動させて、一度mail.logをチェックしてみてください。もし、

Aug 2 09:46:46 wallstreet postfix/smtp[667]: connect to hogehoge.co.jp[xxx.xxx.xxx.xxx]: Operation timed out (port 25)[


のようなログが残っていたら、OP25Bによってメールが送信できなくなっている可能性があります。「あれ?メールしたのに返事こないなぁ。」、「この間メールでお知らせし...え?ついてない?そんなはずは...。」なんてこと起こっているかもしれません。もしかしたらoScommerceを導入している環境で、注文したお客さんに注文完了メールが届いていない、なんて背筋の凍る事件までもが、知らないところで起きているかもしれません。


 「Outbound Port 25 Blockingに対応するにはいくつかの方法があります。(ただ、いずれの方法にも課題が残ります)。ここでは、一つめのSubmissionPortを有効にする方法を考えていきます。

  • master.cfファイルの記述を変更し、メールの送信にポート587(Submission Port)を使うようにする設定
  • main.cfファイルにrelayhostの設定をし、プロバイダのSMTPサーバーを経由するようにする設定
  • SSLによるポート467での送信を行うようにする設定



 なお、この作業では以下のステップがすんでいることを前提に進めていきますので、取りかかる前に、最低限、次のステップをすませておかないといけません。




必要なもの

  • Mac(Mac OS Xを搭載しているもの。ここは10.4.x(Tiger)で進みます)
  • mi などのエディタ(耳かきエディット:http://www.mimikaki.net/)
  • ターミナル
  • やる気
  • オープンソースコミュニティへの応援
  • セキュリティーとプライバシーへの配慮
  • メールというシステムへの感謝と協力意識
  • インターネットを構築してくれた方々への畏敬の念



SubmissionPort587を有効にする-master.cfの設定-

 OP25Bへ対応するには、前述した方法の2つがありますが、ここではSubmissionPort587を有効にする設定をしていきます。

  1. まずFinderのメニュー、移動から「フォルダへ移動...」を実行します。



  2. 表示されるダイアログに以下のように入力をして、「移動」を押します。

    /etc/postfix/





  3. Postfixフォルダが開きます。

    ファイルがうじゃーっと入っていて心拍数が上がりますが、気楽に構えた方が抜け毛も減ります。


  4. この中から、master.cfファイルを探します。



  5. これをドラッグアンドドロップで、デスクトップにコピーします。

    アクセス権の関係で、ドラッグアンドドロップするだけでコピーされます。


  6. 何かあったときに備え、かならずもう一つどこかにバックアップしておきます。




  7. デスクトップにコピーしたmaster.cfをmiなどのエディタで開きます。




  8. さーっと下の方にスクロールして移動し、以下のような表記を探します。(Tigerの場合は84行目ぐらい、Pantherの場合は80行目ぐらい、Leopardの場合は10行目ぐらいです。)


    Mac OS X10.4 Tigerの場合



    Mac OS X10.5 Leopardの場合


    Leopardでは4行分の設定項目があります。


  9. それぞれの以下の記述がありますので、この2行の頭についている#を削除します。ただし-oの前にあるスペースは絶対に消さないようにします。

    Mac OS X10.4 Tiger(Panther)の場合

    #submission inet n - n - - smtpd
    #-o smtpd_etrn_restrictions=reject

    となっているのを以下のように。

    submission inet n - n - - smtpd
    -o smtpd_etrn_restrictions=reject



    Mac OS X10.5 Leopardの場合

    #submission inet n - n - - smtpd
    # -o smtpd_enforce_tls=yes
    # -o smtpd_sasl_auth_enable=yes
    # -o smtpd_client_restrictions=permit_sasl_authenticated,reject

    となっているのを以下のように。
    submission inet n - n - - smtpd
    -o smtpd_enforce_tls=yes
    -o smtpd_sasl_auth_enable=yes
    -o smtpd_client_restrictions=permit_sasl_authenticated,reject


    Leopardの場合、修正箇所は4行あります。


  10. 修正が終わったら、保存をし、閉じます。



  11. 編集したデスクトップのmaster.cfファイルを、ドラッグアンドドロップでもとの/etc/postfixフォルダに書き戻してあげます。



  12. 認証を求めるダイアログが出ますので、「認証」を押して先に進みます。





  13. 「置き換え」を尋ねるダイアログがでますので、「置き換え」を押します。



  14. 認証を要求されますので、ユーザーネームとパスワードを入力して「OK」を押します。



  15. 認証されると書き戻しが完了します。




master.cfのアクセス権修正

このままではmaster.cfのアクセス権が正しくないので、修正する作業をします。Mac OS X10.3(Panther)や10.4(Tiger)と、Mac OS X10.5(Leopard) ではやり方が違いますのでOSのバージョンにあわせて作業を進めてください。


Mac OS X 10.3と10.4の場合

  1. さきほど書き戻したmaster.cfを選択して、Finderから情報を見る、を実行します。



  2. 情報が表示されますので、このウィンドウの下、所有者とアクセス権を開きます。



  3. さらに詳細な情報を開き、アクセス権を変更します。まずグループをwheelに、オーナーをシステムに変更します。注意するのは、先にグループから変更することです。先にオーナーを変更してしまうと、グループが変更できなくなります。順番を間違えたら、もう一度オーナーを自分に戻せば、オッケーです。認証を求められたら対応します。


    これを


    これに。

  4. これでmaster.cfの編集作業は終了です。



Mac OS X10.5(Leopard)の場合

  1. アプリケーションフォルダのユーティリティからターミナルを起動します。



  2. 以下のコマンドを入力し、実行します。
    sudo chown root:wheel /etc/postfix/master.cf


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


  3. パスワードを聞かれますので、入力します。なお、入力するパスワードは、盗み見されないように表示されません。

    見えないけれどもちゃんと入力されています。


  4. 正しく実行されると、特に何も表示されません。これでmaster.cfには正しいアクセス権が設定されています。

    こんな具合にあっさり次の行が表示されれば問題なしです。


  5. これでmaster.cfの編集作業は終了です。



Postfixのリロード

  1. この設定をPostfixに読み込ませます。ユーティリティからターミナルを起動します。




  2. 以下のコマンドを入力すれば、Postfixがリロードされ、新しい設定を読み込んでくれます。

    sudo postfix reload




  3. パスワードを聞かれますので、入力します。なお、入力するパスワードは、盗み見されないように表示されません。



  4. Postfixの設定がリロードされたという表示が出れば、master.cfを修正した内容が読み込まれ有効になっています。



動作確認-サーバー側-

  1. 早速、実際にSubmissionPort587がサーバーで受け付けられる状態になっているかをターミナルから確認してみます。次のコマンドを入力、実行します。
    自分の設定に絶対の自信がある方はとばして次のステップに進んでかまいません。
    telnet localhost 587




  2. 心拍数が高くなる、以下のような表示が出ます。この表示が出れば、サーバー上でポート587は受け付けられていることになります。



  3. 続けて以下のコマンドを入力、実行してみます。

    EHLO localhost




  4. SubmissionPort587を利用してメール送信をする際の受け付けられる内容が表示されます。内容は普通にPostfixを使用する場合と変わりません。この表示まで正しく出ればオーケーです。



  5. 正しく表示されたら、以下のように入力をして作業終了です。

    quit


    quitと入力して、リターンで実行



    Connection closed...とでます。


  6. サーバー側での作業は以上で終了です。お疲れ様でした。


動作確認-ユーザーのメールソフト側の設定-

 AppleMailをはじめ、Eudora、Thunderbirdなど、ありとあらゆるメールソフトは、送信の際、ポート25番を使用しています。サーバーで設定したSubmissionPort587を利用してメールを送信するためには、メールソフト側での設定が必要になります。ここではAppleMailについてのみ説明を行います。このほかのメールソフトでは、申し訳ないのですが、SubmissionPort587とお使いのメールソフト名を組み合わせてgooleなどで検索をしてみてください。多くのプロバイダさんが、説明ページを用意してくださっていますので、私のこのページよりわかりやすいのではないかと思います。

  1. AppleMailを起動します。ここではTigerのAppleMail(ver.2.1)で説明をしていきます



  2. メニューの「Mail」から「環境設定」を実行します。



  3. 環境設定が開いたら、アカウントパネルをクリックして開きます。

    アカウントをクリック




  4. アカウント情報の下、「サーバー設定」をクリックします。






  5. サーバーの設定画面が出てきます。ここの「サーバーポート」が重要です。通常25番になっているはずです。



  6. この25番を587番に変更します。

    SSLの使用や認証、ユーザー名、パスワードはそれぞれの環境によって異なりますので自分の環境に合わせて、セッティングしてみてください。


  7. 変更が済んだら、OKを押し、環境設定パネルを閉じれば設定は終了です。環境設定パネルを閉じる際、保存を尋ねられますので、保存を忘れずに。



  8. では、早速SubmissionPortを利用可能にしたサーバーを利用してメールが送れるかテストをしてみます。どこか適当な外部のアドレス宛にメールを送ってみます。



  9. 無事送信できれば、作業は終了です。お疲れ様でした。




うまく送信できないとき

 こんなメッセージが出て、うまく送信できない場合は、もう一度master.cfの設定を見直してみます。telenetでうまく接続できないということですと、もしかしたら-oの前のスペースが消えていたり、消さなければいけない#の場所が間違ったりしているかもしれません。あとはPostfixのリロードのし忘れ、ルーターのファイアウォールを利用している場合は、587番を開けておかないといけないことが考えられます。


うまく受信できないとき

 動作確認で、無事に送信されたにもかかわらず、外部のアドレスに送ったメールがうまく届かないときは、送り先アドレスのメールサーバーがSubmissionPort587に対応していない可能性があります。とりあえずほかのメールアドレス宛にはおくれるか試してみるとよいと思います。


困ったときは

 ユーティリティからコンソールを開き、/var/log/mail.logを読むと、何かしらの記述が残っているかもしれません。



課題

 SubmissionPortを利用したOP25B対応をとった場合、課題があります。

  1. 自分のサーバーがSubmissionPortが有効でも、メールを送った先のサーバーが587に有効でないとダメ
  2. SubmissionPortは、使っているユーザーが、自分のパソコンにインストールされているメールソフトのメール送信ポートを587にしないと意味がないことになりますので、サークルのメンバーや会社のスタッフのメールソフトの送信設定を変更して歩いたり、変更お願いしたりするのは結構めんどくさい。



ほかの対応方法

 OP25Bへの対応は、SubmissionPortを利用するほか、main.cfにrelayhostを指定する方法もあります。これについては、次の機会にまとめたいと思います。



Trackback

No Trackbacks

Track from Your Website

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

Comments in Forum

2 Comments