サイトマップ | 連絡先 | IAjapan TOP
IAjapan 財団法人インターネット協会
有害情報対策ポータルサイト 迷惑メール対策編
  • 一般利用者の皆様へ
  • メール管理者の皆様へ
  • 関連情報
  • サイト紹介

Submissionポートの適切な設定について

株式会社イプリオ
代表取締役
石田卓也
2006年3月

1. 背景と概要
2. 設定
  2.1. 必要な環境
  2.2. 標準の587番ポートを使用する設定を変更
  2.3. 新たに、587番ポートを認証付きで使用する設定を追加
  2.4. 適用したsendmail.mcの例
  2.5. 設定の確認
3. 注意事項
  3.1. MSPが587番ポートを利用する場合

1. 背景と概要

いくつかのISPなどにおいて、そのネットワーク外部に位置するホストの25番ポートへの接続を規制する「Outbound Port25 Blocking(OP25B)」が始まっています。それに伴い、ISPなどのメールサーバに、「Message Submission (TCP 587番ポート)」を新たにメール送信(投稿)用のポートとして開放することが求められるようになりました。

広くメール送信用のサーバとして使われている「Sendmail」では、最近のバージョンにおいて、標準のインストールをすることで、587番ポートが利用できるようになっています。このことは、通常のバージョンアップにおいて行われるため、管理者が気づいていないこともあるようです。

投稿する際に使用するポートを25番から587番に変更する意味は、単にポート番号を変更するだけではなく、メールサーバ、ことにISPやホスティング事業者などに使われているものについて、ウィルスに冒されたり(ボットなどにより)外部から操られている状態のパソコンなどが送信する大量の迷惑メールを送信できなくするため、IPアドレスだけでなくユーザIDなどの情報で送信を遮断することができるようにすることにあります。

しかし、現在のSendmailの標準設定は、25番ポートと同じアクセス制限を施す内容になっており、標準で/etc/mail/accessに置かれるアクセス制御ファイルで開放されているIPアドレスに関しては、送信者のIDなどを特定することなしに投稿を行うことができてしまいます。本稿は、587 番ポートを使った送信に関しては、アクセス制御ファイルの内容にかかわらず、「SMTP AUTH」を用いて送信者の認証を行うように変更する設定を説明します。

2. 設定

2.1. 必要な環境

本稿は、Sendmailの現時点での最新の環境(8.13.6)を想定して記述されています。8.12系などでも同じ内容が使用できると思いますが、読み替えが必要になることもあります。また、基本的に、Sendmail付属のcfツールを使用して設定をするものとします。

2.2. 標準の587番ポートを使用する設定を変更

標準の設定では、25番ポートとほぼ同じ設定で587番ポートをバインドするようになっているため、これを停止する設定を、sendmail.mcに記述します。

FEATURE(`no_default_msa')

 
これで、sendmail.cfの下記の行が削除されます。

O DaemonPortOptions=Port=587, Name=MSA, M=E

2.3. 新たに、587番ポートを認証付きで使用する設定を追加

587番ポートを認証が必須の状態でバインドする設定を追加します。Mの値に、“aE”を設定します(“a”はESMTPでの認証を必須とする指定、“E”はETRNコマンドを禁止する指定です)。

DAEMON_OPTIONS(`Port=587, Name=MSA, M=aE')

 
これで、sendmail.cfに下記の行が追加されます。

O DaemonPortOptions=Port=587, Name=MSA, M=aE

2.4. 適用したsendmail.mcの例

OSTYPE(`solaris8')dnl
DOMAIN(`generic')dnl
FEATURE(`access_db')dnl

FEATURE(`no_default_msa')dnl
MAILER(`local')dnl
MAILER(`smtp')dnl
define(`confAUTH_MECHANISMS', `LOGIN PLAIN')dnl
define(`confPRIVACY_FLAGS', `goaway')dnl
DAEMON_OPTIONS(`Port=smtp, Name=MTA, Family=inet')dnl
DAEMON_OPTIONS(`Port=587, Name=MSA, M=aE')dnl
TRUST_AUTH_MECH(`LOGIN PLAIN')dnl

2.5. 設定の確認

sendmail.cfを作成し、sendmailを再起動し、ポートに接続して確認します(下記は接続例です)。

% telnet localhost 587
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mail.example.jp ESMTP Sendmail 8.13.6/8.13.6; Mon, 27 Mar 2006 01:50:45 +0900 (JST)
EHLO localhost.example.jp
250-mail.example.jp Hello localhost [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-AUTH LOGIN PLAIN
250-DELIVERBY
250 HELP
MAIL From:<nobody@example.jp>
530 5.7.0 Authentication required   ← 認証が必要と言われます

 
25番ポートにも同様に接続し、認証が必要ないことを確認します。

3. 注意事項

3.1. MSPが587番ポートを利用する場合

標準では、MSP(Mail Submission Program – ローカルホストからからメールを送るプログラム)は25番ポートに投稿しますが、例えば、submit.mc に下記のように書いてある場合、MSP(Mail Submission Program)は投稿用にローカルホストの587番ポートを使用します。

FEATURE(`msp', `[127.0.0.1]', MSA)

 
587番ポートでは、ローカルホストからの投稿であっても認証が必要ですので、配送に失敗します。標準の25番ポートを使用するか、あるいは配送用にパスワードを準備することが必要です。

FEATURE(`authinfo', `DATABASE_MAP_TYPE /etc/mail/msp-authinfo')

 
などのようにして、パスワードを記述したファイルを使用します。

 
リンク・転載・引用・ロゴ使用について | プライバシーポリシー | IAjapanについて | 連絡先