歡迎您光臨本站 註冊首頁

為了忘卻的記憶——升級CentOS3.4手記

←手機掃碼閱讀     火星人 @ 2014-03-23 , reply:0

記下安裝過程作為備忘便於今后的維護,主要記錄做了什麼而不是如何做。

Host:HP LH6000U3 CPU:X700 內存:512兆 SCSI-34G x 2

系統遷移是一件吃力不討好的事。原來運行的是Linux RedHat9.0,雙網卡iptables,Apache,Sendmail,VPN,感覺不是十分安全,對Dos的進入只能眼睜睜的看著機器迅速趴下。那Sendmail天書也讓人看得心裡沒底。在REHL4.0出現後計划升級。在別的機器上作原來環境模擬,沒有問題后正式升級。但是,在HP機器上升級中問題還是出現,4.0版本內核已經不支持HP的NetRAID卡,在安裝SCSI啟動程序時找不到SCSI卡。於是改用了CentOS3.4即RHEL3U4進行安裝,用的版本是CentOS3.4-Server,一張CD完全安裝約1.5G,去掉了Gnome、KDE等許多非服務應用程序,這樣,既能節省空間又能提高安全係數,然而,這可是斯巴達摩雙刃劍,儘管安裝了這個Server版本所有包,但是許多包包都省卻了,後續安裝程序賴以運行環境沒有構建,例如:gcc、大量的perl組件都沒有預先安裝。

經驗教訓:當你沒有完全把握所要安裝的軟體都已準備齊全的時候,最好安裝完全版,四張CD或者DVD,所有的都要安裝,不要心疼你的硬碟。如此,新添加程序所依賴的底層環境都已經構建。可以省卻幾乎令人絕望和痛苦的依賴性安裝。雖然已經有了比較完善的在線升級機制,如:yum、apt,但主要是在已經安裝基礎上面進行的升級,如果是新程序安裝還是需要庫程序支持。

備份RH9.0主要文檔:
一般人們都不太願意系統升級和遷移,中外都是如此。它與新安裝一台機器完全不一樣,因為原來的系統年代久遠,原有應用環境的構架可以也忘記得差不多了,所以有太容易疏忽的準備工作要做,主要是備份原來應用環境。寫好升級內容與順序書面計劃,以便在正式升級的時候按部就班有條不紊。
帳號group gshadow passwd shadow
網站postnuke備份。
/etc/目錄做備份
/var/spool/mail目錄備份十分重要,用戶個人的郵件信箱。
/dev/sdb即第二個硬碟作為/home分區。與系統隔離,為安全計,也做了備份。
一些自編腳本。如iptables、spam每周打包等等。


安裝系統一切順利。然後就是繁瑣的系統配置了,先後順序雖然沒有一定的講究但還是有輕重緩急之分。

一、配置網路:雙網卡eth0 eth0:1對外;eth1對內。
增加虛擬網卡eth0:1:綁定兩個IP。
cp /etc/syscongig/network-scripts/ifcfg-eth0 ifcfg-eth0:1
對ifcfg-eth0:1小作修改
網路環境:
eth0 61.x.x.x
eth0:1 61.x.x.x
eth1 192.168.0.19

修改hosts文件:
61.x.x.x a.b.c.cn
61.x.x.x c.b.a.cn
主機域名應該已經註冊並且通知當地ASP,在其DNS中添加該若干主機名記錄,還有mx記錄。當然你的主機也可以做DNS,這就要通過DNS cache也就是根文件來進行解析,機器又多了一項開銷,沒有必要。
請ASP添加DNS記錄時最好能添加PRT反向查詢記錄,有些苛刻的郵件伺服器如美國在線AOL,在收郵件時就要反向查詢,查不到域名就彈回。都是垃圾郵件惹的禍。
修改resolv.conf,不改也罷反正這台linux不做客戶機。
nameserver 指向域名記錄主機IP,也就是你當地ASP。

二、安裝mc文件管理器
rpm -ivh mc-4.6.0-4.rpm
用慣了mc,在字元下的一個文件管理窗口。比較直觀,尤其是切換比較長的目錄時顯得特別有用。還有就是shell link,Linux機器文件對拷十分方便。
一般編輯文件還是用vim。

三、quota磁碟限額配置
/etc/fstab
usrquota,grpquota

這樣不行:
quotacheck -avug /
quotacheck -avug /home

強行如此:
quotacheck -mc /
quotacheck -mc /home
在限額配置在所在磁碟中建立:quota.user quota.group
可以先編輯edquota xxx
再複製給多個用戶:
edquota -p xxx `awk -F: '$3 >499 {print $1}' /etc/passwd`
這樣就將quota的磁碟配額資料複製給所有uid >499的用戶(uid為500以上的用戶通常為真實用戶),這就非常方便。

四、升級yum 安裝apt
配置文件在/etc/yum.conf
修改配置:可以從centos3.4源升級,也從dag源升級。
找一個快一些的更新網站,便於升級或安裝。
比較快的yum源:http://mirror.be10.com
5月21日kernel從2.4.21-27.0.4升級到2.4.21-32版本,也就是最新的RHEL3U5的內核
版本。

安裝apt,使伺服器的更新源擴大。
rpm -ivh apt-0.5.15cnc6-4.1.el3.rf
目錄:/etc/apt
比較快的apt源:http://apt.sw.be
當需要升級spamassassin-3.03時還是缺少perl,於是從網上找了一堆perl才算搞定。最好rpm --import httpd://xxx.xxx.xx/xxx.key,讓下載包安全一些。當然也可以不輸入key,這要在配置文件中關閉此項功能。此時打開兩個終端:yum update -y讓機器升級系統,另一個繼續安裝。

五、安裝php-mmcache-4.3.2
系統網路和底層環境基本到位后,及時安裝Web,使網站中斷時間儘可能縮短。
為php類的網站做cache,提高網站瀏覽速度。
rpm -ivh php-mmcache-4.3.2_2.4.6-4.1.el3.dag
cache目錄不再原先的/tmp,而在/var/cache/mmcache
配置在/etc/php.d/目錄中而不是原先直接寫入/etc/php.ini
還是用mmcache-2.4.6版本,明顯要比Zend Optimizer快,且更加精簡。

六、安裝postnuke Web
把備份/var/lib/mysql/Ph複製到原目錄。
把備份/var/www/postnuke複製到原目錄。
實際上是/var/www/postnuke/config.php文件中連接mysql的配置。
日曆的smart cache 中的幾個目錄有點問題刪除之。

httpd.conf
建立虛擬主機,比較簡單。
許多配置都已經單獨形成一個文件在/etc/httpd/conf.d/目錄中。
修改了:conf.d/php.conf上傳限制;mrtg.conf操作許可,使mailscanner-mrtg可以讀取mrtg的logo。

七、建立用戶環境:
複製備份的passwd、shadow、/var/spool/mail到原來目錄,建立起用戶環境,由於在/dev/sdb上的/home目錄沒有受損,用戶的個人資料完好無損。
修改新建用戶相關目錄:/etc/default /etc/skel,後者是新建用戶目錄的初始環境拷貝,在目錄中刪除所有文件添加目錄public_html,這是個人web目錄。如果要作個人網站,在/etc/httpd/conf/httpd.conf中找到相關的個人網站配置,去掉「#」就可使用個人網站。

八、配置vsfptd
兩個IP,一個做匿名訪問;一個做虛擬用戶訪問。後者通過mysql進行用戶認證,與系統用戶分離,比較安全。
直接編譯pam_mysql0.50隻支持RH90不支持centos3.4,從網上找到pam_mysql.rpm
目錄文件:/etc/pam.d /lib/security/pam_mysql.so

九、postfix配置

兩個IP各綁一個域名,使這兩個域名都能收信,因為新註冊了一個二級域名:itzx.cn 而原先的三級域名itzx.net.cn還要繼續使用。

在配置好基本的postfix后,發現能發信不能收信,仔細檢查發現:在恢復原來系統的/var/spool/mail目錄時,個人郵件文件擁有者都變成root:root而不是原本的"個人帳號:mail"。原因:安裝前把這個目錄備份到一台Linux機器,而這台主機沒有原來的系統賬號存在,所以都變成了root:root,當還原回來后就造成了postfix能發信,不能把收到的信寫入/var/spool/mail/個人帳號文件,改成原來的擁有者,解決問題。

sasl認證,防止SMTP做了垃圾郵件中轉。
在/etc/postfix/main.cf文件中添加若干sasl語句。
echo 'mech_listlain login' > /usr/lib/sasl2/smptd.conf
service saslauthd start
chkconfig saslauthd on

為root建別名:
vim /etc/aliases
root: postfix
執行postalias /etc/aliases

察看/etc/log/mail.log,在日記中有警告信息:warning: dict_nis_init: NIS domain name not set -NIS lookups disabled
執行命令:postconf|grep nis 找到/etc/postfix/main.cf文件中的alias_maps = hash:/etc/aliases, nis:mail.aliases 去掉其後即可。煩人的出錯信息消除。

Webmail配置:選用openwebmail,由台灣成大董博士主持,更新十分迅速,穩定成熟功能也多。
MIME-Base64版本必須要在3.0以上,用MIME-Base64-3.03.tar.gz進行編譯。
需要gcc支持,系統預設只有libgcc,從網上下載gcc.rpm安裝。
目錄:/var/www/cgi-bin/openwebmail
配置還是比較方便,主要是smtp server要寫本地主機地址127.0.0.1

十、安裝clamav
開放源碼軟體,掃病毒郵件,定時更新病毒庫
首先建用戶:
useradd clamav -M -s /sbin/nologin
版本:clamav-0.85
./configure
make
make check
make install
make clean
配置和病毒庫目錄:
/usr/local
升級的日記:/tmp/clamav.update.log

十一、MailScanner+spamassassin病毒垃圾郵件掃描系統。
在安裝之前首先要配置好為mailscanner+spamassassin配合工作的postfix,postfix不能直接啟動,必須要用兩個一進一出的postfix進程由mailscanner帶動。
目錄:
/etc/MailScanner
/etc/sysconfig/MainScanner
/etc/cron.hourly/check_MailScanner
/usr/lib/MailScanner
/var/spool/MailScanner
/etc/rc.d/init.d/MailScanner

安裝mailScanner-4.41.3-1遇到了許多麻煩,缺少大量的perl包,只能從網上search.cpan.org/~eryq找到這種perl編譯包,再用用apt-get upgrade perl-Net-CIDR tnef更新兩個包,才搞定,4、5個小時去了。事後知道:perl包也有專門的在線升級cpan,執行:perl -MCPAN -e shell。或者找一個perl-CPANPLUS.rpm包安裝並配置,之後再需要perl包的時候,執行cpan進行在線安裝perl。

把/etc/cron.hourly/update_virus_scanners文件移動到/etc/cron.daily,使升級病毒代碼從原來的一小時改為一天。

複製:55_diy_score Chinese_rules文件到/usr/share/spamassasin,兩個文件對中文垃圾郵件處理比較完善準確。

定期從http://www.ccert.edu.cn下載Chinese...am文件里:
wget -N -P /usr/share/spamassassin
www.ccert.edu.cn/spam/sa/Chinese_rules.cf; service MailScanner restart

-N 比較文件更新;-P 指定目錄

配置系統時一定要小心,安裝不能強行安裝:
為了awstats的一個插件,編譯了Time-HiRes,不行,直接把目錄里的HiRes.pm拷貝到/usr/lib/perl5/5.8.0/Time目錄里,結果MailScanner起不來了。仔細一想,在這之前做過的就這件事,把文件刪除,重新啟動,就好了。

在/var/log/maillog中發現,在升級病毒代碼庫時,除了升級clamav之外,還升級generic,事實上後者不存在,在/etc/MailScanner/virus.scanners.conf文件中註釋掉generic即可。
這樣,在升級病毒庫時不會多啟動一個進程。

十二、配置mailscanner-mrtg,一個垃圾病毒郵件統計分析網頁輸出。
目錄:
/etc/MailScanner/mailscanner-mrtg.conf
內在配置。

/etc/mrtg/mailscanner-mrtg.cfg
配置輸出格式。
添加:Language = cn

/var/www/html/mailscanner-mrtg
輸出統計分析網頁。對首頁作了修改和中文化工作。

/usr/lib/mailscanner-mrtg
核心代碼。

/usr/sbin/mailscanner-mrtg,執行文件,修改其中語句,使輸出頁面不顯示某些信息。

service snmpd start啟動snmp。
/etc/snmp/snmpd.conf配置,顯示內存,CPU,網路傳輸信息。

/etc/cron.d/mailscanner-mrtg.crond
cron排程器每5分鐘更新一次數據。
auditd進程要啟動與cron一起使用,否則,在cron.log中會有出錯信息:
LAuS error - do_command.c:226 - laus_attach: (19) laus_attach: No
such device.


十三、awstats配置:
一個可能最好的網站分析web頁面,直觀多維。
awstats-6.4-1.1.el3.rf.rpm
原來在安裝時直接寫入/etc/httpd/conf/httpd.conf文件,現在關於http配置已經放在:/etc/httpd/conf.d/awstats.conf,只對此進行必要修改,更加乾淨。
目錄:
/etc/awstats 主要配置文件
/var/lib/awstats 數據目錄
/var/www/awstats 網站
/etc/httpd/conf.d/awstats.conf http環境配置
添加幾個插件:hostinfo userinfo geoipfree。最後一個有價值,用國旗方式顯現IP所在國家。
每小時更新一次寫入cron:
/var/www/awstats/awstats.pl -update -config=zjit.3322.org > /dev/null

十四、配置VPN
編譯kernelmod-0.7.1.tar.gz,提供windows下的mppe128加密。
ppp-2.4.3-4
pptpd-1.2.3-1
主要配置目錄:
/etc/pptpd.conf
/etc/ppp/options.pptpd

注意只有iptables進行nat,外來的訪問才能到達內網:
/etc/sysctl.conf:
net.ipv4.ip_forward = 1

iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -j MASQUERADE

十五、webmin配置:一個遠程的系統管理Web界面。
版本:1.200-1.1
需要perl-Net-ssleay模塊,才能https

[火星人 ] 為了忘卻的記憶——升級CentOS3.4手記已經有613次圍觀

http://coctec.com/docs/linux/show-post-130770.html