相信大都知道,Linux發行版實在是太多了我也不止一次在很多網站的文章,很多書籍上看到過議論那種發行版是最好的,其實我個人認為,在linux世界中,沒有最好的這種說法,只要自己習慣,熟悉的一種版本,那麼我就可以說他是最好的。寫這篇文章,我也試找了很多資料,試圖找到一個大家都覺得常用的,熟悉的,最後,我覺得redhat linux真的很不錯,雖然它的內核比較龐大,而且效率不使所有發行版中最高的,但是它的普遍性,易用性和軟件升級支持,應用軟件支持方面是值得提出的,這些方面也正是一個好的linux發行版需要具有的。 這篇文章建立在redhat linux 7.3版之上,所有的軟件設置均在這個版本上測試通過。 說到這裡,可能大家要問,為什麼我要用redhat 7.3?現在不是有很多嗎?就redhat來說就有redhat 8.0, redhat 9.0還有什麼redhat 高級企業版,等等。這麼多新的東西為什麼不用呢?這個問題問得很好,這正是我要說的安裝和選擇發行版是要注意的一點。
1、版本的選擇 我使用redhat也有很長時間了,個人認為,redhat的.0版本都屬於大版本升級的第一個版本,這個版本往往很多軟件包不是很穩定,而且容易出現故障,對於管理員來說linux絕大部分是用來作為服務器使用的,那麼要最為服務器,最最大的首要問題就是穩定,其次最重要的也是安全,所以如果你是管理員,而非狂熱的愛好者,發燒友,我建議你選擇redhat 7.3。redhat 的版本號,後面跟了小版本號的就是軟件包有很多更新和修改的,雖然這個更新可能不是最新,但是至少它是這個穩定版本中最新最穩定的,不知大家理解這個問題沒有,後面我將詳細介紹一下版本的升級問題,那裡我將會說明這個理論。
2、安裝方式 選擇好了安裝發行版,那麼我們就開始安裝了,其實安裝的時候只有幾個需要注意的地方,其一就是分區,其二就是安裝的軟件包。 分區的講究就是你需要針對你的應用來規劃分區,過去看過很多論述linux是否有一個最佳的分區方案,雖然很多人也提出了很多優秀的分區方案,但是我覺得還是需要更具自己的應用作的分區才是最佳的分區,下面各個分區方案,但是純屬建議,還是要更具自己的需要來作。 個人認為,標准的服務器,至少擴常用的分區,因此建議將硬盤劃分為以下的樣子: /boot swap / /var /usr /home /tmp ,大小根據自己的應用來,/不能小於1G,/usr 和 /var都要大一點,因為大部分軟件在裡面,其他幾個更具需要來,說到swap我想關於這個區的大小爭議也比較大,我在綜合了很多朋友的意見後,總結出一條規則,如果你的內存小於1G那麼分為內存的2倍,如果大於1G那麼就分最大2G的swap,這樣做是為什麼呢?因為swap大家都知道,是虛擬內存的空間,小了又不能發揮最好的作用,大了又浪費空間,這個大小是具體的理由就是,內存大的話,那麼應用程序占用的虛擬空間就小,但是為了完全滿足服務器的內存需要,據很多朋友的經驗,還有我切身的體驗,這種分法可以說是一個最佳的方案了,特別對於數據庫等大型應用程序的內存需要來講,而且很多服務器的內存都是1G-2G左右。 安裝軟件包,講究的是安裝得越少越精越好,但是redhat開始安裝的時候,作為一個服務器,下面的幾個軟件包組需要選擇 Networ support(網絡支持) Messaging and web tools(可選擇安裝,一些聯網的工具如ncFTP等) Router/Firewall(防火牆軟件,需要安裝,但是他有一點不好把ipchian,iptables,ipwf等都安裝了,後面將解釋如何刪除) Network managed workstation(管理用工具) Utilities(常用工具,備份工具等) 雖然我們現在安裝是簡單的選擇了這幾個軟件包組,我們在後面的安全設置時將會刪除一些不用的包,這將在後面說。
3、更新軟件 雖然redhat 7.3是更新過的版本,但是其中還有很多軟件包有漏洞,其中最大的漏洞就是2.4.18的一個漏洞,它會導致ext3文件系統崩潰,我就遇到過很幾次(據ext3開發小組稱,這種現象是在特定的操作和條件下才會產生的,一般用戶很少出現這種現象),雖然很多現在已近解決這個問題,但是7.3沒有更新內核的話還是不穩定的,更新有兩種方式,一種時下在更新的軟件包手動的用rpm –Uvh 來更新,另外一種也是我推薦的方式,使用up2date來更新,這可是一個好東西,它能很方便的更新你的系統,而且是更具你安裝的軟件包來更新的,他不會把bind8更新為bind9,不會把redhat 7.3更新到redhat 9.0,這樣就確保了你目前使用的版本的穩定性和完整性,它只是針對這個版本的軟件包進行了修正,版本號一般就是這樣變得,比如iptables ,7.3的rpm 版本是1.2.5那麼更新後就是1.2.8修正了很多漏洞錯誤,但是並沒有作大的調整,確保了你的使用和與應用程序的兼容性。 Up2date的使用,在自動升級之前,建議幾個操作, 第一個,由於redhat 7.3版自帶的up2date有SSL的bug,因此,需要取下在一個最新的up2date來更新,下載地址 https://rhn.redhat.com/errata/RHSA-2003-267.Html 第二個,一般來說,我們都不希望up2date自動更新內核,然後內核的更新直接解決很多重大漏洞,特別是新安裝的redhat 7.3就有ext3崩潰的漏洞因此,我建議大家自己先手工升級內核,當然使用rpm 包來升級,這樣節約很多時間,開始我就說過,雖然redhat不是效率最高的,但是確實做得最普遍的一個系統,rpm的方便就完全體現了這點優勢,redhat 7.3內核的下載地址 http://updates.redhat.com/7.3/en/os/i386/kernel-2.4.20-20.7.i386.rpm http://updates.redhat.com/7.3/en/os/i386/kernel-2.4.20-20.7.i586.rpm http://updates.redhat.com/7.3/en/os/i386/kernel-2.4.20-20.7.i686.rpm 對於你自己的系統,你可以用uname –a看看目前的是i386還是i686然後根據這個來選擇下載的內核升級包。 建議最好使用rpm –ivh 來升級,這樣可以保留原來的內核,確保沒有問題再將原來內核rpm –e掉,這個rpm包非常簡單甚至你不用修改你的lilo.conf或者grub.conf的配置文件,它自動給你加入了,你需要做的就是重起然後選擇新的內核啟動就行了。 做完了內核的升級,用新內核重起後就是up2date的時候了。 運行rhn_register隨便注冊一個號碼(這個要保密哦,我自己研究的,rhn網絡的升級實際上是收費的服務,但是一個郵箱一個賬號是免費的,但是一個賬號只有一個升級系統的權限,你可以通過rhn的網絡來登錄修改這個權限給其他的機器,不過這樣太麻煩了,而且redhat7.3的升級基本上穩定了,只需要在安裝第一次升級一下就行了,所以我們就隨便注冊帳號來升級下:P)根據提示,它默認選擇了你機器上所有的包,為你升級,沒關系,一路next最後finish然後回到控制台,接下來就是激動人心的升級了,運行命令: up2date –u 就開始升級了,這個過程看你的網絡了,大約有1小時左右。 它會自動為你下載安裝,雖然不用重起,但是建議你還是重起一下,確保新內核和新的軟件包能夠正確使用 到此為止,系統更新就做完了,下面就是比較重要的安全設置了。
4、安全設置 其實linux的安全已經比較好了,我們做得初淺的安全討論,無非就是關閉服務,設置一定的防火牆,如果大家對防黑客和高級的安全設置感興趣的話,那麼請關注我下幾篇文章,我將向大家介紹有關簡單的IDS等等防黑技術,謝謝。 關閉不用的服務,這個問題,很多文章都提出過,我個人認為最有效的關閉方法如下,大家都知道,linux中控制服務的有chkconfig ,ntsysv等等,其實這些工具控制的服務都是linux已sysV的風格保存的服務啟動項目,其實都是/etc/rc.d/下面的東西,已rc3.d為例,3表示init3時要做的項目,裡面的文件都是一些連接,S開頭表示啟動,K開頭表示終止,所以rc0.d裡面基本都是K開頭的,所以大家不用害怕覺得linux的服務多麼神秘,這裡介紹兩個簡單可行的控制服務的辦法。 運行ntsysv控制服務 使用ntsysv關閉服務只開 crond 可定義計劃任務 network 網絡 random 生成隨機數,用於ssh的會話對稱密鑰的生成 sshd ssh服務器端 syslog 系統日志服務 xinetd 超級進程(下面沒有服務要用的話,可以關閉) 其實xinetd是類似於init這個超級進程的一個進程,不過可以完全關閉它,因為下面都是些沒有用服務監聽程序,對於一般的服務器,基本上只需要上面ntsysv所列的服務就行了,其他的都關閉,當然如果你要web當然要開httpd了。 服務關閉完了以後,就是去掉一些不用的用戶,用vipw #adm:x:3:4:adm:/var/adm:/sbin/nologin #lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin #sync:x:5:0:sync:/sbin:/bin/sync #news:x:9:13:news:/var/spool/news: #uUCp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin #operator:x:11:0:operator:/root:/sbin/nologin #games:x:12:100:games:/usr/games:/sbin/nologin #gopher:x:13:30:gopher:/var/gopher:/sbin/nologin #ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin #vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin #rpc:x:32:32:Portmapper RPC user:/:/sbin/nologin #rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin #nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin #nscd:x:28:28:NSCD Daemon:/:/bin/false #radvd:x:75:75:radvd user:/:/bin/false 去掉這些用戶 上出多余的rpm包 rpm -e softname rpm -e autofs-3.1.7-28 rpm -e gd-devel-1.8.4-4 rpm -e up2date-2.7.86-7.x.3 rpm -e pump rpm