既存のメールサーバーを廃止する事にしました。
移行先として、G Suite(Gmail)のエイリアスにする場合は、アドレス部のアカウントが全て必要になります。
他のドメインのメールアドレスに転送してたり、ワイルドカードで複数アドレス使ってたりするので、要件を満たせない。
なので、既存サーバーで受信して転送、送信サーバーは作らない事にしました。

実際はAnsible使ってますが、手動での場合で書きます。CentOS 7です。
ドメインやIP等は環境に合わせて読み替えてください。

Postfixの設定変更

/etc/postfix/main.cf

#inet_interfaces = localhost
inet_interfaces = all

#inet_protocols = all
inet_protocols = ipv4

#mydestination = $myhostname, localhost.$mydomain, localhost
mydestination = $myhostname, localhost.$mydomain, localhost, nightonly.com, next.nightonly.com

smtpd_banner = Welcome to SMTP service.

allow_min_user = yes
message_size_limit = 10485760
# Check relay
smtpd_helo_required = yes
disable_vrfy_command = yes
strict_rfc821_envelopes = yes
allow_percent_hack = yes
swap_bangpath = yes
allow_untrusted_routing = no
smtpd_client_restrictions = permit_mynetworks, reject_unknown_client, permit
smtpd_helo_restrictions = permit_mynetworks, reject_invalid_hostname, reject_unknown_client, permit
smtpd_sender_restrictions = reject_unknown_sender_domain
smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination
smtpd_data_restrictions = reject_unauth_pipelining
smtpd_etrn_restrictions = permit_mynetworks, reject_invalid_hostname
# Virtual
virtual_alias_maps = pcre:/etc/postfix/virtual

next.ドメインは、テストしてから切り替える為、追加しています。
後半はセキュアにする設定と、virtual_alias_mapsで転送先を設定します。

/etc/postfix/virtual

/^xxx@(|next\.)nightonly\.com$/	xxx@g.nightonly.com
/^xxx[0-9]*@(|next\.)nightonly\.com$/	xxx@g.nightonly.com

正規表現で、このメールアドレスに来たら、このメールアドレスに転送すると設定します。

# postmap /etc/postfix/virtual
# postfix check
# systemctl restart postfix

TCP WrapperとFirewalldを通す

/etc/hosts.allow

postfix: ALL

/etc/firewalld/zones/public.xml

  <service name="smtp"/>
# firewall-cmd --reload

DNS設定

タイプ 名称 TTL 値 優先度
A next-mail 300 162.43.5.175
MX next 300 next-mail.nightonly.com 10
TXT next 300 v=spf1 +ip4:162.43.5.175 ~all

動作確認

DNS

% nslookup -type=mx next.nightonly.com
next.nightonly.com	mail exchanger = 10 next-mail.nightonly.com.

% nslookup -type=txt next.nightonly.com
next.nightonly.com	text = "v=spf1 +ip4:162.43.5.175 ~all"

疎通

% telnet next-mail.nightonly.com 25
220 Welcome to SMTP service.

ISPで制限(OP25B)されている場合は通らないので、他のサーバーから試す or スキップ

サーバー内からのメール送信(元の動きを確認)

% echo "test" | mail -s "test for `hostname`" root

受信できればOK

外部のメールサーバーから送信

受信メールアドレス(xxx@next.nightonly.com等)に送信。
受信できればOK(xxx@g.nightonly.com等)

リリース:DNS変更

タイプ 名称 TTL 値 優先度
A mail 300 162.43.5.175 ← IP変更
MX @ 300 mail.nightonly.com 10 ← 変更なし
TXT @ 300 v=spf1 +ip4:162.43.5.175 +ip4:x.x.x.x ~all
↑ IP追加、後日元のを削除

動作確認はテスト(next.)と同じ要領で。

後片付け

テスト(next.)で設定したのDNSとSPF(TXTレコード)の元のIPを削除
サーバー解約

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です