Postfix+DovecotサーバからGSuite(Gmail)へ移行する

仕事で、Postfix+Dovecotで構築されたメールサーバからGSuite(旧GoogleApps)のGmailにメールサーバの移行をしてるので、その際の内容を備忘として残しておく。 既存メールサーバ⇒GSuiteへの移行は、基本的には以下の流れで行うようだ。

  1. GSuiteにドメインの登録
  2. 既存のメールユーザ作成(ふつうにユーザ作成 or AD連携の実施)
  3. 旧メールサーバのメールがGSuiteに転送されるよう二重配信の設定をしておく (プライマリメールサーバは旧メールサーバで、GSuiteにメールが転送される)
  4. メール利用ユーザへの切り替え周知(GSuiteをサーバとして設定するように依頼)
  5. DNSでMXレコードの切り替え(メールサーバの向き先変更) ※DNSの変更反映に、大体1~2日くらい様子を見る
  6. 既存のメールサーバからIMAP経由でメールデータの移行
  7. 既存メールサーバの停止

とりあえず、1~4についてはそんなに引っかかる箇所ではないだろう。 流れに沿って設定してやればいいだけだ。ただ、2(メールユーザ作成)については既存のメールアドレスの棚卸し(エイリアス含む)が入るのでちょっと面倒そう。 GSuiteだとユーザ1名につきメールエイリアスは30個までしか設定できないようなので、移行時にその辺の調整も必要になりそうだ。

3については、こちらを元に対象ドメインのドメインエイリアスをGSuite上で作成してMXレコードの登録を実施(この時点で、対象ドメインは旧メールサーバを向いている。ドメインエイリアスはGoogleAppsを向ける状態)。 で、Postfix側で「/etc/postfix/main.cf」に「virtual_alias_maps=regexp:/etc/postfix/aliases.reg」の記述を追加し、以下の正規表現を記述してメールをPostfixサーバ(旧メールサーバ)・GSuiteそれぞれに配送するようにする。

/etc/postfix/aliases.reg
/^(.*)@ドメイン名$/ ${1}@ドメインエイリアス名,${1}

とりあえず、この段階で全メールが既存のメールサーバ・GSuite共に見れる状態になる。 各利用者に周知してメールサーバを移行して貰えばいいだろう。

問題は5の既存のメールサーバからのIMAP経由でのメール移行だ。 作業自体は簡単で、「管理コンソール」にある「データの移行」からメールを移行させることができる。

ただし、既存のメールサーバ側で以下の設定がなされていることが前提。

  • GSuiteからIMAP接続できること(Firewallとかで制限されてない)
  • SSLでアクセスできること(パケット裸で使ってると接続できない(今時ないと思うが))
  • ログインにユーザ認証でメールアドレスが使えること(ユーザ名のみの認証方式だとアクセスできない)

ログイン時にユーザ名およびメールアドレスを指定できるようにする場合は、既存メールサーバ側の「/etc/dovecot/conf.d/10-auth.conf」で以下の設定を記述することで、ユーザ名orメールアドレスで認証が行えるようになる。

/etc/dovecot/conf.d/10-auth.conf
auth_username_format = %n

ちゃんと設定ができたら、「データの移行」でメールを選択し、対象のメールアドレスのIMAP認証情報を指定してメールデータを移行してやればよい。 以下、画面の一例。

あとは、データの移行>メールの画面で移行元・移行先の情報を記述するだけだ。 個人のアカウントでしかメールを受信できないように設定している場合は、別途閲覧可能なアカウントを作成するか旧メールアドレスのアカウントのパスワードを変更してしまう、もしくは人数が少なければ各自に入力してもらうといいだろう。