メールサーバ移行メモ

年明け前に重い腰を上げてメールサーバを移行したのでメモ。
移行対象のソフトウェアは sendmail, milter 関係(SpamAssassin, ClamAV, greylist, milter-regex), Cyrus-IMAPd です。

sendmail

基本的には /etc/mail 以下を持ってくれば終わりだと思いますが、古いマシンから mc ファイルを持ってきて新しいマシンで cf ファイルにしました。
access, aliases, virtusertable も同様に編集するファイルを持ってきて db ファイルを作りました。

SpamAssassin

ports tree からインストール後、以下のディレクトリ・ファイルを持ってきます。

/root/.spamassassin
/var/spool/spamassassin
/usr/local/etc/mail/spamassassin/local.cf

ユーザのホームディレクトリにある .spamassassin を使っているならそれも持ってきます。

ClamAV

ports tree からインストール後、以下のファイルを持ってきます。

/usr/local/etc/clamd.conf

greylist

ports tree からインストール後、以下のファイルを持ってきます。

/usr/local/etc/mail/greylist.conf
/var/milter-greylist/greylist.db

greylist.db をそのまま持ってきて反映したのかはいまいち不明です……。

milter-regex

ports tree からインストール後、以下のファイルを持ってきます。

/usr/local/etc/milter-regex.conf

Cyrus-IMAPd

バージョンが同じならそのままコピーで行けるような記述を見た気がしたんですが、OS のバージョン違いで使用するファイル形式が違うのかそのままでは読めませんでした。

ports tree からインストール後、以下のディレクトリ・ファイルを持ってきます。

/usr/local/etc/cyrus.conf
/usr/local/etc/imapd.conf
/var/imap
/var/spool/imap

今回はホスト名が変わってしまうので、ユーザ認証データベースを新規に作ります。

# saslpasswd2 -c -u (hostname) (username)

登録を確認して、ファイルの所有者を変更します。

# sasldblistusers2
# chown cyrus:mail /usr/local/etc/sasldb2.db

一度新規にファイルを作るので、移行してきたファイルを一時避難させます。

# mv /var/imap /var/imap.orig
# mv /var/spool/imap /var/spool/imap.orig
# mkdir /var/imap && chown cyrus:cyrus /var/imap
# mkdir /var/spool/imap && chown cyrus:cyrus /var/spool/imap

mkimap で新規にファイルを作ります。

# su - cyrus
% mkimap

メールデータを丸々移動し再構成します。

% mv /var/spool/imap.orig /var/spool/imap
% reconstruct

上記の再構成でメールボックス一覧等が復元されるようですが、出来る限りそのまま復元したいので以下も上書きします。
何かで db ファイルが不正とか開けないと出て cvt_cyrusdb でのコンバートも出来ない物については上書きしない方が良さそうです。

% cp -r /var/imap.orig/*.db /var/imap/
% cp -r /var/imap.orig/proc /var/imap/
% cp -r /var/imap.orig/server.pem /var/imap/
% cp -r /var/imap.orig/sieve /var/imap/
% cp -r /var/imap.orig/user /var/imap/

sieve script を使用している場合、上記で script 自体は復元されますが deactivate されてしまいますので、登録時と同じように activate し直します。

# su - (username)
% sieveshell localhost
> ls
> activate (scriptname)

全部出来たらテスト用のドメインで配送のテストを行い、問題なければ本番の MX レコードも変更して終了。
なかなか長い道のりでした……。

FreeBSD

Posted by yokky