自由気ままに書いちゃおう

好きなことをつらつらと・・・

AWSのEC2上にSMTPサーバを構築する際の申請について

最近はEC2でSMTPサーバを構築する機会は減ってきているかと思います。
(SES使ったり、SaaSのSMTPサービスを使ったりする機会が増えている印象です。)

ただ、まだまだEC2上にSMTPサーバを構築する機会もありますので、注意点について記載致します。

 

【25番ポートの制限について】

AWSでは、デフォルトでEC2からの外向けの25番ポートへのアクセスが制限事項となっております。
制限事項なだけでアクセスが全くできないわけではありません。

前置きしておくと、この25番制限は
・SMTPサーバから外部サーバへ接続する際に使用する25番ポート
・EC2インスタンスから外部のSMTPサーバへ接続する際に使用する25番ポート
の両方にデフォルトで適用されております。

また、この「外向き」が何に該当するかですが、
DirectConnectやVPN通信(=オンプレミスへの通信)/インターネット通信をとわず、
すべての外向きの通信で適用されている制限です。

一度でも25番の制限解除申請をしている場合、
すべての外向き25番ポート通信(=DirectConnect/VPN/インターネットでの25番ポート通信)で制限が解除される(されている)状態となります。

【EC2上にSMTPサーバを構築する際の手順について】

①メール送信制限解除申請の実施
②EIPをAレコードとして登録、可能であればSPFレコード登録
③逆引き設定(rDNS)申請の実施

■①メール送信制限解除申請の実施


下記サイトの通り、デフォルトですべてのEC2でポート25のトラフィックを制限しております。
制限されている場合、十分な量の Eメール送信が実施できなくなる可能性があります。
※制限内容の詳細や、制限に伴う具体的な影響については開示されておりません。

制限している理由は、主にスパムメールがEC2から送信されることを防ぐためです。

aws.amazon.com

 

■②EIPをAレコードとして登録、可能であればSPFレコード登録


EC2でSMTPサーバを構築する際、SMTPサーバにEIPをアタッチする必要があります。
そのため、EIPを取得後、忘れないうちに以下を実施しておくことをお勧めします。
(ELB配下にEC2を建てた場合には、EC2へのEIPアタッチは不要です。今回はEC2単体構成を想定しております。)

1.SMTPサーバとして使用するドメインを予め決めておく
例えば、「example.comドメインを使用してメールを送信する(=エンベロープFromのアドレスが~@example.comになる。)」、等です。

example.comドメインを使う場合、Aレコード登録は以下の通りです。
   mail.example.com       IN     A         EIPアドレス

   ※mail.example.comのmail部分は任意の文字列で構いません。smtpサーバであることが表示からわかるようにしたいため、ここではmailという文字列を使いました。

上記の通りAレコードが登録されていれば、
nslookup mail.example.com
の実行結果にEIPが出力されるはずです。

2.SPFレコードの登録も極力実施しておく
下記は記載例です。
   example.com.          TXT      "v=spf1 ip4:EIP ~all"

SPFレコードを登録することで、メール送信サーバのなりすまし防止となります。


レコード登録はRoute53を使用したり、ISP管理下のものを使用したり、DNSの利用状況に応じてさまざまになるかと思います。
そのため、レコード登録方法についてはここでは言及しません。


■③逆引き設定(rDNS)申請の実施


こちらの申請は、「EIPのPTRレコードを独自ドメインで登録するため」に行います。
私はこの説明ではピンときませんでした、、、

なので下記ではもう少しかみ砕いて説明いたします。

通常、EIPで逆引き(IPアドレスからホスト名を検索する)を行うと
XXX.111.111.13.in-addr.arpa name = ec2-13-111-111-XXX.ap-northeast-1.compute.amazonaws.com
のように
in-addr.arpa(逆引き)結果が自動で「ec2-EIP.リージョン名.compute.amazonaws.com」形式となります。

これを、
in-addr.arpa(逆引き)結果が「mail.example.com」にする必要があります。

つまり、
・申請前のEIPの逆引き結果は「ec2-EIP.リージョン名.compute.amazonaws.com」
・申請後のEIPの逆引き結果は「mail.example.com」
としたいわけです。

EIPの逆引きを修正するには「逆引き設定申請」をするしか方法がありません。
申請後、AWS側で設定変更してくれます。1時間から長くて1日程度で設定変更をしてくれるようです。

上記はあくまでDNS逆引き申請の処理時間です。本申請によりAWSが提携しているDNSブラックリスト管理業者(Spamhausやproofpoint、等)への登録も一緒に行われるため、世の中のブラックリスト管理業者への情報伝搬まで一週間程度を要します
尚、ブラックリスト管理業者の詳細についてはセキュリティ上の観点から非公開となっております。




【補足1:逆引き設定申請を実施しない場合の影響について】


SMTPサーバから送信されたメールを相手側SMTPサーバがメールを受信する際、
相手側SMTPサーバは送信サーバのグローバルIPアドレスを逆引きしたドメイン名(未申請の場合、amazonaws.comです)と、
メール送信時に使用しているエンベロープFromのドメイン名が不一致になります。

この場合、相手側SMTPサーバにてメール受信を拒否する可能性があります。
※あくまで、相手側SMTPサーバの設定次第です。拒否される可能性があることを認識しておくことが大切です。


【補足2:AWSからの返答メールについて】


各種申請をした際に、以下のようなメールをAWSからもらうことがあります。

Hello,

Thank you for submitting your request for an rDNS update.

In order for us to process this request as quickly as possible,
please provide the following information:

* A clear/detailed use-case for sending mail from EC2.
* What type of configuration or setup have you implemented to prevent spam from originating from your EC2 resource?

Please note that a PTR record must exist before we can create the reverse DNS record on our side.

We appreciate your cooperation, as soon as we receive this information we can move forward with your request.

If you have any questions, please reach out to us.

Regards,
Amazon Web Services


ざっくり上記の対応を言うと、
「どんなことにメールを利用しているの?」「スパム対策何している?」って感じです。

メールの利用用途は環境により異なりますが、スパム対策については、
"SMTP認証やSPF認証、DKIM認証を実装しています"って答えればよいかと。

答えた後に上手く申請が受理されると、以下のようなメールが届きます。

Hello,

We have configured the reverse DNS record(s) you requested!
Your request was mapped for the following:

mail.example.com as rDNS for XXX.XXX.XXX.XXX    ※XXXはEIP

Please note that propagation of this update to DNSBL services that Amazon works with may take up to a week.


これで、逆引き設定申請の処理はすべて完了です。

■申請手順について


以降は実際の申請手順についてです。
上記①、③の申請を実施しますが、
下記PDFファイルの「3.Amazon EC2 Eメール上限緩和+逆引き(rDNS)設定申請手順」を参照してもらった方がわかりやすいです。
https://d0.awsstatic.com/webinars/jp/pdf/services/ForCustomer_rDNS_EC2Email_Request_20170828update.pdf


以上です。