2010年3月27日星期六

B2D 升級到 OB2D

最近學校的網路主機硬碟掛了,還好資料有備份,原本是B2D的作業系統,想想既然要重灌,那乾脆來灌最新的OB2D吧,以下是重灌步驟的整理,方便以後還要再重灌時不用去想要怎麼做,同時也提供給各位伙伴參考

  1. 準備一顆新的硬碟,這樣比較好處理,現在硬碟這麼便宜,容量又超大,順便把SERVER的硬碟升級,應該很划算吧!! (本校是使用1TB的硬碟,若只做MAIL主機,1TB可以用到地老天荒了)
     
  2. 找個時間,宣佈網路暫停運作,因為要移機了
     
  3. 原硬碟接到第2顆,把新硬碟接到第1顆,先安裝OB2D順便分割新硬碟,因為本校原B2D是BIG5編碼,為了避免橫生枝節,OB2D還是安裝BIG5編碼,其他的就以預設安裝吧,沒意外的話,這顆硬碟可以在20分鐘內裝好,OB2D會要求先給一組非管理者帳號密碼。
     
  4. 開機後以剛剛的帳密先登入,若不想每次都打sudo,那先設一下root帳號密碼
    sudo passwd
     
  5. 重新以root登入
    exit
     
  6. 執行ob2d-setup 設定一下主機的基本資訊和服務密碼(用於phpmyadmin和mysql)
    ob2d-setup
     
  7. 若有需要,檢查一下/etc/rc.local 開放putty 校內連線
    vi /etc/rc.local
    /etc/rc.local
     
  8. 接下來可以一般pc,用pietty連線,不然看不到中文訊息也很苦惱。
     
  9. 網卡ip設定(要在同一網卡設定2組ip用,像本校的網路是真實和虛擬並存,通常會再給網卡一組虛擬ip
    vi /etc/network/interfaces

    auto lo eth0 eth0:1

    iface lo inet loopback

    iface eth0 inet static
    address 163.26.174.1
    netmask 255.255.255.0
    network 163.26.174.0
    broadcast 163.26.174.255
    gateway 163.26.174.254

    iface eth0:1 inet static
    address 192.168.1.2
    netmask 255.255.0.0
    network 192.168.0.0
    broadcast 192.168.255.255
    gateway 192.168.0.1
    /etc/init.d/networking restart

    ifconfig 查看目前所有網路設定

    ifconfig eth0 up (啟用eth0)
    ifconfig eth0 down(停用eht0)
     
  10. 還原cp -f 的功能(因為B2D和OB2D的cp -f 強制覆蓋功能無效,若要搬移大量資料會有困擾,故需將其還原)
    root@mail:~# unalias cp
     
    只要執行 alias cp=cp 或 unalias cp,把它暫時取消即可。若要永久取消,請寫在
    /etc/profile 或 .bash_profile 中。
     
  11. scp/sftp/ssh(方便在2台電腦間直接搬資料用) 不能連的原因是在/etc/hosts.deny中有設定一條  ALL: PARANOID
    代表拒絕所有電腦名稱和dns反查到不相符的電腦連線
     
    例如:你的另一部主機在dns中反查到的名字若是dns,但netbios名稱卻設成mail,那麼這台電腦就不能拿來以ssh連線到新灌的ob2d
    先把他mark起來,ssh/scp/sftp等就可以用了
     
  12. 更改升級用的sources.list(參考http://yh.tnc.edu.tw/itsmw/index.php/Ob2d)並更新OB2D
    wget http://yh.tnc.edu.tw/download/sources.list
    cp -f sources.list /etc/apt/
    wget http://yh.tnc.edu.tw/download/ob2d-sec.gpg
    wget http://yh.tnc.edu.tw/download/ob2d-dm.gpg
    apt-key add ob2d-sec.gpg
    apt-key add ob2d-dm.gpg
    apt-get update
    apt-get upgrade
     
  13. 安裝dhcp3-server和samba(如果需要的話)
    apt-get install samba
    apt-get install dhcp3-server
     
  14. 安裝 unzip,netpbm (sfs3解壓及產生縮圖用,ob2d預設沒有安裝)
    apt-get install unzip netpbm
     
  15. 先將/etc 備份一下以免改壞了找不回來
    cp /etc /etc1
     
  16. 將原硬碟mount進來
    mount /dev/sdb2 /mnt
     
  17. 還原dns伺服器(bind9)
    cp /mnt/etc/bind /etc/ -aur
    service bind9 restart
     
  18. 還原 /var/www的內容,但保留phpmyadmin
    mv /var/www /var/www1
    cp /mnt/var/www /var -ar
    rm /var/www/phpmyadmin
    cp /var/www1/phpmyadmin /var/www/ -ar
     
  19. 若有安裝sfs3,需要將apache2內和sfs3相關設定還原,以下以本校為例,若還有其他特殊設定檔,請自行還原相關設定
    cp /mnt/etc/apache2/conf.d/sfs3.conf /etc/apache2/conf.d -a
    service apache2 restart
     
  20. 修改php.ini提高upload的上限值
    vi /etc/php5/apache2/php.ini
    修改upload_max_filesize = 5M
      
  21. 啟用個人網頁空白
    cd /etc/apache2/mods-enabled
    ln -s ../mods-available/userdir.conf userdir.conf
    ln -s ../mods-available/userdir.load userdir.load
    若要修改個人網頁空間的目錄名稱,例如原本是放在/home/*/public_html,要改成/home/*/html,則要修改 userdir.conf檔
    vi userdir.conf
    將所有的public_html 改成 html
    service apache2 restart
      
  22. 將/etc/rc.local 還原
    cp /mnt/etc/init.d/rc.local /etc/ -f
    vi /etc/rc.local
    在最後一行加上
    exit 0
    存檔後執行
    /etc/rc.local
     
  23. 若要自己修改預設的rc.local,其實主要是要加上spam的相關設定如下
    ## 防止 spam mail server 直接交寄信包給本 mail server
    # 允許本機可直接交寄
    $IPTABLES -A INPUT -p TCP -s 127.0.0.0/8 --dport 25 -j ACCEPT
    # 允許163.26.0.0 整個 B Class 可直接交寄
    $IPTABLES -A INPUT -p TCP -s 163.26.0.0/16 --dport 25 -j ACCEPT

    # 允許學校網可直接交寄
    $IPTABLES -A INPUT -p TCP -s 163.26.174.0/24 --dport 25 -j ACCEPT
    $IPTABLES -A INPUT -p TCP -s 192.168.0.0/16 --dport 25 -j ACCEPT

    # 教網中心辦公室
    $IPTABLES -A INPUT -p TCP -s 203.68.102.0/24 --dport 25 -j ACCEPT
    #允許教育部可直接交寄
    $IPTABLES -A INPUT -p TCP -s 140.111.2.0/24 --dport 25 -j ACCEPT
    $IPTABLES -A INPUT -p TCP -s 140.111.8.0/24 --dport 25 -j ACCEPT
    $IPTABLES -A INPUT -p TCP -s 140.111.34.0/24 --dport 25 -j ACCEPT

    # 允許成大區網可直接交寄
    $IPTABLES -A INPUT -p TCP -s 140.116.2.0/24 --dport 25 -j ACCEPT

    #允計全部可寄
    #$IPTABLES -A INPUT -p TCP -s 0.0.0.0/0 --dport 25 -j ACCEPT

    # 拒絕 非本校 IP 網段交寄信包
    $IPTABLES -A INPUT -p TCP -s ! 163.26.174.0/24 --dport 25 -j DROP

  24. 回復群組、帳號、密碼、aliases檔等
    cp /mnt/etc/passwd /etc -f
    cp /mnt/etc/group /etc -f
    cp /mnt/etc/shadow /etc -f
    cp /mnt/etc/aliases /etc -f
    newaliases
    檢查一下/etc/passwd檔,看有沒有這一個帳號,若沒有則加進去
    dovecot:x:121:121:Dovecot mail server,,,:/usr/lib/dovecot:/bin/false
     
  25. 還原mysql資料庫
    cp /var/lib/mysql /var/lib/mysql1
    先用phpmyadmin 在mysql中建立相對應要還原的空白資料庫
    再把需要移動的資料庫cp過去
    cp /mnt/var/lib/mysql/sfs3 /var/lib/mysql -afr
    cp /mnt/var/lib/mysql/xoops /var/lib/mysql -afr
    修改xoops目錄中mainfile.php 內的資料庫帳號密碼(或是用phpmyadmin建立相同的帳號密碼)
    service mysql restart 測試一下網頁是否正常
     
  26. 回復postfix 設定
    cp /mnt/etc/postfix/main.cf /etc/postfix -afr
    service postfix restart
     
  27. 回復dhcp3-server
    cp /mnt/etc/dhcp3 /etc/ -aur
    /etc/init.d/dhcp3-server restart
     
  28. 回復/home 和 /var/mail資料夾
    cp /mnt/home/* /home -aurf
    cp /mnt/var/mail/* /var/mail -aurf
     
  29. 回復 samba 服務
    service samba stop
    cp /mnt/etc/samba /etc -aurf
    mv /var/lib/samba /var/lib/samba1
    cp /mnt/var/lib/samba /var/lib -aurf
    vi /etc/samba/smb.conf
    找到 passdb backend = tdbsam guest
    改成 passdb backend = tdbsam

    service samba restart

    若samba 還擔任網域主控站,而網域主控站功能異常的話可以試試
    rm /var/lib/samba/wins.dat
    看看功能正不正常

    另外 samba的密碼檔為
    /etc/var/lib/samba 目錄中的
    /var/lib/samba/secrets.tdb
    /var/lib/samba/account_policy.tdb
    /var/lib/samba/passdb.tdb
    三個檔案
     
  30. 安裝openwebmail
    apt-get install chspeedy
    apt-get install openwebmail

    若您有修改過/usr/llib/cgi-bin/openwebmail內的資料的話,再加上
    mv /usr/lib/cgi-bin/openwebmail /usr/lib/cgi-bin/openwebmail1
    cp /mnt/usr/lib/cgi-bin/openwebmail /usr/lib/cgi-bin/ -arf
     
  31. 安裝webmin和usermin
    apt-get install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl libmd5-perl


    自行到webmin網站下載webmin_1.xxx_all.deb和usermin_1.xxx_all.deb
    再以下列指令安裝
    dpkg -i webmin_1.xxx_all.deb
    dpkg -i usermin_1.xxx_all.deb

    修改/etc/webmin/miniserv.conf,看需不需要啟動ssl
    修改/etc/usermin/miniserv.conf,看需不需要啟動ssl
     
  32. 使用webmin中的samba設定,讓samba 的unix密碼可以和samba密碼同步
       
  33. 若要讓老師可以幫學生修改密碼,則需設定如下
    選webmin--webmin使用者--建立一個computer_teacher的群組,功能只能修改students密碼
    點選修改密碼進去設定

      

  34. 再選轉換unix到webmin使用者,把電腦老師帳號都匯進來
  35. 以後電腦老師就可以使用webmin來改學生的密碼了            
  36. 重設Quota
    vi /etc/fstab
    /dev/sda2 / ext3 defaults,usrquota,grpquota,errors=remount-ro 0 1
    若要開機自動mout第2顆硬碟則可以加上如下的參數
    /dev/sdb2 /backup ext3 defaults 0 1
    將sdb2 開機自動mount 在/backup 資料夾上,但需要先在/下建立一個backkup的資料夾

    設好後,請先測試有沒有設錯,否則重新開機後會無法啟動
    mount -a
    df
    右mount失敗,無法開機,請進入單人模式,輸入
    mount -n -o remount,rw /
    再修改/etc/fstab

    重新mount 一次,讓quota生效
    umount /dev/sda2
    mount -a

    mount -o remount /

    掃描一次硬碟,並產生quota資訊
    quotacheck -avugm
    要等很久哦

    ls / aquota*

    quotaon -av

    /dev/sda2 [/]: group quotas turned on
    /dev/sda2 [/]: user quotas turned on

    設定user student的quota
    edquota -u student
    Disk quotas for user student (uid 3111):
    Filesystem blocks soft hard inodes soft hard
    /dev/sda2 44 200000 200000 11 0 0
    上例設定為200mb

    設定寬限期
    edquota -t

    檢查quota
    quota -vu student

    將student quota 複製給其他使用者

    edquota -p student quser2

    若是要大量修改quota,則可使用webmin,選取student後再複製配額或使用shell script來
  37. 設定 開機時啟動 quota 將指令 /sbin/quotaon -avug 加入/etc/rc.local中  
  38. 可能發生問題及原因
    samba 無法啟動:
    smb.conf的設定檔要把guest拿掉

    samba 無法開啟個人資料夾:
    /home/資料夾未copy

    samba 當網域主控站,但網域異常無法登入
    通常是密碼檔混亂(/var/lib/samba)新舊密碼檔不要混在一起
    另一個可能性是/var/lib/samba/wins.dat資料檔有問題,刪除他
    再重新啟動samba
     
  39. postfix 寄信/收信有問題:
    postfix設定檔未copy過去

    會漏信(有時可寄達,有時不可)
    可能server 的ip有異動,dns內容有變動,別人的dns cache尚未更新,等一陣子(約2-3天)就好了,或是在dns異動期間,舊有的ip和新的ip並存,等幾天後再把舊ip拿掉

沒有留言:

標籤