AWS内部のEC2サーバからメール送信する際のIPアドレス逆引き設定
はじめに
AWSのIP逆引き設定に苦労したのでメモ。苦労した原因は、知識&事前調査不足です。
Qiitaとかこのあたりだけの情報だけだと全然理解&解決ができなかった。
環境
Qiitaとかこのあたりだけの情報だけだと全然理解&解決ができなかった。
環境
- AWS
- LB-EC2(xN)-DBの構成
- EC2(AmazonLinux2)内部からPHPのメール関数またはmailコマンドでメール送信
- 内部からの通信はすべてNATを経由して外部に出ていく
- MTAはsendmail
- ウェブサイトのURLはhttps://e2info.co.jp と https://www.e2info.co.jp
- メールの差出人はno-reply@e2info.co.jp
- e2info.co.jpはRoute53でALBをCNAME登録
IPアドレス逆引きとは
DNSサーバに対して、IPアドレスを提示して、対応するドメイン名を取得する行動のことです。
PTRレコード(PoinTeR record)という特殊なレコードをDNSに登録することで、対応することができます。
参考
PTRレコード 【 PoinTeR record 】 より
PTRレコード(PoinTeR record)という特殊なレコードをDNSに登録することで、対応することができます。
参考
PTRレコード 【 PoinTeR record 】 より
IPアドレスは特殊な形式のドメイン名として記述され、1バイト毎に逆さまにしたIPアドレスの末尾に、IPv4の場合は「.in-addr.arpa.」を、IPv6では「.ip6.arpa.」を付けたものが用いられる。むずかしいですね
迷惑メール対策として逆引き設定を行う理由
メールヘッダは差出人により偽装ができるため、正当なサーバから送信されたメールであることの証明になりません。
そのため、メール送信者・メール受信者以外の箇所で確認をおこなうことで、メールの正当性を確認できるようにします。
SPFレコード、DKIM/DMARC対応などいろいろな対策が存在するうちの一つで、なるべく設定をおこなったほうがよいです。
そのため、メール送信者・メール受信者以外の箇所で確認をおこなうことで、メールの正当性を確認できるようにします。
SPFレコード、DKIM/DMARC対応などいろいろな対策が存在するうちの一つで、なるべく設定をおこなったほうがよいです。
設定方法
以下の手順で設定します。
1.Aレコードの登録
2.sendmailの設定
3.AWSへの申請
1.送信元ドメインの検討
e2info.co.jpに対するIPアドレスはすでにウェブ用に利用されているため、逆引き用のドメインを決めます。ここでは、
2.Aレコードの登録
上記の手順(1)で決めたドメインをDNSサーバに登録します(正引き)
今回はRoute53に以下のように登録しました。
メールヘッダに差出人サーバのIPアドレスは自動的に付与されますが、以下のようにサーバのホスト名が自動的にはいるので、今回設定したsendmail.e2info.co.jpの値が設定されるようにします。
以下のように変更しました。
あらためて、 AWS EC2 Eメール上限緩和 / 逆引き(rDNS)設定 申請手順を参考に申請をおこないます。
1.Aレコードの登録
2.sendmailの設定
3.AWSへの申請
1.送信元ドメインの検討
e2info.co.jpに対するIPアドレスはすでにウェブ用に利用されているため、逆引き用のドメインを決めます。ここでは、
sendmail.e2info.co.jpとしました。これは、メールの差出人ドメインと一致している必要はありません。
2.Aレコードの登録
上記の手順(1)で決めたドメインをDNSサーバに登録します(正引き)
今回はRoute53に以下のように登録しました。
名前:sendmail.e2info.co.jp タイプ:A - IPv4 Address TTL:300 値:NAT GatewayのIPアドレス3.sendmailの設定
メールヘッダに差出人サーバのIPアドレスは自動的に付与されますが、以下のようにサーバのホスト名が自動的にはいるので、今回設定したsendmail.e2info.co.jpの値が設定されるようにします。
Received: from e2info.co.jp (e2info.co.jp. [200.200.200.200])
以下のように変更しました。
sudo vi /etc/postfix/main.cf #mydestination = $myhostname, localhost.$mydomain, localhost # ↓変更 myhostname = sendmail.e2info.co.jp mydomain = e2info.co.jp myorigin = $mydomain mydestination = relay_domains = $mydestination systemctl reload postfixまた、以下のコマンドでメール送信をおこない、ログの確認(/var/log/maillog)と受信側でのメールヘッダ確認をしました。
echo test | mail -s "test from server" -r no-reply@e2info.co.jp atesaki@e2info.comメールヘッダのReceivedが以下のようになっていることと、差出人がno-reply@e2info.co.jpであることを確認します。
Received: from sendmail.e2info.co.jp (sendmail.e2info.co.jp. [200.200.200.00])4.AWSへの申請
あらためて、 AWS EC2 Eメール上限緩和 / 逆引き(rDNS)設定 申請手順を参考に申請をおこないます。
問題なければ数十分~数時間のうちに設定完了メールが送られてきます。
おわり
おわり