iptables で簡単OP25B対策

独自ドメインのメールアドレスを使いたい諸氏にとって接続プロバイダの OP25B というやつはうっとおしい障壁です。
自分のサーバーがVPSか専用サーバーで、root権限があるのなら、最も簡単なOP25B対策方法を紹介します。

それは iptables のポートリダイレクトを使う方法です。

前提条件として iptables は普通に使える環境であるものとします。

■ ポートリダイレクト

iptables の nat の設定で PREROUTING REDIRECT を使います。

書き方はいたって簡単。

/etc/sysconfig/iptables


# *filter の COMMIT の後に以下を追加

*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A PREROUTING -p tcp -m tcp --dport 587 -j REDIRECT --to-ports 25
COMMIT

これだけです。
このサーバーの 587 ポートに接続に来たら内部では 25 に来たことになり、SMTPが普通に使えます。

めでたしめでたし。

※これができないVPSもたまにあるようです。
※さくらのVPSはできることを確認済みです。

自宅サーバーOP25B対策

自宅サーバーでメールサーバーを立てる場合のOP25B対策設定(Postfix編)です。

■ OP25B対策とは?

インターネット接続プロバイダによってはOP25Bというのが施されています。

OP25B(Outbound Port 25 Blocking)とは、インターネット接続プロバイダが、自社のメールサーバー以外のポート25を使おうとするユーザーを自社の回線レベルで遮断するものです。
これによって、迷惑メール送信業者が自分を追跡されないようにプロバイダ以外のサーバーを使うという行為を規制するわけです。

ところで、これは自宅サーバーでメールサーバーを立てる場合に大きな障害となります。
ルーターでポート25を開けても、それで外側(インターネット)から内側(自宅サーバー)には繋がりますが、内側(自宅サーバー)から外側(インターネット)へは出られません。
自宅サーバーのポート25からメールが出せないのですからメールサーバーとして機能しないことになり困ります。

そこで、自宅サーバーでメールサーバーを立てる場合にOP25B対策という少々特殊な設定を行う必要が出てきます。

OP25B対策はプロバイダによって若干の設定調整が必要かもしれません。
大手プロバイダの有名どころOCNなどがその代表なのですが、OCNだと

(1)OCN以外サーバーの25ポートを使ってメール送信できない
  Connection timeout になる

(2)OCNのメールサーバーを使うときFromの判定が厳しい
  ※接続元のサーバー名が存在しない場合など
  554 5.7.1:Sender address rejected のエラーになる

この(2)は、自宅サーバーのhostnameの設定がいい加減だと駄目だということにもなりますので注意が必要です。
Postfixが@マークの後ろにデフォルトのホスト名を付ける場合に、DNSで引けないホスト名を付けるとプロバイダーのSMTPサーバーからリレー拒否されます。

■ Postfix OP25B対策設定

さて、PostfixのOP25B対策設定の方法です。
続きを読む