#contents
 ----
 * Sendmail でのサブミッション・ポート利用 [#a49421b1]
 
 ** ポート25 番が使えない!? [#yf15196f]
 
  昨今の SPAM(スパム)メール、いわゆる迷惑メール対策として、大手商用プロバイダでも色々な対策を取るようになってきました。ですが、なかなか抜本的な効果が上がらずにいます。これまではプロバイダが提供している SMTP サーバを用いるという方法が主でした。ですが、ダイヤルアップ接続後にローカルのメールサーバから大量の SPAM メールを発信するという悪質な手法も見られるようになってきました。
 
  そのような対策としてプロバイダ側が採用した方法が、『 SMTP ポート(TCP 25番) を制限する 』という手法です。制限のかけられているプロバイダでは、通常メールを送信するためのポート 25 番を禁止にし、専用ポート 587 番を利用するように告知がなされています。このポート 587 がサブミッション・ポート、と呼ばれています。
 
  ポート 25 番を禁止することで、プロバイダ側にとっては安易に SPAM メールをプロバイダ内のネットワークより送信されることを防ぐ事が出来ます。一方、ユーザにとってはメールソフトの設定を変えなくてはいけず面倒ではあるのですが。。。
 
  また、ホスティングに見られる専用サーバ・サービスやレンタルサーバにおいても、不正中継の防止やプログラムによる不正なメール送信を防止するため、サブミッション・ポート利用が今後は進んでいくと思います。
 
  現状、よくあるケースとして、プロバイダさんの側で SMTP ポートを制限されてしまい、外部のメールサーバ(会社なり別のホスティングしているサーバだったり)からのメール送信ができなくなってしまう問題が発生しています。
 
  そこで、サーバ側では、どのようにメール送信を許可させるか、サブミッション・ポート 587 を使って外部ネットワークのメールサーバからメールを送る方法を以下に整理しました。
 
 ** Sendmail でのサブミッション・ポート利用(TCP 587) [#nbcc5e3b]
 
  このページではサブミッション・ポートを使えるようにするための設定です。
  
  基本的に sendmail.mc の編集→ sendmail.cf の再構築だけで済みます。
 
 ** sendmail.mc の編集 [#o5b32a1b]
 
  まず、/etc/mail/sendmail.mc を開きます
 
  Fedora Core 4 の sendmail.mc には 120 行目付近に dnl でコメントされた次の行があります。
  dnl DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl
  このコメントされている dnl を削除します。
  DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl
 
  また、もう1点注意が必要です。
 
  112 行目付近にある以下の項目がコメントされていない(先頭に dnl が無い)事を確認しておく必要があります。そうしないと SMTP ポートとして 25 番が開かなくなり、外部サーバから送られてくるメールも受信できなくなってしまいます。
 
  行中の Addr= の部分は、自分のグローバル IP を記述しておきます。
  DAEMON_OPTIONS(`Port=smtp,Addr=210.239.46.254, Name=MTA')dnl
 あるいは Addr= の記述を消してしまっても構いません。
  DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl
 
  あとは、sendmail.mc から sendmail.cf の再構築→sendmail の再起動によりポート 587 の利用ができるようになります。
 
  # m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
  # /sbin/service sendmail restart
  sendmail を停止中:                                         [  OK  ]
  sm-client を停止中:                                        [  OK  ]
  sendmail を起動中:                                         [  OK  ]
  sm-client を起動中:                                        [  OK  ]
 
 *** 動作確認 [#n5f90b57]
 
  動作確認は telnet コマンドで簡単に行えます。
 
  # telnet localhost 587
  Trying 127.0.0.1...
  Connected to localhost (127.0.0.1).
  Escape character is '^]'.
  220 sion.pocketstudio.jp ESMTP Sendmail 8.13.4/8.13.4; Fri, 1 Jul 2005 18:13:24 +0900
  このようにポート 587 が正常に応答してくれれば問題ありません。【 QUIT 】 と入力して通信を終了させます。
 
  もし
  Connection refused
  と表示されたら sendmail.mc の記述が間違っているかもしれません。もう一度、記述を確認してみる必要があります。
 
 ** その他の設定 [#w03e35a7]
 
  もし iptables や ipchains、もしくはファイアウォール・ルータによって制限をかけている場合、TCP 587 ポートの公開が必要になりますのでご注意下さい。
 
  最終的には、iptables や ipchains の設定を使い、サーバ内から外に向かって(outbound)の SMTP パケットを遮断するように設定しておけば、設定は完了です。ファイアウォールやルータがあれば、outbound の TCP 25(SMTP)を遮断するだけで比較的簡単に設定できます。
 
  iptables の説明については別項で上げる予定です。。。ちょっとまってね。。
 

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS