《鳥哥的Linux私房菜——服務(wù)器架設(shè)篇(第3版)》第一篇服務(wù)器搭建前的進修專區(qū),在本篇服務(wù)器搭建前的進修專區(qū)當(dāng)中,我們會介紹簡單的網(wǎng)絡(luò)基礎(chǔ),包含硬件的選擇與布線、在 Linux 中連上 Internet 的方法,以及在 Linux 發(fā)生無法連接Internet的問題時簡易的查驗方法。本節(jié)為網(wǎng)絡(luò)服務(wù)器成功連接的分析。
1.2 搭建服務(wù)器的基本流程
雖然不同的服務(wù)器提供的服務(wù)并不相同,而且每種服務(wù)的原理也不見得都一樣,不過,每種服務(wù)器由規(guī)劃、搭建到后續(xù)的安全維護,其實整個流程是大同小異的。下面我們就來一項一項地進行分析。
1.2.1 網(wǎng)絡(luò)服務(wù)器成功連接的分析
下面我們就針對整個服務(wù)器的簡易搭建流程來做一個分析,以明確為什么了解操作系統(tǒng)的基礎(chǔ)對于服務(wù)器的維護是相當(dāng)重要的呢?首先,到底我們是如何連接到服務(wù)器的? 連接到服務(wù)器要取得什么資源?我們先以如下圖示(見圖1-1)來做個簡單的說明。
先來理解一下,到底我們連接到服務(wù)器想要得到什么?舉例來說,你連接到 Youtube 想要看視頻,所以對方就提供視頻數(shù)據(jù)流給你;你連接到 Yahoo 想要看新聞,所以對方就提供新聞的文本文件給你;你連接到無名小站想要看圖片,對方將圖片文件發(fā)送給你;你連接到Facebook 想要去偷菜,對方就參考你之前留下來的記錄,從數(shù)據(jù)庫里面將你的記錄檢索出來傳送給你?吹?jīng)]有,你連接到服務(wù)器,重點在取得服務(wù)器上的數(shù)據(jù),而一般數(shù)據(jù)的存在就是使用文件!那你有沒有權(quán)限取得?最終是與該文件系統(tǒng)的設(shè)置有關(guān)啦!

圖1-1 通過網(wǎng)絡(luò)連接至服務(wù)器所需經(jīng)過的各項環(huán)節(jié)
圖1-1顯示的是:首先,客戶端到服務(wù)器的網(wǎng)絡(luò)要能夠連通,等到客戶端訪問到服務(wù)器后,會先由服務(wù)器的防火墻判斷該連接能否放行,等到放行之后才能使用到服務(wù)器軟件的功能。而該功能又需要通過 SELinux 這個細節(jié)權(quán)限配置的項目后,才能夠讀取到文件系統(tǒng)。但能不能讀到具體文件呢?這又跟文件系統(tǒng)的權(quán)限(rwx)有關(guān)!上述的每個部分都要能夠成功,否則就無法順利讀取數(shù)據(jù)。
所以,根據(jù)上面的流程我們大概可以將整個連接分為幾個部分,包括:網(wǎng)絡(luò)、服務(wù)器本身、內(nèi)部防火墻軟件設(shè)置、各項服務(wù)配置文件、細節(jié)權(quán)限的 SELinux 以及最重要的文件權(quán)限。下面就分別來談?wù)劽恳粋部分。
1. 網(wǎng)絡(luò):了解網(wǎng)絡(luò)基礎(chǔ)知識與所需服務(wù)的通信協(xié)議
既然要搭建服務(wù)器,首先當(dāng)然需要了解一下因特網(wǎng)。因為不管是哪種操作系統(tǒng),若想要與因特網(wǎng)連接,首先要求掌握網(wǎng)絡(luò)基礎(chǔ)知識。舉例來說,“子網(wǎng)”是經(jīng)常會談到的概念,當(dāng)你發(fā)現(xiàn)一個配置為 192.168.1.0/255.255.255.0 的項目時,知道那是什么鬼東西嗎? 如果不知道的話,呵呵!絕對無法配置好網(wǎng)絡(luò)服務(wù)的,另外,為何你需要服務(wù)器?當(dāng)然是想要達成某項網(wǎng)絡(luò)服務(wù)。舉例來說,傳輸文件可以用 FTP,那 WWW 可以傳輸文件嗎?網(wǎng)上鄰居可以傳輸嗎?每個網(wǎng)絡(luò)服務(wù)的用途為何?哪個在傳輸文件方面比較方便? 對于客戶或老板來說,我們所搭建的服務(wù)能否滿足他們的需求等等,這都需要了解,否則你將一頭霧水啊!因此這部分你就需要了解:
基本的網(wǎng)絡(luò)基礎(chǔ)知識:包括以太網(wǎng)絡(luò)硬件與協(xié)議、TCP/IP、網(wǎng)絡(luò)連接所需參數(shù)等。
各網(wǎng)絡(luò)服務(wù)所對應(yīng)的通信協(xié)議的工作原理,以及實現(xiàn)各通信協(xié)議的具體應(yīng)用程序。
2. 服務(wù)器本身:了解搭建網(wǎng)絡(luò)服務(wù)器的目的以配合主機的安裝規(guī)劃
想要搭建服務(wù)器嗎?那...搭建什么樣的服務(wù)器?這個服務(wù)器要不要對 Internet 開放?這個服務(wù)要不要對客戶提供訪問賬號?要不要針對不同的訪問賬號進行,例如磁盤容量、可用空間與可用系統(tǒng)資源進行限制?如果要進行各項資源的限制,那服務(wù)器操作系統(tǒng)應(yīng)該要如何安裝與設(shè)置?問題很多吧!所以,只有首先了解你所需要搭建服務(wù)器的各項預(yù)期功能之后,后續(xù)的規(guī)劃才能陸續(xù)出爐。不過,如果配置服務(wù)器只是為了“練功”而已,呵呵!那就不需要考慮太多了。
3. 服務(wù)器本身:了解操作系統(tǒng)的基本操作
網(wǎng)絡(luò)服務(wù)軟件是需要運行在操作系統(tǒng)上面的,所以需要對操作系統(tǒng)基本的管理與操作技術(shù)有一個掌握!包括軟件如何安裝與刪除,如何管理系統(tǒng)的計劃任務(wù),如何根據(jù)服務(wù)器的服務(wù)目的規(guī)劃文件系統(tǒng),如何讓文件系統(tǒng)具有可擴展性(LVM 之類),系統(tǒng)如何管理各項服務(wù)的啟動,系統(tǒng)的開機流程是什么,系統(tǒng)出錯時,該如何進行快速復(fù)原等,這些都是需要了解的。
4. 內(nèi)部防火墻設(shè)置:管理系統(tǒng)的可共享資源
一臺主機可以允許多種服務(wù)器軟件同時運行其中,而很多 Linux distributions 出廠的默認值就已經(jīng)開放了很多服務(wù)給 Internet 使用了,不過這些服務(wù)可能并不是你想要開放的。我們在了解網(wǎng)絡(luò)基礎(chǔ)與所需服務(wù)的預(yù)期目的之后,接下來就是通過防火墻來規(guī)范可以使用本服務(wù)器服務(wù)的用戶,以讓系統(tǒng)在使用上擁有較佳的可控環(huán)境。此外,不管你的防火墻系統(tǒng)設(shè)置的再怎么嚴(yán)格,只要是你要開放的服務(wù),那防火墻對于該服務(wù)就沒有保護的效果。因此,在線更新軟件機制就一定要定期進行!否則你的系統(tǒng)將會非常的不安全!
5. 服務(wù)器軟件設(shè)置:學(xué)習(xí)設(shè)置技巧與開機是否自動執(zhí)行
剛剛第一點就提到我們需要知道每種服務(wù)所能實現(xiàn)的功能,如此一來才能夠搭建你所需要的服務(wù)站點。那你所需要的服務(wù)是由哪個軟件實現(xiàn)的?同一個服務(wù)可否有不同的實現(xiàn)軟件?每種軟件可以實現(xiàn)的目的是否相同?依據(jù)所需要的功能如何設(shè)置你的服務(wù)器軟件?搭建過程中如果出現(xiàn)錯誤,你該如何觀察與排錯?可否定期地分析服務(wù)器相關(guān)的登錄信息,以方便了解該服務(wù)器的使用情況與錯誤發(fā)生的原因?能否通知多個用戶進行連接測試,以取得較佳的服務(wù)器配置值?所以這里你可能就需要知道:
軟件如何安裝;如何查詢相關(guān)配置文件所在位置。
服務(wù)器軟件如何設(shè)置。
服務(wù)器軟件如何啟動;如何設(shè)置自動開機啟動;如何觀察啟動的端口。
服務(wù)器軟件激活失敗如何排錯;如何查看日志;如何通過日志進行除錯。
通過客戶端進行連接測試,如果失敗該如何處理?連接失敗的原因是服務(wù)器還是防火墻。
服務(wù)器的設(shè)置修改是否有相關(guān)的日志;相關(guān)日志是否要定期分析。
服務(wù)器所提供或共享的數(shù)據(jù)有無定期備份;如何定期自動備份或遠程備份。
6. 細節(jié)權(quán)限設(shè)置:包括 SELinux 與文件權(quán)限
等到你的服務(wù)器全部設(shè)置妥當(dāng),最后你所提供的文件數(shù)據(jù)權(quán)限卻是給了“000”的權(quán)限值,那鳥哥很肯定地說,大家都無法讀到你所提供的數(shù)據(jù)!此外,新的 distributions 都建議你要啟動 SELinux,SELinux是什么呢?如果你的數(shù)據(jù)放置于非正規(guī)的目錄,那該如何處理 SELinux 的問題?又如何讓文件具有保密性或共享性(文件權(quán)限概念與 ACL 等)等,這也都是需要厘清觀念的。
在上述的服務(wù)器搭建流程中,其實除了第 5 點之外,其他步驟在各種服務(wù)器的設(shè)置過程中都需要了解。而且都是一樣的內(nèi)容。因此,這些基礎(chǔ)如果學(xué)會了,最終,你只要知道第 5 點里面那個軟件的基本設(shè)置,你的服務(wù)器一下子就可以設(shè)置完成了。所以說,基礎(chǔ)學(xué)習(xí)很重要。