あるEC2インスタンス+EIP運用のサーバ(以下サーバA)から
メールをとばしてたらG-Suiteからはじかれるようになって悲しかったときの話
前提というか状況
- サーバAはpostfixを使っている
- サーバAからあるG-Suite使用ドメイン(以下@company.com)宛に送信するとはじかれる
- その他のメールアドレス宛の送信は可能
- EIPのブラックリスト登録はされていない → mxtoolboxのブラックリストチェック
- EIPのメール送信上限緩和申請&逆引き申請は済んでいる → AWS EC2 Eメール上限緩和 / 逆引き(rDNS)設定 申請手順
- SPFレコードはPassしている → mxtoolboxのSPFチェック
- DKIMもDMARCもOK
maillogのエラー
/var/log/maillog
May 8 15:07:28 mail01 postfix/smtp[21362]: 930CE4019A: to=<hoge@company.com>, relay=alt1.aspmx.l.google.com[*.*.*.*]:25, delay=433074,
delays=433072/0.04/1.6/0.89, dsn=4.7.0, status=deferred (host alt1.aspmx.l.google.com[173.194.199.27]
said: 421-4.7.0 [*.*.*.* 15] Our system has detected an unusual rate of 421-4.7.0 unsolicited mail originating from your IP address.
To protect our 421-4.7.0 users from spam, mail sent from your IP address has been temporarily 421-4.7.0 rate limited.
Please visit 421-4.7.0 https://support.google.com/mail/?p=UnsolicitedRateLimitError to 421 4.7.0 review our Bulk Email Senders Guidelines.
4-v6si5777803oil.431 - gsmtp (in reply to end of DATA command))
そんなあ
対策の検討
もうGoogle側でリストされていて手出しができない・・・
対策として考えられるのは以下の2つ
- サーバAのEIPを変更してトライ
- 他のサーバをリレーさせる
1.はDNSのレコード切り替えしたくなかったし
次のEIPもだめだったら地獄なのでとりあえず却下
2.の方向で行くことに。
対策の実装
どのサーバにリレーさせるかですが、company.comのAレコードを持っている
サーバ(以下サーバB)にリレーさせることに決定。
全てのメールをリレーさせてもいいけど、
すでに配信できてる分は不用意にいじりたくないので
company.com宛のメールのみサーバBをリレーさせてあげることに。
1.サーバBのEIPで逆引き申請
AWS EC2 Eメール上限緩和 / 逆引き(rDNS)設定 申請手順
2.サーバBでSPFとかDKIMとかそのへん全部パスできるようにレコード見直し
がんばる
3.サーバAのPostfixでcompany.comだけサーバB(192.168.0.1)をリレーするようにする
/etc/postfix/main.cf
transport_maps = hash:/etc/postfix/transport
/etc/postfix/transport
comapny.com smtp:[192.168.0.1]
# postmap /etc/postfix/transport
# systemctl restart postfix or # service postfix restart
4.サーバBのPostfixでローカルIPでリレーさせるのでメールヘッダのホストがIPアドレスでもOKにするのと
メールヘッダからサーバAのローカルIP消したい
/etc/postfix/main.cf
enderesolve_numeric_domain = yes
header_checks = regexp:/etc/postfix/header_checks
/etc/postfix/header_checks
/^Received:.*192\.168\..*/ IGNORE
/^Received:.*127\.0\.0\.1.*/ IGNORE
# systemctl restart postfix or # service postfix restart
これでOK!