########################################################## # # 2010年度 Mail サーバ 再構築手順書 (Ver.1.6) # # 2010/09/15 (山田 圭祐): 2009 年度版から作成 # 2011/03/04 (山田 圭祐): 更新 # ########################################################## □ 構築ドキュメントとインストールするもの ・OS - Debian GNU/Linux 5.0 (lenny) ・サーバソフト - qmail + imap + apop + tcpserver + ezmlm + ezmlm-idx + mess822 (iftocc) + qmailanalog + mail2news + kyoma スクリプト ・その他 - gate - mew - mnews - etc... http://www.ep.sci.hokudai.ac.jp/~epmail/ □ メモ ・入れ換え日までに OS、qmail、gate その他ツール群の インストールを済ませておく. ・入れ換え担当者の作業 PC にグローバル IP アドレスをとっておく. ・入れ換え日はサーバの入れ替え、細かな設定の調整を行う. ・全作業が完了したらメールで報告して mail サーバ再開. ・細かな作業が多いのでサーバ入れ替えの流れを良く 理解し混乱しないようにすること。 □ 作業内容 ※ 番号の前に * がついているものは現行の grey での作業 [ 入れ換え日前日まで ] 1. OS のインストール http://www.ep.sci.hokudai.ac.jp/~epmail/y2010/dvlop/basic/index.html 留意点 - Debian/lenny のインストール - kernel ver.2.6 (最新のもの)を選択 2. qmail のインストール http://www.ep.sci.hokudai.ac.jp/~epmail/y2010/dvlop/qmail.html 留意点 -「制御ファイル」 /var/qmail/control/ 以下の制御ファイルの設定に注意 + 一旦 usuzumi にて制御ファイルの作成を行い、後で書き換え。 + この時点の usuzumi に ep.sci.hokudai.ac.jp の MX は向けられていない。 -「受信テスト」 メールアドレスのホスト名はフルドメイン (usuzumi.ep.sci.hokudai.ac.jp) で行う。 - 「exmlm-0.53 インストール時」 エラーがでるため, ezmlm-manage.c, 及び ezmlm-return.c に 「#include "log.h"」 を書き加えることで一応インストールできる。 3. quota のインストール http://www.ep.sci.hokudai.ac.jp/~epmail/y2010/dvlop/basic/quota-guide.html 留意点 - /etc/fstab の書き換えは 当日 SCSI HD を取り付けてから行う。 4. qmailanalog のインストール http://www.ep.sci.hokudai.ac.jp/~epmail/y2010/dvlop/qmailanalog.html 5. mail2news をインストール http://www.ep.sci.hokudai.ac.jp/~epmail/y2010/dvlop/mail2news.html 6. mess822 (iftocc) のインストール http://www.ep.sci.hokudai.ac.jp/~epmail/y2010/dvlop/iftocc.html 7. gate のインストール http://www.ep.sci.hokudai.ac.jp/~epmail/y2010/dvlop/gate-reconfig.html 8. usuzumi の qmail 停止 http://www.ep.sci.hokudai.ac.jp/~epmail/y2010/dvlop/qmail_stop.html [ 入れ換え当日 ] ※ 番号の前に * がついているものは現行の grey での作業 *0.1 ログイン中の全ユーザーのターミナルにメッセージを表示 # wall The system will shutdown at ??:?? Please logout ([Ctrl]+[D]キーを押すとプロンプトが返ってくる) *1. 一般ユーザのアクセスを禁止する. 作業中に誤って一般ユーザがサーバにアクセスできないようにする. 編集するファイルと追加内容は以下の通り - /etc/hosts.deny ALL: ALL <-- を追加 - /etc/hosts.allow ALL: (入れ換え作業者 PC のグローバルIP) <-- を追加 ALL: XXXX.ep.sci.hokudai.ac.jp <-- を追加 ( XXXX はグローバル IP 申請時のホスト名 ) 詳細は http://www.ep.sci.hokudai.ac.jp/~inex/y2008/0627/jitsugi/security.html#hosts を参照. *2. grey の qmail 停止する. 手順は http://www.ep.sci.hokudai.ac.jp/~epmail/y2010/dvlop/qmail_stop.html を参照 (ただし, まだ rsync とシャットダウンは行わない). 3. ep ドメイン宛のメールがセカンダリメールサーバである www へ配送さ れているか確認する. www サーバで # /var/qmail/bin/qmail-qstat を実行し, qmail のキューが時間ともに増加していることを確認する. 詳細は http://www.ep.sci.hokudai.ac.jp/~epmail/y2010/dvlop/www.html#secondary を参照. *4. 現 grey 内の重要ファイルをバックアップ バックアップをとるファイルは以下の通り. - /etc/passwd /etc/shadow /etc/group /etc/sudoers /etc/ssh/ /etc/skel/ /etc/cron.daily/rsync /var/spool/cron/ /var/lib/canna/dic/user/ - # cp -pr [files/directory] 所有者・グループなどを保って cp - バックアップ先は外付けHDDの /home/yamadakk/tmp などにすると良い % 注意 % - scp だと -p を付けても所有者やパーミッションが保たれない。 - USBメモリでは, パーミッションが保たれないことがあるので, バックアップ先は外付けHDDである /home 以下のどこかに置くと良い - タイムスタンプは保持される。 % 注意 % /var/spool/cron/ と /var/lib/canna/dic/user/ は オーナーが保持されず, 全て root root となってしまう. - 再構築終了後、問題がないことを確認したら削除する! *5. /, /home 領域のバックアップ /etc/cron.daily/rsync を実行する. # /etc/cron.daily/rsync & これは時間がかかるので終るのを待たずに次の作業へ *6. grey から外付け HDD へ設定ファイルのコピー grey から usuzumi へ設定ファイルをコピーするため, まず grey から外付け HDD の /home 領域へコピーする コピーするファイルは以下の通り. - /etc/shadow !! 留意点(以下を見よ) !! /etc/ssh/ /etc/skel/ /etc/cron.daily/rsync /var/spool/cron/ /var/lib/canna/dic/user/ - 所有者・グループなどを保って cp # cp -pr [files/directory] !! 注意 !! 所有者やパーミッションに注意! scp は -p をつけても所有者の保持はできない。 タイムスタンプは保持される。 !! 留意点 !! - /etc/shadow は gate で生成される部分だけをコピーする. 具体的な手順は以下の通り. *6-1. greyの /etc/shadow を別ファイルにコピー # cp /etc/shadow /root/shadow.tmp *6-2. エディタでひらいて実際に不必要な部分の削除 # vi /root/shadow.tmp UID 1000 -- 29999 以外の行を全て消す UIDは /etc/passwd に書かれている *6-4. shadow.tmp を HDD へコピー # mkdir /home/grey-etc # cp -pr /root/shadow.tmp /home/grey-etc/shadow *6-5. 圧縮する # cd / # tar cvfp grey-etc.tar /etc/ssh /etc/skel /etc/cron.daily/rsync /var/spool/cron /var/lib/cannna/dic/user *6-6. HDDへコピー # cp -pr grey-etc.tar /home/grey-etc/ (*6-7. # rm /root/shadow.tmp ) *7. 5. が終了したら転送されたディスクサイズの確認を行う 現 grey で以下を実行する. $ du -s /home (または単に df と入力) だいたいサイズが同じくらいなら OK (なぜか、完全には一致しないので注意) *8. 現 grey をシャットダウン - ネットワーク線をはずしておく - grey シャットダウン後、SCSI HDD の電源を切る - /home, /home.bk, /sys.bk の SCSI HD の接続を外す。 9. usuzumi シャットダウン - usuzumi をシャットダウンする - ネットワーク線を抜く (重要!) ^^^^^^^^^^^^^^^^^^^^ - usuzumi (新 grey) 起動 - SCSI HD (/home) を接続 - SCSI HD (/home.bk) を接続 - SCSI HD (/sys.bk) を接続 9-1. HDDをマウントする # mount -a 9-2. usuzumi の /etc/shadow 内に UID 1000--29999 のユーザができて いないことを確認 9-3. 以下の設定ファイルを別名でバックアップしておく - /etc/shadow /etc/ssh/ /etc/skel/ /etc/cron.daily/rsync /var/spool/cron/ /var/lib/canna/dic/user/ 9-4. grey からコピーした設定ファイルを解凍する # cd / # tar xvfp /home/grey-etc/grey-etc.tar 9-5. /etc/shadow へペースト # cat /home/grey-etc/shadow >> /etc/shadow ^^^^ 10. /etc/fstab の編集 /home, /home.bk, /sys.bk のためのエントリを追加 (空白はスペースで はなく Tab キーで) LABEL=home /home ext3 defaults,usrquota LABEL=home-bk /home.bk ext3 defaults LABEL=sys-bk-out /sys.bk ext3 defaults また, / の行の一番左の箇所を LABEL=root に変更し保存 root のラベルを付ける # e2label /dev/sd?1 /home.bk と /sys.bk ディレクトリを作成しておく /home には quota をかけるので, その設定を忘れないこと. 詳細は http://www.ep.sci.hokudai.ac.jp/~epmail/y2010/dvlop/basic/quota-guide.html 10-2. HDD を接続したままでも再起動できるようにする /boot/grub/menu.lst の中の一部を書き変える 編集前: # kopt=root=/dev/sda1 ro 編集後: # kopt=root=LABEL=root ro 書き変えた内容を反映させる # update-grub 11. ホスト名、IP アドレスの変更 - 以下のファイルに記述されているホスト名を "usuzumi" から "grey" へ + /etc/hosts /etc/hostname /etc/motd /etc/im/SiteConfig /etc/mailname /etc/exim4/update-exim4.conf.conf + /var/qmail/control/locals /var/qmail/control/me /var/qmail/control/rcpthosts + /etc/init.d/tcpserver - IP アドレスを usuzumi: 133.50.160.52 から grey:133.50.160.50 へ + /etc/network/interfaces 詳細は http://www.ep.sci.hokudai.ac.jp/~epcore/dvlop/y2010/iplist.html を参照. 12. usuzumi (新 grey) を shutdown 13. ネットワークカードの差し替え 筺体を開けて, grey と usuzumi のネットワークカードを取り換える 14. usuzumi (新 grey) を起動 起動後に以下作業を行う. - qmail 停止 - ネットワーク接続 - ネットワーク線を grey <=> usuzumi のように付け替える - ip と 大計ハブポートの対応に注意 + grey: 133.50.160.50 G0916.09 usuzumi: 133.50.160.52 G0916.11 - HDD が正しく認識されているか確認する. ※ ネットにつながらないときは /etc/network/interfaces の eth2 となっているところを eth1 に書き換え # /etc/init.d/networking restart eth0 を削除 # route del -net 133.50.160.0 netmask 255.255.254.0 dev eth0 # ifup eth1 とすると, つながる 15. /, /home 領域のバックアップコピー /etc/cron.daily/rsync を実行する. これは時間がかかるので終るのを待たずに次の作業へ 16. gate の公開鍵の更新 gate@grey:$ ssh orange.ep.sci.hokudai.ac.jp Are you sure want to continue connecting (yes/no)? [yes] 17. gate を動かして, /etc/passwd と /etc/tcp.smtp を生成する. $ ssh orange.ep.sci.hokudai.ac.jp $ telnet localhost 8888 詳細は http://www.ep.sci.hokudai.ac.jp/~epmail/y2010/dvlop/gate-reconfig.html#test_use を参照 18. qmail の動作確認 - 新 grey 再起動 (qmail を起動させるため) - シャットダウン - 外付け HDD を外す - 起動 - 外付け HDD を接続 - マウントする (# mount -a) http://www.ep.sci.hokudai.ac.jp/~epmail/y2010/dvlop/gate-reconfig.html#test_use - qmail の動作試験 + grey から mew で自分へメールを送信/確認 + grey から mew で他人へメールを送信/確認 + 自機などから pop でメールを送信/確認 + 自機などから imap でメールを送信/確認 - メールの送受信ができないときは # crontab -e 次のように編集 50 * * * * /usr/local/sbin/gate-make-mailpasswd 今まで使用していた以下の部分はコメントアウト #50 * * * * /etc/cron.daily/imappwdbg 19. www (secondary) からの配送確認 www サーバで # /var/qmail/bin/qmail-qstat を実行し, qmail のキューが時間ともに減少していることを確認する. 20. gate の動作確認 * gate-toroku-system がローカルに実行されるかどうか確認 1. 手動で gate のデータベースを更新してみる (orange で gate- daily を実行) $ ssh orange.ep.sci.hokudai.ac.jp $ telnet localhost 8888 2. usuzumi で gate-daily を実行 $ /usr/local/lib/gate/gate-daily 3. /etc/passwd, /etc/group, /etc/shadow が更新されているかチェック $ cd /etc $ ls -l passwd group shadow [時間を確認] (4). 更新されていない場合は gate-daily の中で実行されているコマン ドを一つずつチェック $ lv /usr/local/lib/gate/gate-daily * gate-toroku-system がリモートで実行されるかどうか確認 1. www サーバで登録サーバに usuzumi を追加 $ sudo -u gate -s -H $ cd /home/gate $ nano .ssh/known_hosts 2. 登録ウェブ上でデータベースを更新 gate のページで epmail の更新ボタンを押すなど 3. その結果が usuzumi に反映されているか確認 $ cd /etc $ ls -l passwd group shadow * /etc/cram-md5.pwd が更新されるか確認 0. yamadakk ユーザを作成 $ sudo -s # adduser yamadakk # exit $ ssh yamadakk@usuzumi 1. test ユーザのパスワードファイルを作成 $ mkdir Maildir $ echo 'xxxx' > ~/Maildir/.password $ cat ~/Maildir/.password xxxx ← と表示される $ chmod 600 ~/Maildir/.password 2. スプリプトを実行 $ exit $ cd /usr/local/sbin/ $ sudo -s # ./gate-make-mailpasswd 3. /etc/cram-md5.pwd が書き変わっていることを確認 $ ls -l /etc/cram-md5.pwd [時間を確認] 4. /etc/cram-md5.pwd の行数と /home/* 以下の .passwd の数を比較する 5. root の cron.tab を編集して 10 分おきに /etc/cram-md5.pwd が 書き変わるようにする $ cd /etc # nano crontab cron.daily の行をコメントアウトし以下の用に書き換える */10 * * * * root ・・・ /etc/cron.daily ^^^^ 6. きちんと動作していることを確認したら正しい設定に戻す $ ls -l /etc/cram-md5.pwd [時間を確認] $ cd /etc # nano crontab 21. *4でのバックアップファイルを削除する /home/yamadakk/tmp など 22. 再構築完了をメールで報告、mail サーバ再開 ! 23. サーバのテプラ張り替え 24. 手引集の改訂 ######################################################################