ホスティング会社を変える時の、2台のサーバーを使って旧サーバーで運用しているMTAを新サーバーで運用するべく移行する、qmail+vpopmailを使ったメールサーバー移行手順メモ
事前準備 †
- 移行先にqmail+vpopmailで環境を構築、vpopmail/domainsフォルダや、vpasswdファイルを参考にメールアカウントも移植する。.qmail-* も忘れずに移植しておく。
- 移行先サーバー内でメールが受け取れることを確認しておく。ローカルサーバー宛に該当ドメインのアカウントにメール送ってみる。
- 移行前にDNSレコードのTTLを短めに設定しておく。
切り替え †
- smtproutesを記述して受付メールをすべて新サーバーに転送する
- 旧サーバーのメールデータを新サーバーにSyncする
- DNSレコードを切り替える
- 旧サーバー設定を変えて、メールを新サーバーに配送する設定にする。
- POP用のDNSレコードを新サーバーに向ける。
- MXレコードを新サーバーに向ける。
切り替え後 †
- 基本これで完了。TTLの生存期間を超えてるのに旧サーバーに通達してくるのもたまにいるけど、そういうのは大抵まっとうなMTAではない。
- 切り替え中に旧サーバーにメールが保存された可能性がある場合、vpopmail/domains/ 以下のMaildirなりをrsyncなりで同期しちゃえ。新サーバーに保存される際のUID/GIDには気をつけて。
インストールメモ †
groupadd -g 601 nofiles
useradd -u 601 -g nofiles -d /var/qmail/alias -m -s /sbin/nologin alias
useradd -u 602 -g nofiles -d /var/qmail -M -s /sbin/nologin qmaild
useradd -u 603 -g nofiles -d /var/qmail -M -s /sbin/nologin qmaill
useradd -u 604 -g nofiles -d /var/qmail -M -s /sbin/nologin qmailp
groupadd -g 602 qmail
useradd -u 605 -g qmail -d /var/qmail -M -s /sbin/nologin qmailq
useradd -u 606 -g qmail -d /var/qmail -M -s /sbin/nologin qmailr
useradd -u 607 -g qmail -d /var/qmail -M -s /sbin/nologin qmails
groupadd -g 650 vchkpw
useradd -u 650 -g vchkpw -d /home/vpopmail -m vpopmail
envdir †
relay-ctrl †
> make
# ./install
# mkdir /var/spool/relay-ctrl
# chown vpopmail:vchkpw !$
# mkdir /var/qmail/etc
# echo /var/spool/relay-ctrl > /var/qmail/etc/RELAY_CTRL_DIR
# echo 300 > /var/qmail/etc/RELAY_CTRL_EXPIRY
# mkdir /var/spool/relay-ctrl
# chown vpopmail:vchkpw !$
ucspi-tcp †
qmail †
- 以下のエラーが出る場合、conf-cc と conf-ld のコンパイラー設定でgccを使うように変更する
- 64bit OSの場合 conf-ccを gcc -O2 --include /usr/include/errno.h にするとよいらしい。
/usr/bin/ld: errno: TLS definition in /lib64/libc.so.6 section .tbss mismatches non-TLS reference in substdio.a(substdo.o)
/lib64/libc.so.6: could not read symbols: Bad value
collect2: ld はステータス 1 で終了しました
- /var/qmail/control あたりをいい感じにしとく
- /var/qmail/tcpserver
# mkdir /var/qmail/tcpserver
# cd !$
# vi tcp.smtp
xxx.xxx.xxx.xxx:allow,RELAYCLIENT="" # グローバルIPアドレスで許可
127.:allow,RELAYCLIENT=""
:allow
# tcprules tcp.smtp.cdb tcp.smtp.tmp < tcp.smtp
vpopmail †
# cd /home/vpopmail/etc
# touch tcp.smtp
# tcprules tcp.smtp.cdb tcp.smtp.tmp < tcp.smtp
# ./configure --enable-roaming-users=y --enable-relay-clear-minutes=10 --enable-tcpserver-file=/home/vpopmail/etc/tcp.smtp --enable-logging=y --enable-qmaildir=/var/qmail
# make
# make install