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