メールサーバの OP25B対策

作成日:2006.6.7

 インターネットに蔓延する迷惑メール(スパムメールや、ウイルス感染したパソコンからのウイルスメール等)の対策として、大手 ISPはほぼ全てが OP25B(Outbound Port 25 Blocking)を実施するようになった。OP25Bの普及に向けて、2006年5月末までに MSA(メール投稿用の認証付587番ポート)を利用者に提供するというマイルストーンが設定されており、大手以外の ISPも多くが 2006年6月1日から OP25Bを開始したようである。

 OP25Bとは、ISPが自社網内のユーザが撒き散らす迷惑メールを封じ込めることを目的として、自社網の動的IPアドレスのホストが網外の SMTPサーバに向けて25番ポートからメールを直送する処理を規制する技術である。

 その結果、迷惑メールが他の ISPに送信されることは防止できるが、迷惑メール以外の普通のメールまでも送信されなくなってしまうという弊害がある。ここ数ヶ月、OP25Bを知らない自宅メールサーバ管理者が、ある日突然メール送信ができなくなったと掲示板等で大騒ぎするケースが急増している。

 OP25Bの影響を受けるのは、動的IPアドレスのユーザの内、以下のいずれかに該当するユーザである。
(1) 自宅メールサーバを運用しているユーザ
(2) OP25B実施中の ISP(仮に A社) に回線接続し、そことは別の ISP(B社)の SMTPサーバを使用してメール送信しているユーザ

 (2) は自宅サーバとは無関係な話なので、先に片付けてしまうことにすると、対策としてはメーラの SMTPの設定で、25番ポートではなく、(B社が提供する) Submission Port(587番)を使用することによってメール送信が可能になる。
 Submission Portも 25番ポート同様 SMTPではあるが、必ず SMTP認証を行うことが決められており、25番ポートのように迷惑メールの送信に使われることはない。

 (1) は自宅でメールサーバを立ち上げているユーザにとっては深刻な問題である。対象が動的IPアドレスなので、固定IPアドレスに回線契約を変更するのも一つの解決方法ではあるが、そうはいかない事情の人も多いだろう。
 有効な解決策は、ISPが提供する中継サーバ(ポート番号は 25番あるいは 587番。ISPが特に指定したものがなくても、通常のメール送信用 SMTPサーバが使えるはず)を経由してメール送信するようにメールサーバを設定することである。これ以外には解はないといっても過言ではない。

 以下では、いくつかの代表的な Windows用メールサーバソフトを取り上げ、OP25B対策として、スマートホスト(Smart Host)およびそれ相当の設定方法を説明する。NIFTYの中継サーバである smtp.nifty.com を例題として用いるので自分のプロバイダに読み替えて欲しい。
 中継サーバで SMTP認証が必要かどうかについては、ほとんどの ISPが、自社回線ユーザが自社 SMTPサーバにアクセスするときは、認証不要のようである(回線接続時に認証しているので、メール送信時にも認証するのは二度手間ということであろうか)。

  1. ArGoSoft Mail Server
     英語のソフトであり、Freeware版、Plus版、Pro版の 3つのバージョンがある。OP25Bが広まる以前には、Webページや書籍等で多くの解説記事が書かれ、ユーザは多かったと思われる。その後、Freeware版の登録ユーザ数が 5に制限され、OP25B対応しているのは実質 Pro版だけという状況なので、最早このソフトを使い続けるユーザは激減しているのではと思われる。
     OP25B対策として、以下のように Smart Server に ISPの中継サーバのホスト名(smtp.nifty.com)を設定し、Always Use Smart Server にチェックする。Submission Portの場合は smtp.nifty.com:587 のようにポート番号を付加すればよい(多分)。図は Pro版の場合であり、Freeware版ではこの Smart Serverタブがないので、Freeware版は自宅サーバとしては適さない。
     中継サーバで SMTP認証が必要な場合は、My Server Requires Authenticaionにチェックし、User Nameと Passwordを設定する。Plus版では Smart Server の設定はできるが、ユーザ名/パスワード設定欄がなく、中継サーバで SMTP認証が必須のときは Plus版は使えない。




  2. Radish
     日本語のメールサーバソフトとしては比較的ユーザが多いようである。OP25B対応は 3.0.0-b034 以降のバージョンで正常に動作する(それ以前のバージョンにはバグがある。長期間バグを放置したままだったのはちょっといただけないと思ったが)。
     Radishのメニューから、設定 -> ホスト を開き、以下のようにドメイン名、ホスト名、ポート番号を入力し、追加ボタンを押して中継サーバを設定する。
     ここで、ドメイン名の * は全てのドメイン宛のメールを対象とすることを意味し、IPアドレス欄には中継サーバのホスト名(smtp.nifty.com)を入力する(IPアドレスでも可)。ポート番号は 25番あるいは 587番である。
     中継サーバで SMTP認証が必要なときは(Submission Portでは必須)、SMTP認証にチェックし、ユーザ名とパスワードを設定する。




  3. Kirium Mail Server
     Javaで開発されたマルチプラットフォームな日本語メールサーバである。
     OP25B対策としては、以下のようにセキュリティ画面でスマートホストのホスト名に中継サーバ(smtp.nifty.com)をポート番号に 25を設定し、「有効」にチェックする。Submission Portを使うときはポート番号を 587番に変更し、「SMTP認証」にもチェックして、ユーザ名とパスワードを設定する。




  4. Xmail
     上級者向けとして文句なしのメールサーバ。英語のソフトであるが、XmailCFGを使用すれば日本語で設定が可能である。
     OP25B対策としては、以下のように XmailCFG で オプション -> SMTP フォワーダを開き、新しい定義の追加で、あて先ドメイン名 "*.*"(単に * は受け付られない)、SMTP フォワーダに ISPの中継サーバ名(smtp.nifty.com)を入力し、「この定義を追加」ボタンを押す。
     Submission Portなど 25番以外のポートをでは、"smtp.nifty.com:587" のようにSMTP サーバ名にポート番号も付加する。
     もし、SMTPサーバで SMTP認証が必要なら、オプション -> SMTP クライアント認証を開き、ユーザ名、パスワードなどの情報を設定する(図は省略)。SMTP フォワーダでSMTP サーバ名にポート番号を設定したときでも、ここでの接続先SMTPサーバにはポート番号は付けない。
     認証タイプは ISPによるが普通は「CRAM-MD5」であろう。それではだめなときは「login」「plain」を試し、アクセスできるものをみつけるとよい。どれでもアクセスできないということはないので、他の箇所の設定を間違えているはずである。
     OP25B対策では「SMTP ゲートウェイ」ではなく「SMTP フォワーダ」を使うこと。



    参考ページ:>http://www.xmailserver.jp/sample/xmailcfg/readme.html#etc


  5. PMail Server
     改版が頻繁に行われている日本語メールサーバソフトである。配信用ポートとして、25番以外にSubmission Portにも対応している(製品版のみ)。設定項目が多く、どちらかというと上級者向きである。ヘルプは詳しいが、初心者が使いこなすのは難しいかもしれない。

     OP25B対策として、「転送」の「転送先設定」で以下のように設定する。
     ・識別ドメイン名:*
     ・転送先ドメイン又はホスト:ISPの中継サーバ名(smtp.nifty.comなど)
     ・変換ホスト名:空欄
     ・転送先ポート:25(Submission Portなら 587)
     ・転送先認証:転送先で SMTP認証が必要な場合には設定する(「プロトコル」を「ESMTP」とし、さらに「転送用認証」タブで認証用アカウントも設定する)
     ・プロトコル:SMTP
     ・名前の解決:DNSを使わない
     ・「ローカルユーザ宛は転送処理の対象としない。」にチェックする
     ・「ローカルユーザのチェックを行う」にチェックする
     ・「宛先のドメインが識別ドメインに含まれる場合は中継扱いとする」はチェックしない



    参考ページ:http://akisoftware.jp/pmsrv/help/routing.html


  6. Submission Portの提供
     OP25Bを実施している ISP網内で自宅メールサーバを立ち上げているとき、メールサーバの利用が、自宅LAN内に限定できるなら特に問題はないが、知り合いにメールアカウントを発行しており、その知り合いが契約している ISPが OP25Bを実施しているとき、あるいは自分が出先から、やはり OP25Bを実施している ISPからアクセスせざるをえないときなどは、25番ポートを利用して自宅サーバからメール送信ができないという問題が起きる。

     その場合の解決策として、
      1.Webメールを動作させる。
      2.Submission Port(587番)を提供する。
    などが考えられる。

     1. は Webサーバを動作させ、その上で Webメールソフトを実行すればアクセスが可能である。ただし、管理者の負担が増え、ユーザはメーラを使用できないという問題が生じるなど、必ずしも便利というわけではない。

     一方、2. は ArGoSoft Mail Server Pro, Xmail, PMail Server製品版のように最初から Secondary SMTPとして Submission Portをサポートしたメールサーバソフトもある。しかし、Radish, Kiriumなどは複数の SMTP Portをサポートしておらず、サーバソフトを二重起動して一方を 587番に変更するようなこともできないようである。

     そこで、ルータの IPマスカレード(ポートマッピングなど呼び方は様々あり)設定で、WAN側のポート25番, 587番の両方をメールサーバが動作するプライベートIPアドレスの 25番ポートに転送させるようにする。これによって Submission Portの提供が可能となる。

     ルータとメールサーバの種類の組み合わせによって、以下の3つのケースがある。
    まず、最初はポート変換可能なルータを使うケースである。この場合は、メールサーバは SMTP-AUTHか POP before SMTPのどちらでもよい。
     ここで、IP1はサーバ機のプライベートIPアドレスである。
    【ポート変換可能なルータのケース】
                                                              IP1
                   25┏━━━┓IP1:25                   25 ┏━━━┓
    外部のサーバ ─→┨      ┠─────────────→┨      ┃
                     ┃ポート┃                            ┃      ┃
                  587┃ 変換 ┃IP1:25                   25 ┃メール┠─→ ISP中継サーバへ
                 ─→┨可能な┠─────────────→┨サーバ┃
    外部のメーラ  110┃ルータ┃IP1:110                 110 ┃      ┃
                 ─→┨      ┠─────────────→┨      ┃
                     ┗━━━┛                            ┗┳━┳┛
                                                       IP1:25↑  ↑IP1:110
                                                             │  │
                                                         LAN内部のメーラ
    
     ただし、Submission Portでは SMTP認証が必須となっているので、厳密にいうと SMTP認証ではなく POP Before SMTPしかサポートしていない Radishを使用してはいけないということになる(動作はするので自己責任で使用は可)。

     ルータの中には WAN側と LAN側で異なるポートに設定できないものもある。その場合には DeleGateや Stoneなどのプロキシソフトでポート変換すれば可能になる。

     ポートマッピングができないルータと SMTP-AUTHなメールサーバの組み合わせでは、上の構成でルータが実行していた 587->25番のポート変換をプロキシで実行する。例えばプロキシに stoneを使う場合は、以下のように実行する。
     stone -d -n IP1:25 IP1:587 0.0.0.0/0
    【ポート変換不可なルータ+SMTP-AUTHなサーバのケース】
                                                              IP1
                   25┏━━━┓IP1:25                   25 ┏━━━┓
    外部のサーバ ─→┨      ┠─────────────→┨      ┃
                     ┃ポート┃            IP1             ┃S-Aな ┃
                  587┃ 変換 ┃IP1:587 ┏━━━━┓     25 ┃メール┠─→ ISP中継サーバへ
                 ─→┨不可な┠───→┨プロキシ┠───→┨サーバ┃
    外部のメーラ  110┃ルータ┃IP1:110 ┗━━━━┛    110 ┃      ┃
                 ─→┨      ┠─────────────→┨      ┃
                     ┗━━━┛                            ┗┳━┳┛
                                                       IP1:25↑  ↑IP1:110
                                                             │  │
                                                         LAN内部のメーラ
    
     ポートマッピングができないルータと POP before SMTPなメールサーバの組み合わせでは、第三者中継にならないよう十分な考慮が必要である。以下の構成であれば問題はない(本来は、このような危うい環境ではなく、SMTP AUTHなメールサーバを使うべきである)。
    【ポート変換不可なルータ+POP before SMTPなサーバのケース】
                                           IP2              IP1,IP2
                   25┏━━━┓IP2:25  ┏━━━━┓IP2:587 ┏━━━┓
    外部のサーバ ─→┨      ┠───→┨プロキシ┠───→┨      ┃
                     ┃ポート┃        ┗━━━━┛        ┃PBSな ┃
                  587┃ 変換 ┃IP1:587                 587 ┃メール┠─→ ISP中継サーバへ
                 ─→┨不可な┠─────────────→┨サーバ┃
    外部のメーラ  110┃ルータ┃IP1:110                 110 ┃      ┃
                 ─→┨      ┠─────────────→┨      ┃
                     ┗━━━┛                            ┗┳━┳┛
                                                      IP1:587↑  ↑IP1:110
                                                             │  │
                                                         LAN内部のメーラ
    
    上記の構成を、Radish と stone を使った場合について、詳しく説明する。
     ・Radishの SMTPサーバのポート番号は必ず 587番にする(重要ポイント)。
      もし25番にすると、587番と110番の両方のプロキシが必要となり、第三者中継が起きてしまう。
      ファイアウォールソフトが動作しているときは 587番ポートを開放する。
     ・NICに IP1と IP2の2つのプライベートIPアドレスをバインドする(重要ポイント)。
     ・Radishの SMTPサーバのバインドアドレスは 127.0.0.1, IP1, IP2。
     ・Radishの POP3サーバのバインドアドレスは IP1のみ。IP2は絶対にバインドしない。
     ・Radishの中継許可は 127.0.0.1のみ。ローカルホストはPOPしなくても送信可能にするため。IP2に中継許可を与えるのは厳禁。
     ・stoneは IP2上で動作させ、25->587番のポート変換を実行する。
       stone -d -n IP2:587 IP2:25 0.0.0.0/0
      宛先を IP2:587とする(重要ポイント)。これによって、メールサーバは IP2からアクセスがあったとみなす(IP2:587ではなく localhost:587 とすると、localhostからのアクセスとみなしてしまう)。

     繰り返すが、Submission Portが必要になるのは、出先から自宅サーバ経由でメールを送信したい場合(メールを読むだけなら、110番ポートなので OP25Bに関係なく常に可能)、知人などにアカウントを発行するというプロバイダもどきをやっている場合であり、多くの自宅サーバ管理者にとっては必須というわけではないと思う。

     さらに、上記の説明で SMTPポートは、配送されてくるメールを受信するために必ず 25番でなければならないが、Submission Portは自分の関係者だけが知っていればいいので、必ずしも 587番でなければならないというわけではない。8025番、10025番や、他の使用していないポートであっても全く構わない。そのときは上記の 587番を読み替えること。

  7. DeleGateによる SMTP認証対応
     ArGoSoft Mail Server Plus版や古いバージョンの Radishを使っていて、中継サーバに対して SMTP認証を設定したい場合があるかもしれない。そのようなときは、DeleGate経由の構成にすれば可能になる。

     以下のように自宅メールサーバと中継サーバの間に DeleGateを置き、DeleGateに中継サーバでの認証に必要な情報を設定する。
             (192.168.0.2)  (192.168.0.2)         (smtp.nifty.com)
     MUA --> 自宅サーバ --> DeleGate -----------> ISP 中継サーバ
       25      8025          25または587
    
     この場合は自宅サーバからみたスマートホストは ISPの中継サーバではなく、DeleGateになる。ArGoSoft Mail Server や Radish の中継サーバの設定では、DeleGateが動作するマシンの プライベートIPアドレス(例えば192.168.0.2。同一ホストなら 127.0.0.1でもよい)とポート番号(例えば8025)を指定する。

     DeleGateの設定は例えば以下のようになる。MYAUTH行で 中継サーバ上のユーザ名とパスワード、ホスト名を設定する。
    -P8025
    SERVER=smtp://smtp.nifty.com/
    # SERVER=smtp://smtp.nifty.com:587/ #Submission Portに中継するとき
    MYAUTH="username:password:smtp:smtp.nifty.com"
    REACHABLE="smtp.nifty.com"
    RELIABLE="127.0.0.1 192.168.0.2"
    ADMIN=user@host.domain.jp
    
  8. IP25B
     OP25Bは ISPが自分のところは迷惑メール対策をしているということを外に向けて宣言するためのものであり、ユーザにとっては、自分が契約する ISPが OP25Bを実施したからといって、自分に届く迷惑メールが減るわけではない。本当に効果を上げるためには、世界中の ISPが OP25Bを実施することが必要という実にまどろっこしい対策のように思える。

     OP25Bに対して、IP25B(Inbound Port 25 Blocking)という処理技術がある。これは ISPが、他社の動的IPアドレスから自社のSMTPサーバ宛に直送されるメールを遮断する技術である。これがうまくいけば、ISPのメールアドレスを使っているユーザには福音であるが、技術的には他社の動的IPアドレスをどう正しく判断するかが鍵のようである。

     そもそも、大手の ISPはほとんど OP25Bを実施しているので、それらの ISPの動的IPアドレスからは迷惑メールは元々ないはずである。世界中の OP25B未実施の ISPを対象に、落穂拾いのようなことをしないといけないであろう。2006年6月現在、実施しているのは OCNくらいである。OCNには頑張っていただき、他の ISPに技術供与できる成果を期待している。

     参考までに、OCNでは OP25Bを「迷惑メール送信規制」、IP25Bを「迷惑メール着信規制」と呼んでいる。意味的には分かり易い表現と思う。

     IP25Bは、自宅メールサーバには送受信とも影響しない。

  9. まとめ
     OP25Bの大きな流れは決定的であり、既に動的IPによる自宅メールサーバはプロバイダの SMTPサーバを経由しないと成り立たない時代になっている。それが唯一の解決策である。やましいことがなければそれで何も問題はないはずである。

     プロバイダはユーザに対してメーラ(MUA)からのメール送信(投稿)を止めることはありえないので、メールサーバソフト(MTA)にメーラと同じ設定機能がありさえすればプロバイダの SMTPサーバを経由した自宅サーバは確実に成り立つ。
     すなわち、自宅メールサーバに、プロバイダの投稿用SMTPサーバとポートを設定し、必要であれば認証設定をすれば、プロバイダのSMTPサーバには送信要求をしている相手が MUAか MTAかは判断できないので絶対に送信ができるということである。

     以下の設置が可能なメールサーバソフトを使えばどんなことになろうとも何も心配はないというのが結論である。ただし、(2)や(3)が必須かどうかは現時点ではプロバイダ毎に事情が違う。
      (1)メール中継用の SMTPサーバを設定できる
      (2)上記のSMTPサーバのポート番号を設定できる
      (3)SMTPサーバの認証情報(ユーザ名/パスワード)を設定できる

  10. 参考リンク
    JEAG recommendation 〜Outbound Port25 Blocking について〜
    IAjapan 第3回 迷惑メール対策カンファレンス
    IAjapan 第4回 迷惑メール対策カンファレンス
    Inbound / Outbound Port 25 Blocking (IP25B / OP25B) 実施 ISP 一覧
    OP25B、年内に多くのISPが実施へ、ユーザは設定変更を
    OP25B実施状況
    迷惑メール対策技術導入を検討されている事業者の方へ


作成:いと,mailto:gfh05223@nifty.com