このページではLinuxで構築した自宅サーバーで、メールサーバーのサブミッションポートを開放してOutbound Port25 Blockingに対応する方法について解説します。
お便利サーバー.com+相互リンクサイト内をキーワードで検索
メールサーバーの構築

メールサーバーについて

電子メールシステムについて

メールアカウントの作成

POP/IMAPサーバーの設定

Sendmailの設定

Postfixの設定

ユーザー認証によるメール送信

SMTP AUTHの設定

POP/IMAP before SMTP

dracによるPBS構築
(WBEL3,CentOS3(i386))

Pop-before-smtpの設定
(WBEL3,4_CentOS3,4+UW IMAP)

Pop-before-smtpの設定
(WBEL4_CentOS4,5+Dovecot)

SquirrelMailの設定

サブミッションポートの設定

メールの転送設定のコツ

メールサーバーのコントロール

メールサーバーの動作チェック

ポートフォワーディングの設定


ISPが”Outbound Port25 Blocking”を採用する理由

「 メールサーバー の設定はバッチリ(のはず)、 POP/IMAP before SMTP の設定もきちんとやった(つもり)。でも、特定のいくつかの外出先からはメールの受信はできても送信ができない(どうして?)。」

という一見不可解な現象に悩まされている方が、最近は増えてきているかもしれません。

こういうときは、 サーバー や自宅の ルーター の設定だけではなく、 ISP の多くが最近導入を進めているスパムメール排除対策のひとつである、 Outbound Port25 Blocking による影響を疑ってみる必要があります。

Outbound Port25 Blockingを一言で説明すると、「ISP自身のメールサーバー 以外 には ポート番号 25 を使わせない。」

というISPの運用方針です。

一般に SMTP は Well-Knownポート として25番を使用しますから、例えば友人宅からインターネット接続した場合、その友人宅のISPがOutbound Port25 Blockingを実施していたとすると、ポート25を利用する自宅のメールサーバーには接続できないことになるわけです。

自宅サーバーを運用している人にとっては迷惑なこのOutbound Port25 Blockingですが、これがどうしてスパムメール対策になるのでしょうか。

このセクションでは、 構築中のLinuxサーバー がメールの不正中継に利用されないように、 Sendmail については Sendmailのアクセス制御の設定 で、 Postfix については Postfixのアクセス制御の設定 でその方法を解説しています。

また、外出先からメールの送信を可能にする方法としては、 POP/IMAP before SMTP を使って特定の WAN 側の ノード に一時的なリレー許可を与える方法を解説しています。

もちろんこれら以外にも有効なスパムメール対策はいろいろありますが、 世の中のメールサーバーがすべてきちんとしたスパムメール対策を行っているとすれば 、メールサーバーはスパムメールの送信媒体にはなりえないはずです。

しかし現実にはそうではありません。

例えば設定ミスなどで外部のサブネットに対してリレー許可を与えてしまったりすると、遅かれ早かれスパマーにその「間抜けな存在」を発見され、スパム発信基地として利用されてしまうことになります。

そして左のコラムのように、SendmailにしろPostfixにしろそれはほんのちょっとした設定ミス、あるいは「良く解らないけど、大体こんな感じでいいかな」というようなずさんな設定によって、そういった危険なメールサーバーが世の中にはたくさん生まれてしまう状況にあるわけです。

一方、スパマーは必ずどこかのISPが提供するインターネット接続環境からそういった「仕事」を行うことになりますが、スパマーはもちろんそのISPが提供するメールサーバーを利用することはしません。

なぜならISPのメールサーバーはどんなことがあってもブラックリストに挙げられてはならないという商売上の宿命を背負っていますので、厳重なチェック体制と送信量制限の下に運用されているはずですから、スパマーにとっては「扱いにくい」メールサーバーだからです。

実際に、WAN空間で直接運用されているSendmail上で、本来 プレフィックス長 が "/29" の サブネット に基づいてリレー設定すべきなのに、間違えて "/24" として設定されていたため、盛大にスパムの中継をやらされていたメールサーバーを見たことがあります。
間違いを指摘して修正させたのですが、このメールサーバーは修正後もしばらくスパムメールの拒否作業ばかりさせられ、ついでに不正中継のブラックリストにも挙げられ、ほどなく「廃業」となってしまいましたね。
怖いですね。

そこでスパマーはISPの接続環境だけを利用し、インターネット上に転がっている「間抜けな」メールサーバーを踏み台にして大量のスパムメールを送信するわけです。

ところが、もしもそのISPが「ポート番号25はISP自身のメールサーバー以外には通さない。」という設定を施してしまえば、スパマーにとっては踏み台として利用できるメールサーバーがなくなってしまうということになります。

つまりOutbound Port25 Blockingを適用することで、それを実施するISPにとっては他のISP配下のメールサーバーを保護するばかりでなく、スパマーに非協力的な環境を提供することで、結果的に良質なユーザーだけと契約を結ぶことができるようになる、というメリットが生まれるわけです。

これを世界中のすべてのISPが実施するようになれば世の中のスパムメールはかなりの数が減少するといわれています。

このOutbound Port25 Blockingを採用するISPはここ一、二年で急速に増えてきていますから、自宅サーバーでメールサーバーを運用している方にとっては、逆に窮屈な世の中になってきているといえるでしょう。

このページでは、MTAに対して代替ポートである サブミッションポート の設置について解説していますが、これはあくまで

「外出先から自宅のサーバーにメールを送ることを可能にする手段。」

の提供が目的です。

従ってこの方法では、 「OP25B環境下の自宅のメールサーバーから外部の任意のメールサーバーにメール送信を可能にする手段。」

を提供することはできませんのでご了承ください。

関連セクションへ 関連セクション・ Sendmailの設定

関連セクションへ 関連セクション・ Postfixの設定

このページの先頭へ↑

”サブミッションポート”で副作用に対処する

インターネット利用者の大半は一つの ISP とだけ契約していて、そのISPの メールサーバー 以外は使いませんから、 Outbound Port25 Blocking はそれほど迷惑な話ということにはなりません。むしろスパムメールが減ることを考えれば歓迎すべきものといえるでしょう。

最近流行している「フリーメール」も、その多くは Webブラウザ 上で扱う Webメール ですから、自宅−メールサーバー間に ポート番号 25 を使わないため、Outbound Port25 Blockingの影響は受けないことになります。

ところが、自宅で契約しているISPがOutbound Port25 Blockingを行っている場合、自宅から学校や勤め先などのメールサーバーは当然利用できなくなります。

ただこういうケースでも、強いて学校や勤務先のメールサーバーの利用に固執せず、学校や仕事関係のメールの送信もISPのメールサーバーを利用すればよいので、ちょっと面倒ですが MUA の アカウント 設定の中の送信メールサーバー( SMTP )の FQDN をISPの指定のものに書き換えてやればOKです。

またその逆のケース、例えば学校や勤め先のインターネット接続環境にOutbound Port25 Blockingが付加されている場合、自宅のメールサーバーを利用してメールを送信することはできませんが、これも同じように学校や勤め先で利用しているメールサーバーを使ってプライベートメールを送信することはできます。もちろんこの場合も設定を書き換える手間は必要になります。

つまり自宅の接続環境だけ、または良く使う外出先の接続環境だけにOutbound Port25 Blockingが施されている場合では、施されている側のSMTPはどちらの環境からでも利用することが可能です。

従って、プライベートのメールを学校や勤め先のSMTPで送信することに後ろめたさを感じたり、学校や仕事のメールの送信に自分のISPのSMTPを使うことを「これって自腹だよね」と思いさえしなければ、MUAの設定を一度だけ変更してやれば後は今までどおりのメール送信が行える、ということになります。

ただ、自宅の契約しているISPと、学校や勤め先で利用しているISPの両方がOutbound Port25 Blockingを採用している場合は大変です。

もう説明するまでもないかもしれませんが、この場合はメール送信を行う場所が変わるたびにMUAの送信メールサーバーの設定を変更しなければならなくなりますから、これはかなり面倒な作業です。

そこで、こういった問題に対処する一つの方法として、ISPのメールサーバーの多くが サブミッションポート と呼ばれる クライアント からのメール受信のサブポート を設置するようになってきています。ポート番号としては 587番 が割り当てられています。

つまり、

「Outbound Port25 Blockingを採用しているISPのネットワークから外部の MTA を利用してメールを送信したい場合は、ポート番号587番を使った送信設定を行うことで対処する。」

という一般的なルールが出来上がってきているわけです。

サブミッションポートを利用する場合のMUAの設定例(Outlook Express)
サブミッションポートを利用する場合のMUAの設定例(Outlook Express)

さて、本来であれば、クライアントからMTAへのメールの送信と、MTAとMTAのメールのリレーについてはいずれも SMTP を Well-Knownポート である 25番 でやりとりするというルールがあります。

ISPのMTAの中にも結構いい加減なものがあって、MXレコード MXレコードについて はおろか逆引きのFQDNが設定されていなかったりするものもあります。
こういうMTAからのリレーを許すには、ある程度のスパムメールは覚悟して「緩い」設定をしなければなりません。
本当に困ったことです。

実はここに問題があるわけで、メール送信を受けたMTAは、そのメールが他の正当なメールサーバーからリレーされてきたものなのか、メールサーバーを偽装したMUAから送られてきたものなのかをポート番号で判定することができないため、リレーすべきとそうではないものを100%区別することは非常に困難です。

その結果システム管理者は、

もっと平たく言えば、「肝心のメールが受信できないゾ!なんとかしてよ!」という苦情と、「スパムメールが多いゾ!なんとかしてくれ!」という苦情のバランスに悩んでいるわけですね。

「判定を厳しくすると正当なメールの一部が不正と判断され、判定を緩くするとスパムメールの横行に手を貸してしまう、」

というジレンマに頭を悩ましているわけです。

そこで、「二種類の異なる役目に対して同じ プロトコル とポート番号を使う。」という決まりごと自体に欠陥が存在していたわけで、サブミッションポートを利用することで、

・ISPの内部のメールサーバーへはSMTPで25番。

・ISPの外部のメールサーバーへはSMTPで587番。

と、ロケーションごとに使うべきポート番号を分け、MTA自身の「スパムと非スパム」のふるいわけを容易に行おうというわけです。

現在、国内のISPは、管轄のネットワークにOutbound Port25 Blockingを施すと同時にメールサーバーにもサブミッションポートを設ける、という方向に急速に進んでいます。

そして、この方針はもちろん自宅サーバー上で運用するメールサーバーにも影響することは明らかです。

自宅内に設置したメールサーバーを使ったメールの送信を、 LAN 内に限定すれば、Outbound Port25 Blockingは運用になんの影響も与えません。

ところが外出先から自宅のメールサーバーを利用してメールの送信を行おうとすると、外出先で利用しているISPがOutbound Port25 Blockingによるブロックをかけていればメールの送信を行うことができません。

これに対処する方法はいうまでもなく、自宅のメールサーバーでもサブミッションポートを利用できるようにMTAの設定を行い、 ルーター にポート番号587に対する ポートフォワーディング を設定する必要があるわけです。

Outbound Port25 Blockingは既に多くのISPが採用していますが、その制御のかけ方はISPによりまちまちです。

制御の厳しいISPになると、固定IPアドレス契約をしなければ絶対に25番は外に出さない、というところもありますので、こういう場合は固定IPアドレス契約をしなければ自宅でのメールサーバーの運用は非常に厳しいものになってしまいます。

安価に自宅サーバーを運用したい方にとっては、本当に窮屈な世の中になってしまいました。

関連セクションへ 関連セクション・ Sendmailの設定

関連セクションへ 関連セクション・ Postfixの設定

このページの先頭へ↑

サブミッションポートを開く前に一言

「わざわざ別のポートを設けたって、587番なんて公に ポート番号 を決めてしまったら、結局スパマーに利用されてしまうんじゃないの?。」

という素朴な疑問が沸きませんか?

確かに、肝心の587番ポートに対して不正中継を許すようなメールサーバーが各所で運用されてしまえば結局今と同じ状況になってしまうのは明らかです。

とりあえずはメールのリレー用のポート番号と クライアント からの受信用のポート番号が異なれば、スパマーにとってはスパムメール送信の踏み台となる メールサーバー を探すことが難しくなりますから、そういう意味では全く無駄な対策という訳ではありません。

しかし先ほどの理由から、それが根本的な問題解決の仕組みではあり得ないこともまた明らかです。

というわけですから、みんなが知恵を絞ってあみ出したスパムメール対策も、それがきちんと機能するかそうでないかは、結局はメールサーバーを設定して運用する技術者の心掛け一つということになります。

それができなければ、この Outbound Port25 Blocking と サブミッションポート の組み合わせによるスパムメール対策も、「一時的にしか効果のない、インターネット利用者に面倒をかけるだけの愚策。」となってしまうでしょう。

よく、「初心者はメールサーバーを運用すべきではない」といわれますが、それは「きちんと設定できなくても、困るのは自分自身。」という他の サーバー アプリケーション と異なり、 MTA は 「不完全な設定を行うと不特定多数のインターネット利用者に迷惑をかける。」 という性質を持っているためです。

このセクションで幾度となく触れているように、メールサーバーの運用で最も大切なことは スパムメールの不正中継に使われないように細心の注意を払って構築を行う。 ことです。

以上のような理由から、自宅のメールサーバーでサブミッションポートを有効にする前に、もう一度現在の設定を見直して不正中継対策に落ち度がないかどうかを必ず確認するようにしましょう メールサーバーの不正中継のチェック 。

関連セクションへ 関連セクション・ Sendmailの設定

関連セクションへ 関連セクション・ Postfixの設定

このページの先頭へ↑

Sendmailのサブミッションポートの設定

Sendmail で サブミッションポート を利用するには、主設定ファイルである "/etc/mail/sendmail.mc" を編集して、 "/etc/mail/sendmail.cf" を作り直してSendmailの再起動を行います。

"/etc/mail/sendmail.mc" の編集については /etc/mail/sendmail.mcの編集について を、 "/etc/mail/sendmail.cf" の作成方法については /etc/mail/sendmail.cfの作成について をそれぞれ参考にしてください。

サブミッションポートを有効にする設定(Sendmail)

WBEL3 及び CentOS3 では 97行目 、WBEL4及びCentOS4では 112行目 、CentOS5では 123行目 あたりに記述があります。

デフォルト の "/etc/mail/sendmail.mc" では、

dnl DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl

と、 「サブミッションポートを利用する。」 という設定が先頭の "dnl" で無効化されていますから、これを削除して、

DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl

と、有効化します。

編集が終わったら "/etc/mail/sendmail.mc" を保存して、 "/etc/mail/sendmail.cf" の作成を行い、Sendmailの再起動を行うと設定が有効になります。 Sendmailの再起動について 。

関連セクションへ 関連セクション・ Sendmailの設定

関連セクションへ 関連セクション・ Postfixの設定

このページの先頭へ↑

Postfixのサブミッションポートの設定

Postfix で サブミッションポート の利用を設定するには、主設定ファイルである"/etc/postfix/main.cf"ではなく、通信制御用設定ファイルである "/etc/postfix/master.cf" を編集します。

まず、 サブネット 内の適当な クライアント機 から SSHクライアント で 構築中のLinuxサーバー に ログイン します SSHクライアントでサーバーに接続する(WBEL3) SSHクライアントでサーバーに接続する(CentOS3) SSHクライアントでサーバーに接続する(WBEL4) SSHクライアントでサーバーに接続する(CentOS4) SSHクライアントでサーバーに接続する(CentOS5) 。

それから su コマンドで アカウント を "root" に変更し、 cp コマンドでバックアップを作成した後、 nano エディタで "/etc/postfix/master.cf" を開きます nanoエディタでファイルを開く 。

[tanaka@web1 ~]$ su -Enter
Password: "root"のパスワードを入力します。 Enter
[root@web1 ~]# cp /etc/postfix/master.cf /etc/postfix/master.cf.orgEnter
[root@web1 ~]# nano /etc/postfix/master.cfEnter

↓

nanoで/etc/postfix/master.cfを開く
nanoで"/etc/postfix/master.cf"を開く

サブミッションポートに関する設定は、 WBEL3 及び CentOS3 では 77行目 、WBEL4、CentOS4、CentOS5では 10行目 あたりに記述があります。

デフォルト の "/etc/postfix/master.cf" では、

#submission   inet  n    -    n    -    -    smtpd

と、 「サブミッションポートを利用する。」 という設定が先頭の "#" で無効化されていますから、これを削除して、

submission   inet  n    -    n    -    -    smtpd

と、有効化します。

編集が終わったら、ファイルを保存してnanoエディタを終了してください nanoエディタを終了する 。

Postfixの再起動または設定の再読み込みを行うと設定が有効になります。

Postfixの再起動、設定ファイルの再読み込みについては、 Postfixのコントロールについて で説明します。

関連セクションへ 関連セクション・ Sendmailの設定

関連セクションへ 関連セクション・ Postfixの設定

このページの先頭へ↑

ポートフォワーディングの設定その他

サブミッションポート は外部の サブネット からのメール送信を行うためのものですから、必ず ルーター に ポートフォワーディング を設定する必要があります。

従って Sendmail 及び Postfix のいずれの場合もサブミッションポートの利用を有効にしたら メールサーバーのポートフォワーディングの設定 を参考にルーターの設定を行ってください。

MUA の設定はこのパートの中ほどでも説明したとおり、送信メールサーバー( SMTP )の ポート番号 を デフォルト の25番から 587番 に変更するだけでOKです。

サブミッションポートを利用する場合のMUAの設定例(Outlook Express)
サブミッションポートを利用する場合のMUAの設定例(Outlook Express)
もちろん、世の中のスパムメールを取り巻く状況がこのままであれば、という条件付きですが。

サブミッションポートは OutBound Port25 Blocking が実施されていない通信環境からも利用できますし、もちろん LAN 内からでも利用可能ですから、これは一度設定すれば二度と変更する必要はないはずです。

さてこのページでは、MTAに対して代替ポートである サブミッションポート の設置について解説しましたが、これはあくまで

「外出先から自宅のサーバーにメールを送ることを可能にする手段。」

の提供が目的です。

従ってこの方法では、 「OP25B環境下の自宅のメールサーバーから外部の任意のメールサーバーにメール送信を可能にする手段。」

を提供することはできませんのでご了承ください。

関連セクションへ 関連セクション・ Sendmailの設定

関連セクションへ 関連セクション・ Postfixの設定

このサイトは既に更新を終了していますが、今のところ店じまいの予定はありません。 リンクフリー ですので、趣味や勉強のためでしたら、引用、転用、コピー、朗読、その他OKです。このサイトへのリンクについては こちら をご覧ください。
Powered by Apache
”Linux”は、Linus Torvalds 氏の各国における登録商標です。”Red Hat”及びRed Hatのロゴおよび Red Hat をベースとしたすべての商標とロゴは、各国におけるRed Hat, Inc. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。
www.centos.org - The Community ENTerprise Operating System