今日は朝からAWSでメールサーバを立てることを試しています。
というのも、仕事で他の人からAWSでメールを立てて送信しようとしているんだけど、上手く送信できなかったと相談を受け、ちょっと調べてみたら、ただサーバを作るだけではダメそうだと思われたからです。
メールサーバを立てるには、インターネットの最初の頃、自分が社会人になった2001年ごろは、とてもシンプルで、
- グローバルIPを一つ持っている
- SENDMAILのようなSMTPプロトコルを話できるサーバを立てている
でした。
なので、自宅で引っ張った、ISDNや、ADSLに割り振られたグローバルIPと、Dynamic DNSサービスを使って、SMTPサーバを作ってみたりしたものです。
それから、インターネットが会社でもどんどん使われるようになり、スパムメールやウイルスメールが増えるとともに、メールについて対策が行われるようになってきました。
いっときは、Outband587という、自分のプロバイダの外にメールを送るときには、宛先ポートを25ではなく587にするといった取り組みもありました。
そして、今は、
- グローバルIPアドレスを持っている
SENDMAIL、qmail、PostfixのようなSMTPプロトコルを話できるサーバを立てている- DNSのSPF TXTレコードに登録されている
- (DNSの逆引きに登録されている)
ということが条件としてあるようです。
この条件は、自分でオンプレでメールサーバを立てるときに設定する内容になるのですが、
AWSの場合には、このオンプレのときに考える条件と、AWSならでは設定および申請を行う必要があるとのこと。
AWSでは、メール送信サーバとしてしようする場合、
- メールサーバを立てる
- Elastic IPを割り当てる
- Elastic IPがAレコードとして登録されている
- rDNS申請を行う
という流れになりそうです。
とりあえず、メールサーバ、Elastic IPの割り当てまではしました。
メールサーバを立ち上げて、自分のgoogleアドレスにメールをしようとしましたが、エラーとなりました。
まだ設定が足りていないものと見られます。
コマンドでのメール送信テスト
[ec2-user@ip-172-31-101-122 ~]$ telnet localhost 25 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 ip-172-31-101-122.us-east-2.compute.internal ESMTP Postfix HELO test.com 250 ip-172-31-101-122.us-east-2.compute.internal MAIL FROM: hoge@test.com 250 2.1.0 Ok RCPT TO: xxxxxx@gmail.com 250 2.1.5 Ok DATA 354 End data with <CR><LF>.<CR><LF> Subject: test mail Hello, This is test mail. This is test mail. . 250 2.0.0 Ok: queued as 45C495C153 QUIT 221 2.0.0 Bye Connection closed by foreign host. [ec2-user@ip-172-31-101-122 ~]$
メールのログを見ると、connection timed outや、Network is unreachableとエラーが出ています。
まだ、DNSにAレコードやSPFレコードを設定してませんし、rDNS申請をしていないためと思われます。
ああ [ec2-user@ip-172-31-101-122 ~]$ sudo tail -f /var/log/maillog Dec 12 00:47:55 ip-172-31-101-122 postfix/postfix-script[2967]: starting the Postfix mail system Dec 12 00:47:56 ip-172-31-101-122 postfix/master[2969]: daemon started -- version 2.10.1, configuration /etc/postfix Dec 12 00:50:56 ip-172-31-101-122 postfix/smtpd[3253]: connect from localhost[127.0.0.1] Dec 12 00:51:20 ip-172-31-101-122 postfix/smtpd[3253]: 45C495C153: client=localhost[127.0.0.1] Dec 12 00:51:46 ip-172-31-101-122 postfix/cleanup[3257]: 45C495C153: message-id=<20211212005120.45C495C153@ip-172-31-101-122.us-east-2.compute.internal> Dec 12 00:51:46 ip-172-31-101-122 postfix/qmgr[2971]: 45C495C153: from=<xxxx@test.com>, size=439, nrcpt=1 (queue active) Dec 12 00:51:53 ip-172-31-101-122 postfix/smtpd[3253]: disconnect from localhost[127.0.0.1] Dec 12 00:52:16 ip-172-31-101-122 postfix/smtp[3258]: connect to gmail-smtp-in.l.google.com[142.251.4.26]:25: Connection timed out Dec 12 00:52:16 ip-172-31-101-122 postfix/smtp[3258]: connect to gmail-smtp-in.l.google.com[2607:f8b0:4023:1404::1b]:25: Network is unreachable Dec 12 00:52:16 ip-172-31-101-122 postfix/smtp[3258]: connect to alt1.gmail-smtp-in.l.google.com[2607:f8b0:400c:c08::1a]:25: Network is unreachable Dec 12 00:52:46 ip-172-31-101-122 postfix/smtp[3258]: connect to alt1.gmail-smtp-in.l.google.com[108.177.12.27]:25: Connection timed out Dec 12 00:52:46 ip-172-31-101-122 postfix/smtp[3258]: connect to alt2.gmail-smtp-in.l.google.com[2800:3f0:4003:c00::1b]:25: Network is unreachable Dec 12 00:52:46 ip-172-31-101-122 postfix/smtp[3258]: 45C495C153: to=<shigeyuki.metoki@gmail.com>, relay=none, delay=95, delays=35/0.01/60/0, dsn=4.4.1, status=deferred (connect to alt2.gmail-smtp-in.l.google.com[2800:3f0:4003:c00::1b]:25: Network is unreachable) ^C
Aレコードをお名前.comに登録しようとしたらメンテナンス中でしたので、一旦休憩。
追記)
お名前.comにメンテナンス情報が出ていました。
https://www.onamae.com/news/info/21210/
rDNS申請まで今日は行きたいな。