SMTPで利用されやすい4つのポートの使い分け
Table of Contents
ふと思った。smtpのポートの使い分けってどうしているのだろう, と。
25はspamに使われやすいから587が使われるようになったというのは知っていた。 が, どうも465もあるらしい。
SMTP Port 25, 465, 587 or 2525 – How to Choose The Right SMTP Port?
このサイトには, smtp(s)用のポートの概要と歴史について書かれていた。
私なりにまとめると, 以下の通りである。
- smtp用にはPort 587を使った方が良い
- Port 25はポートリレーに使われるデフォルトポート
- Port 465はもはや使われるべきではない
- Port 2525は他の全てのポートがブロックされている時に使われる
また, それぞれのポートについて軽く説明を入れておく
Port 25
- 1982年の8月にIETF(Internet Engineering Task Force)に提出されたRFC821に記述
- Port25がemailのためのデフォルト交信ポートとされていた
- 元々は交信用とされていたが, 現在は送信用として広く使われている
Port 465
- 1997年にIANAがSMTPS(smtp over SSL)のためのポートとして登録
- smtpをSSLでwrapするもの
- 他のover SSLと同じ
- 1998年に, 後述するSTARTTLS over smtp(Port 587)の登場によって, Port465は取り消された
- 古いクライアントがsmtpsを使っている場合でもない限り, 過去の産物にすぎない
- smtpの標準として既に受け入れられていない
Port 587
- 1998年にIFTF提出されたRFC 2476に記述
- 大体のメールサーバはサポートされている
- Port 25の代わりに送信用として推奨されている
Port 587 is reserved for email message submission as specified in this document. Messages received on this port are defined to be submissions.
- Port 587とTLS暗号化によってメールが送信される
Port 2525
- IETFにもIANAにも是認されていない非公式のsmtpポート
- Port 587の代わりにsmtpのために使われることがある
- well-knownポート外なので, customer ISPおよびクラウドホスティングプロバイダによってサポートされる
- Port 587の代わりに使われるほどなので, TLS暗号化もサポートしている
teratailの質問について
調べると, 次のteratailのページを見つけた。
そこの回答欄を見ていると以下のように書かれていた。
25番ポート 暗号化なし通信。認証は使えない
目的: 主に受信用のポート。特定のネットワークアドレス(社内など)からから認証なしで送信する用途にも使われる。 暗号化(STARTTLS): なし、または、任意(クライアントが望めば) 認証: なし。認証を任意として、587番ポートの役割も兼ねることも。
587番ポート STARTTLSを使用するならばこれ。認証は使える
目的: 主に送信用のポート。認証に成功した場合のみ送信を許可。 暗号化(STARTTLS): (一般的に)必須。 認証: (一般的に)必須。
465番ポート SMTPS(over SSL)を使用するならばこれ。認証は使える。
目的: 主に送信用のポート。認証に成功した場合のみ送信を許可。 暗号化(SMTPS): 必須。 認証: (一般的に)必須。
以上が一般的な使われ方だと思いますが、「(一般的に)」と書いたところは MTA の設定によります。 例えば、587,465番ポートでも、特定のネットワークアドレスからは認証なしで送信許可とか、 普通はやりませんが、認証が必須なのに暗号化なしとかにもできます。
25番ポートは受信用のポート?
このうち, 気になったのがport25の以下の文面である。
目的: 主に受信用のポート。
smtpって送信用ではなかったの?
ということで, rfc5321に目を通すと以下のように書かれていた。
4.5.4.2. Receiving Strategy The SMTP server SHOULD attempt to keep a pending listen on the SMTP port (specified by IANA as port 25) at all times. This requires the support of multiple incoming TCP connections for SMTP.
要するに, 25番ポートはSMTPのための複数の入力TCP接続のサポートを必要とする訳だ。だから, 受信用のポートと書かれていたのかもしれない。なるほど。