既存のメールサーバーを廃止する事にしました。
移行先として、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 | 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を削除
サーバー解約