##########################################################
#
# 2009年度 Mail サーバ 再構築手順書 (Ver.1.0)
#
# 2009/08/07 (徳永 義哉): 2008 年度版から作成

##########################################################

□ 構築ドキュメントとインストールするもの

   ・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/y2008/dvlop/basic/index.html
       
       留意点
         - Debian/lenny のインストール
         - kernel ver.2.6 (最新のもの)を選択

    2. qmail のインストール
       http://www.ep.sci.hokudai.ac.jp/~epmail/y2008/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/y2008/dvlop/basic/quota-guide.html

       留意点
       - /etc/fstab を書き換えは
         当日 SCSI HD を取り付けてから行う。

    4. qmailanalog のインストール
       http://www.ep.sci.hokudai.ac.jp/~epmail/y2008/dvlop/qmailanalog.html

    5. mail2news をインストール
       http://www.ep.sci.hokudai.ac.jp/~epmail/y2008/dvlop/mail2news.html

    6. mess822 (iftocc) のインストール
       http://www.ep.sci.hokudai.ac.jp/~epmail/y2008/dvlop/iftocc.html

    7. gate のインストール
       http://www.ep.sci.hokudai.ac.jp/~gate/dvlop/y2008/gate-reconfig.html

    8. usuzumi の qmail 停止
       http://www.ep.sci.hokudai.ac.jp/~epmail/y2008/dvlop/qmail_stop.html
 
  [ 入れ換え当日 ]
  ※ 番号の前に * がついているものは現行の grey での作業

   *0.0 入れ換えをはじめる前にあらかじめやっておくこと
       現 grey の /, /home/ をサーバと繋がっていない HDD にバックアップ
      * HDD をつなぐ(SATA 接続)
      * HDD にファイルシステム作成
        # mkfs.ext3 /dev/sdg1/
      * マウントする(/dev/sdg1/ に HDD が認識された場合).
	# mount -t ext3 /dev/sdg1/ /media/usbdisk/
      * バックアップ用ディレクトリの作成
	# mkdir /media/usbdisk/bk
	# mkdir /media/usbdisk/home.bk
	# mkdir /media/usbdisk/log
      * バックアップ
        * /home/ 以外のバックアップ
        # rsync -av --delete --exclude /bk/ --exclude /home/ --exclude /home.bk/ --exclude /proc/ --exclude /sys/ 
        --exclude /tmp/ --exclude /elderhome/ --exclude /elderhome.bk/ --exclude lost+found 
        / /media/usbdisk/bk/ >> /media/usbdisk/log/bklog 2>&1
        * /home/ のバックアップ
        # rsync -av --delete --exclude lost+found /home/ /media/usbdisk/home.bk/ >> /media/usbdisk/log/homebklog 2>&1
	# umount /media/usbdisk
      * HDD を外す.
  
   *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        <-- を追加

       詳細は

         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/y2008/dvlop/qmail_stop.html

       を参照.

    3. ep ドメイン宛のメールがセカンダリメールサーバである www へ配送されて
       いるか確認する. www サーバで
      
        # /var/qmail/bin/qmail-qstat

       を実行し, qmail のキューが時間ともに増加していることを確認する.

       詳細は

         http://www.ep.sci.hokudai.ac.jp/~epmail/y2008/dvlop/www.html#secondary

       を参照.


   *4. 現 grey 内の重要ファイルをバックアップ

       バックアップをとるファイルは以下の通り.

       - /etc/passwd
         /etc/shadow
         /etc/group
         /etc/sudoers
         /etc/ssh/
         /etc/opiekeys
         /etc/skel/
         /etc/cron.daily/rsync
         /var/spool/cron/
         /var/lib/canna/dic/user/


       - # cp -pr [files/directory]     所有者・グループなどを保って cp
          (例) grey # scp -pr [files/directory] kanenari@joho09:~/gray_bk/

         % 注意 %  scp だとパーミッションが保たれない。これは記述ミス。
                   FDD, USBメモリ, 外付けHDD, を介して行えばよい。

	 !! 注意 !!
	 所有者やパーミッションに注意!
	 scp は -p をつけても所有者の保持はできない。
	 タイムスタンプは保持される。

         % 注意 %
         /var/spool/cron/ と /var/lib/canna/dic/user/ は
         オーナーが保持されず, 全て root root となってしまう.

       - バックアップ先は適宜 
       - 再構築終了後、問題がないことを確認したら削除する!


   *5. /, /home 領域のバックアップ

       /etc/cron.daily/rsync を実行する.
       これは時間がかかるので終るのを待たずに次の作業へ


   *6. grey から usuzumi へ設定ファイルのコピー

       バックアップをとるファイルは以下の通り.

       - /etc/shadow       !! 留意点(以下を見よ) !!
         /etc/opiekeys
         /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 で生成される部分だけをコピーする.
         具体的な手順は以下の通り.

         1. 旧 /etc/shadow を別ファイルにコピー
            # cp /etc/shadow /root/shadow.tmp

         2. エディタでひらいて実際に不必要な部分の削除
            # vi /root/shadow.tmp
            User UID 1000 -- 29999 以外を全て消す

         3. 新 /etc/shadow 内に ID 1000--29999 のユーザが
	    できていないことを確認

         4. 新 /etc/shadow へペースト
            # cat /root/shadow.tmp >> /etc/shadow
	                          ^^^^
       ( 5. # rm /root/shadow.tmp )

   *7. 5. が終了したら転送されたディスクサイズの確認を行なう

       現 grey で以下を実行する.

         $ du -s /home  (または単に df と入力)

       だいたいサイズが同じくらいなら OK
       (なぜか、完全には一致しないので注意)
       
   *8. 現 grey をシャットダウン

       - ネットワーク線をはずしておく
       - grey シャットダウン後、SCSI HDD の電源を切る
       - /home, /home.bk の SCSI HD の接続を外す。

    9. usuzumi シャットダウン

       - ネットワーク線を抜く  (重要!)
         ^^^^^^^^^^^^^^^^^^^^
       - SCSI HD (/home) を接続
       - SCSI HD (/home.bk) を接続
       - usuzumi (新 grey) 起動

   10. /etc/fstab の編集

       /home, /home.bk のためのエントリを追加

         /dev/sdc1       /home           ext3    defaults,usrquota        0       2
         /dev/sdd1       /home.bk        ext3    defaults        0       2

       /home には quota をかけるので, その設定を忘れないこと.
       詳細は

         http://www.ep.sci.hokudai.ac.jp/~epmail/y2008/dvlop/basic/quota-guide.html
       
   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/y2008/iplist.html

       を参照.

   12. usuzumi (新 grey) を shutdown

   13. ネットワークカードの差し替え

   14. usuzumi (新 grey) を起動

       起動後に以下作業を行う.
       - qmail 停止
       - ネットワーク接続

       - ネットワーク線を grey <=> usuzumi のように付け替える
       - ip と 大計ハブポートの対応に注意
         + grey:    133.50.160.50   G0916.09
           usuzumi: 133.50.160.52   G0916.11
       - HDD が正しく認識されているか確認する. 

   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 grey.ep.sci.hokudai.ac.jp 8888 

       詳細は

         http://www.ep.sci.hokudai.ac.jp/~gate/dvlop/y2008/gate-reconfig.html#test_use
 
       を参照

   18. qmail と gate の動作確認

       - usuzumi 再起動 (qmail を起動させるため)

       - gate の動作確認

         http://www.ep.sci.hokudai.ac.jp/~gate/dvlop/y2008/gate-reconfig.html#test_use

       - qmail の動作試験
         + grey から mew で自分へメールを送信/確認
         + grey から mew で他人へメールを送信/確認
         + 自機などから pop でメールを送信/確認
         + 自機などから imap でメールを送信/確認
       
   19. www (secondary) からの配送確認

       www サーバで
      
        # /var/qmail/bin/qmail-qstat

       を実行し, qmail のキューが時間ともに減少していることを確認する.


   20. 再構築完了をメールで報告、mail サーバ再開 !
   
   21. サーバのテプラ張り替え
   
   22. 手引集の改訂
   
######################################################################