?? 熟悉linux系統安全和優化(上).txt
字號:
作者:hansome
email: hansome@chinaasp.com
日期:8/30/2001 9:33:01 AM
第一章:介紹Linux
什么是Linux?
Linux是一個操作系統。最初它是由在芬蘭赫爾辛基大學念書的Linus Torvalds作為一種業余愛好開發出來的。Linus對用于教學的一種小型的Unix操作系統-Minix很感興趣,決定開發出超過Minix的操作系統。在1991年,他開始Linux的開發,那時候的Linux是0.02版。到了1994年,Linux內核的1.0版發布了。現在穩定的Linux內核版本是2.2版,開發工作還在繼續進行。
Linux的開發是遵循GPL的,它的源代碼任何人都可以免費獲得。但是這并不是說Linux以及Linux的發行版本是免費的。只要源代碼保持公開,開發人員是可以要求獲得適當的報酬。Linux可以用在很多方面,包括:網絡、軟件開發和桌面平臺。Linux常被認為是其它昂貴的操作系統的替代品。
因為Linux操作系統的穩定和健壯,以及很容易得到,它在世界上越來越流行。成千上萬的程序員在根據自己的需要利用Linux的源代碼。現在,有很多正在進行中的項目嘗試著把Linux移植到不同的硬件平臺上,或把Linux用于其它的用途。
為什么要用Linux
首先,它是免費的。盡管Linus Torvalds擁有Linux的商標。Linux的內核和相關的軟件是遵循GPL的。這意味著你可以更改源代碼,并靠買程序獲利,但是最初的作者擁有版權而且你必須公布修改過的源代碼。
盡管Linux在基于Intel平臺的計算機上最流行,但是相對其它操作系統,它可以運行在更多的CPU和硬件平臺上。其原因是:除了擁有很多天才的開發人員之外,Linux是帶著源代碼一起發行的,而且它的內核是可移植的。
現在軟件和硬件行業的趨勢是讓用戶去買更快的計算機,不斷地擴充內存和增加硬盤空間。Linux并不受這些“增肥”趨勢的影響,它甚至可以在內存不是很多的486計算機上運行得很好。
Linux很少死機,你可以停止那些有問題的進程,而讓操作系統正常地運行下去。而且,Linux用的是最先進的內存管理技術,不會讓你的操作系統失去控制,也根本不要經常重啟操作系統。
如果需要安裝的是一個服務器操作系統,那么Linux是有很多優勢的,特別是比起其它操作系統,如Windows 2000,要便宜得多了。還有一個優點是:Linux幾乎不受病毒的攻擊。因為遵循GPL和開放源代碼,基本上你可以獲得操作系統以及操作系統上所有軟件的源代碼。
讓我們排除對使用Linux的一些害怕和疑慮
Linux不過是一個象玩具一樣的操作系統
Linux正被越來越多的Fortune 5000的企業、政府部門和消費者所采用。不信的話,去問一問IBM、Compaq、Dell、Apple Computer、Burlington Coast Factory、Amtrak、Virginia Power、NASA或成百上千萬的Linux用戶吧。
Linux沒有技術支持
盡管有不少人認為Linux是沒有技術支持的操作系統,但是每個Linux的發行版都提供12,000多頁的文檔。Linux的商業發行版,例如:RedHat Linux、Caldera、SuSE 和OpenLinux給注冊用戶提供安裝支持,小企業和公司可以得到一些商業技術支持公司的服務支持。作為一個開放源代碼的操作系統,你可以得到Linux的全部源代碼。如果你遇到一些問題而且自己有解決問題的能力,就自己解決吧!不用為了得到技術支持等上很長的時間,許多嚴重的問題(如系統安全問題)可以在Internet上的Linux社團的幫助下幾個小時內解決。
第二章:安裝Linux服務器
了解你的硬件環境
了解硬件環境是成功安裝RedHat Linux的關鍵。因此,必須用一些時間熟悉一下自己的硬件環境。準備好回答如下的問題:
1. 計算機上有幾個硬盤?
2. 每個硬盤的大小?
3. 如果有兩個以上的硬盤,哪一個是主盤?
4. 內存有多大?
5. 計算機上有SCSI卡嗎?如果有,型號是什么?由哪家公司生產的?
6. 鼠標是什么類型的(串口,還是PS/2)?
7. 鼠標有幾個鍵?
8. 如果是串口鼠標,那么連在哪個串口上?
9. 顯卡的產商和型號,有多少顯存?
10. 顯示器的產商和型號?
11. 如果想把計算機連接到網絡上,請再注意下面幾個問題:
a) 計算機的IP地址?
b) 網絡掩碼?
c) 網關地址?
d) 域名服務器的地址?
e) 域名?
f) 主機名?
g) 網卡型號和廠商?
創建啟動盤,引導Linux
如果你安裝過很多次Linux,結果都失敗了,那么可能需要一個修正過的軟盤鏡像。在這種情況下,可以去RedHat Linux的勘誤網站去下載特殊的軟盤鏡像。
因為這是很少見的情況,應該盡可能地先試一下標準的安裝軟盤,只有在實在不能完成安裝的情況下,才有必要去勘誤網站看看。RedHat 6.1的光盤可以從光驅直接啟動。如果你的計算機不支持直接啟動,那么也可以在MS-DOS下創建啟動盤,請用下面的命令(假定CD-ROM的盤符是d:,里面放的是RedHat Linux 6.1的光盤):
在windows下打開MS-DOS方式(開始 | 程序 | MS-DOS方式):
C:$#@62; d:
D:$#@62; cd dosutils
D:dosutils$#@62; rawrite
Enter disk image source file name: ..imagesoot.img
Enter target diskette drive: a:
Please insert a formatted diskette into drive A: and press --ENTER-- :
D:dosutils$#@62;
當rawrite.exe要求輸入軟盤鏡像的時候,輸入完整的boot.img的路徑名,把軟盤插入A驅。當程序問你把鏡像寫入哪個軟盤驅動器的時候,輸入a:。
RedHat Linux的勘誤網站是:http://www.redhat.com/errata。
因為我們不從CD-ROM啟動,而從軟盤啟動安裝,所以把軟盤插入A:驅,然后重新啟動計算機。當出現boot:的時候,按下回車鍵,繼續引導。
* 選擇語言
* 選擇鍵盤類型
* 選擇鼠標類型
安裝類型和方法
RedHat Linux 6.1有以下幾種安裝類型:
* GNOME工作站
* KDE工作站
* 服務器
* 自定義
有些安裝類型(GNOME工作站、KDE工作站和服務器),簡化了安裝過程,但是失去了很多靈活性。
因此,我們建議你選擇“自定義”安裝,這樣你可以選擇安裝什么服務器軟件以及如何劃分你的硬盤。我們的目標是安裝盡可能少的軟件,以保證系統的高效率。而且,安裝的軟件越少,安全漏洞也就越少。
選擇“Custom”,繼續安裝。
創建分區
警告
我們強烈建議在分區之前,先備份你當前的系統。為了保證系統高效、穩定和安全,我們還建議你象下面介紹的那樣分區。我們這樣分區是假定你要配置一個Web和Proxy服務器。
之所以在分區中有兩個特殊的“/chroot”和“/cache”分區是因為:“/chroot”分區是為DNS服務器、Apache服務器和其它需要改變根目錄的(chrooted)服務器準備的;“/cache”分區是為Squid Proxy服務器準備的。如果你不打算安裝Squid Proxy服務器,那么不必創建“/cache”分區,但是請注意:Squid+Apache的結合會把服務器的性能和安全提高很多。
如果想讓數量比較多的用戶訪問你的服務器,必須把“/tmp”和“/home”放在不同的分區上,這幾乎是強制的。這樣做可以避免分區被一些用戶文件填滿。把“/var”和“/usr”放在不同的分區也是一個好主意。使“/var”和其它分區分開也可以避免分區被填滿。
在我們的分區安排中,特別保留了400MB的磁盤空間給改變根目錄的(chrooted)程序,比如:Apache、DNS以及其它軟件。這是必須的,因為Apache的DocumentRoot文件和其它可執行的程序都會被安裝在這個分區上。注意:Apache chrooted目錄在“/chroot”分區上的大小是和“DocumentRoot”文件的大小成正比的。如果不準備安裝和使用Apache,可以把分區大小減小到10M,這10M是DNS服務器所必需的。
最小的分區要求
下面是Linux能夠正常運行的最小分區要求。這樣的分區安排甚至可以適用于只有512MB硬盤的老式486計算機機。當然,這種分區安排只是一個建議。
/ 35MB
/boot 5MB
/chroot 10MB
/home 100MB
/tmp 30MB
/usr 232MB
/var 25MB
Disk Druid分區工具
Disk Druid是RedHat Linux帶的一個分區工具。選擇“Add”添加新的分區,“Edit”改變分區,“Delete"刪除分區,“Reset”恢復原來的分區狀態。在添加一個新分區的時候,會出現一個窗口,要求你添上有關這個分區的一些必要的信息。要求添的信息是:
* Mount Point: 分區裝載(mount)的目錄
* Size: 分區的大小,以兆為單位
* Partition Type: 分區類型。Linux的文件系統要使用Linux native類型的分區,Linux交換分區請用Linux Swap類型。
如果你有一個SCSI硬盤,那么這個設備的名稱將是“/dev/sda”;如果你有一個IDE硬盤,那么這個設備名稱將是“/dev/hda”。如果很在意系統的高性能和穩定性,我們建議你用SCSI硬盤。
Linux分區的命名方式是字母和數字相結合的,這種命名方式很靈活也很直觀。下面是一個小小的總結:
* 前兩個字母:前兩個字母表示設備類型,“hd”代表IDE硬盤,“sd”表示SCSI硬盤
* 第三個字母:這個字母是說明具體的設備。例如:“/dev/hda”表示第一個IDE硬盤;“/dev/hdb”表示第二個IDE硬盤。
請記住這些,這樣給Linux分區的時候,會覺得容易一些也不會混淆。
交換分區
交換分區是用于虛擬內存的。如果計算機的內存少于16M,你必須創建交換分區。即使有更多的內存,我們還是建議你建立交換分區。交換分區最小必須等于計算機的內存,如果內存多于16M,最小只要16M就行了。交換分區最大大約為1GB,(Linux 2.2內核現在可以支持1GB的交換文件,如果多于1GB就是浪費)。注意:可以創建多于一個的交換分區,盡管只有在安裝大型服務器的時候才有這個必要。盡量把交換分區放在硬盤驅動器的起始位置,因為一個磁盤的起始位置在物理上是在最外的柱面上,所以磁頭每轉一圈可以覆蓋更大的面積。
下面是一個例子,教你怎么建立分區(這樣的分區安排是安裝我們在書中介紹的服務器所需要的),下面的例子是用Disk Druid的命令:
Add
Mount Point: /boot our /boot directory
Size (Megs): 5
Partition Type: Linux Native
Ok
Add
Mount Point: /usr our /usr directory.
Size (Megs): 1000
Partition Type: Linux Native
Ok
Add
Mount Point: /home our /home directory.
Size (Megs): 500
Partition Type: Linux Native
Ok
Add
Mount Point: /chroot our /chroot directory.
Size (Megs): 400
Partition Type: Linux Native
Ok
Add
Mount Point: /cache our /cache directory.
Size (Megs): 400
Partition Type: Linux Native
Ok
Add
Mount Point: /var our /var directory.
Size (Megs): 200
Partition Type: Linux Native
Ok
Add
Mount Point: our /Swap partition (leave the Mount Point Blank).
Size (Megs): 150
Partition Type: Linux Swap
Ok
Add
Mount Point: /tmp our /tmp directory.
Size (Megs): 100
Partition Type: Linux Native
Ok
Add
Mount Point: / our / directory.
Size (Megs): 316
Partition Type: Linux Native
Ok
分區完畢之后,你可以在屏幕上看到類似的信息:
Mount Point Device Requested Actual Type
/boot sda1 5M 5M Linux Native
/usr sda5 1000M 1000M Linux Native
/home sda6 500M 500M Linux Native
/chroot sda7 400M 400M Linux Native
/cache sda8 400M 400M Linux Native
/var sda9 200M 200M Linux Native
Swap sda10 150M 150M Linux Swap
/tmp sda11 100M 100M Linux Native
/ sda12 316M 315M Linux Native
Drive Geom [C/H/S] Total (M) Free (M) Used (M) Used (%)
sda [3079/64/32] 3079M 1M 3078M 99%
現在,選擇“Next”繼續安裝。分區創建完之后,安裝程序會讓你格式化分區。選擇想要格式化的分區,選中“Check for bad blocks during format”選擇框,按“Next”繼續。這樣就開始格式化分區,并且激活分區。Linux就可以使用這個分區了。
下一步如果選擇安裝LILO,你會看到LILO的配置。可以選擇把LILO裝在主引導扇區(MBR),或引導分區的第一個扇區。
在通常情況下,應該選擇把LILO安裝在主引導扇區。(如果你的計算機上裝有NT,或一些多重引導程序,如System Command,你最好仔細看一遍LILO-HOWTO,以免不必要的損失)。然后,開始配置網絡和時鐘。接著,要輸入root口令和進行安全驗證的配置。不要忘了選上:
* Enable MD5 passwords
* Enable MD5 passwords
沒有必要選擇Enable NIS,因為我們不在這臺服務器上安裝NIS服務。
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -