もはや先月末のことですが,1台,サーバを取り替えました.IPアドレスは変更なく,それに結びつけられるLinuxマシンの取り替えです.古いほうはUbuntuの11.04,新しいのはUbuntuの11.10です.
そのサーバは,メールサーバとしても機能しており,ここ数年の自分あてのメールを転送するようにしています.今回,
とすることで,リプレースを試みました.
サーバ設定
uayeb » メールサーバの設定(postfix, dovecot, sasl2=saslauthd)を見ながら,進めていきました.なおすべて,rootになって実行します.
パッケージのインストールは:
root# apt-get install postfix dovecot-common dovecot-pop3d dovecot-imapd sasl2-bin
postfixが起動して,外からメールがやって来ると困るので,止めておきます.今どきは,/etc/init.d/postfix stopではなさそうで…
root# service postfix stop
さて準備です.上記ページにならい,dovecot,postfix,saslauthdの順に行います.
dovecotの設定ファイルですが,/etc/dovecot/dovecot.confは変更しなくてもよさそうです.
というのも,うしろのほうに「!include conf.d/*.conf」という指示があり,/etc/dovecot/conf.d/*.confを取り込むようになっているためです.
以前の設定と同じにするために,/etc/dovecot/conf.d/10-mail.confに,次の指示を入れます.
mail_location = maildir:~/Maildir
次はpostfixの準備です.設定ファイルは/etc/postfix/main.cfでして,上記ブログと,古いサーバの設定を見比べ,次のとおり書き加えました.サーバのホスト名を実際のものから「my_mail_server」に,ドメイン名を「do.ma.in」に,それぞれ書き換えています.
myhostname = my_mail_server.do.ma.in
mydestination = my_mail_server.do.ma.in, localhost.localdomain, localhost
home_mailbox = Maildir/
mydomain = do.ma.in
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_application_name = smtpd
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
relayhost = relayserver.do.ma.in
allow_mail_to_commands = alias,forward,include
それから,/etc/postfix/master.cfも編集します.
#submission inet n - - - - smtpd
となっているところの行頭の「#」を取り除き,保存します.
最後はsaslauthdによる認証です./etc/default/saslauthdを開き,
# Should saslauthd run automatically on startup? (default: no)
START=no
を
# Should saslauthd run automatically on startup? (default: no)
START=yes
に変更します.
postfixとsaslauthdの連携のため,次のコマンドを実行します.
root# mkdir /etc/postfix/sasl
root# echo pwcheck_method: auxprop > /etc/postfix/sasl/smtpd.conf
メール読み書きのためのユーザは,ログイン用ユーザと別に作ります.
root# saslpasswd2 -c -u do.ma.in takehikom
ここで,ユーザ情報は/etc/sasldb2に作られるのですが,chrootのしくみによって,/var/spool/postfix/etcに置き,postfixが読めるようにする必要があります.ハードリンク(lnコマンド)は同一パーティションで有効ですが,このサーバ,/etcと/varを別のパーティションにしています.シンボリックリンク(ln -s)ではどうもうまくいかず,結局コピーしました.
root# cp /etc/sasldb2 /var/spool/postfix/etc
root# chmod 640 /var/spool/postfix/etc/sasldb2
root# chgrp postfix /var/spool/postfix/etc/sasldb2
あとはサーバプロセスの再起動です.
root# service dovecot restart
root# service saslauthd restart
root# service postfix start
メールの移行
MailStore Homeを使用して,いったん旧サーバのメールを保存し(Archive),新サーバが機能するようになってから,送り込みました(Export).
「MailStore Home」のページは移転いたしました,http://geeks.artsjp.com/?p=9044も読みました.
保存には数時間かかりました.なお,Gmailの保存には,丸1日を要しました.
不具合
不具合(エラー・警告)のときに出たログメッセージを,書き残しておきます.サーバのホスト名は「my_mail_server」,ユーザ名は「takehikom」です.
Mar 31 13:37:14 my_mail_server dovecot: config: Warning: Obsolete setting in /etc/dovecot/dovecot.conf:22: 'imaps' protocol is no longer necessary, remove it
Mar 31 13:37:14 my_mail_server dovecot: config: Warning: Obsolete setting in /etc/dovecot/dovecot.conf:22: 'pop3s' protocol is no longer necessary, remove it
- /etc/dovecot/conf.d/10-mail.confで「mail_location = maildir:~/Maildir」をするまでは,IMAPでメールを参照できませんでした./var/log/mail.errに,エラーメッセージが入っていました.
Mar 31 10:18:28 my_mail_server dovecot: imap(takehikom): Error: user takehikom: Initializat ion failed: mail_location not set and autodetection failed: Mail storage autodet ection failed with home=/home/takehikom
Mar 31 10:42:37 my_mail_server postfix/smtpd[4128]: warning: SASL authentication problem: unable to open Berkeley db /etc/sasldb2: Permission denied
(最終更新日時:Mon Apr 30 06:29:10 2012ごろ)