有關(guān)服務(wù)器管理和維護過程中的一些注意事項,都是筆者的經(jīng)驗之談,相信對新手會有一定的啟發(fā)和幫助。
很多初學(xué)者接觸 Linux 時間不長,還未完整地學(xué)習(xí)一遍 Linux,理解本節(jié)內(nèi)容可能有些困難,可以先跳過本節(jié),閱讀完整套教程后再回過頭來閱讀。
遠(yuǎn)程服務(wù)器關(guān)機及重啟時的注意事項
為什么遠(yuǎn)程服務(wù)器不能關(guān)機?原因很簡單,遠(yuǎn)程服務(wù)器沒有放置在本地,關(guān)機后誰幫你按開機電源鍵啟動服務(wù)器?雖然計算機技術(shù)曰新月異,但是像插入電源和開機這樣的工作還是需要手工進行的。如果服務(wù)器在遠(yuǎn)程,一旦關(guān)機,就只能求助托管機房的管理人員幫你開機了。
遠(yuǎn)程服務(wù)器重啟時需要注意兩點。
1) 遠(yuǎn)程服務(wù)器在重啟前,要中止正在執(zhí)行的服務(wù)計算機的硬盤最怕在高速存儲時斷電或重啟,非常容易造成硬盤損壞。所以,在重啟前先中止你的服務(wù),甚至可以考慮暫時斷開對外提供服務(wù)的網(wǎng)絡(luò)。
可能你會覺得服務(wù)器有這么嬌貴嗎?我的筆記本電腦經(jīng)常強行關(guān)機,也沒有發(fā)現(xiàn)硬盤損壞?。窟@是因為你的個人計算機沒有很多人訪問,強制斷電時硬盤并沒有進行數(shù)據(jù)交換。小心駛得萬年船!
2) 重啟命令的選用
Linux 可以識別的重啟命令有很多條,但是建議大家使用 "shutdown-r now" 命令重啟。這條命令在重啟時會正常保存和中止服務(wù)器中正在運行的程序,是安全命令。
最好在重啟前執(zhí)行幾次 "sync" 命令,這條命令是數(shù)據(jù)同步命令,可以讓暫時保存在內(nèi)存中的數(shù)據(jù)同步到硬盤上。
重啟和關(guān)機也是服務(wù)器需要注意的操作規(guī)范,不正確的重啟和關(guān)機造成服務(wù)器故障的不在少數(shù)。
不要在服務(wù)器訪問高峰運行高負(fù)載命令
在服務(wù)器訪問高峰,如果使用一些對服務(wù)器壓力較大的命令,有可能會造成服務(wù)器響應(yīng)緩慢甚至死機。
哪些命令是高負(fù)載命令呢?如果大家使用過 Windows 操作系統(tǒng),則也會留意一些操作會給計算機帶來較大的運算壓力,道理都是一樣的,如復(fù)制大量的數(shù)據(jù)、壓縮或者解壓縮大文件、大范圍的硬盤搜索等。
服務(wù)器的訪問高峰期一般認(rèn)為是在 17:00-24:00。當(dāng)然,每臺服務(wù)器具體提供的服務(wù)不同,訪問高峰期有時也會有所出入。比如,服務(wù)器主要是供美國人民訪問的,那就要考慮時差的問題;或者服務(wù)器提供的服務(wù)很特殊,訪問高峰期可能也不同。
高負(fù)載命令一般建議在凌晨的 4:00-5:00 執(zhí)行。那么,是不是說我們需要在凌晨上班?當(dāng)然不是,這誰受得了啊?我們可以使用系統(tǒng)的計劃任務(wù),讓操作自動在指定的時間段執(zhí)行。
遠(yuǎn)程配置防火墻時不要把自己踢出服務(wù)器
防火墻是指將內(nèi)網(wǎng)和外網(wǎng)分開,并依照數(shù)據(jù)包的 IP 地址、端口號和數(shù)據(jù)包中的數(shù)據(jù)來判斷是否允許數(shù)據(jù)包通過的網(wǎng)絡(luò)設(shè)備。
防火墻可以是硬件防火墻設(shè)備,也可以是服務(wù)器上安裝的防火墻軟件。
簡單來講,防火墻就是根據(jù)數(shù)據(jù)包自身的參數(shù)來判斷是否允許數(shù)據(jù)包通過的網(wǎng)絡(luò)設(shè)備。我們的服務(wù)器要想在公網(wǎng)中安全地使用,就需要使用防火墻過濾有害的數(shù)據(jù)包。
但在配置防火墻時,如果管理員對防火墻不是很熟悉,就有可能把自己的正常訪問數(shù)據(jù)包和有害數(shù)據(jù)包全部過濾掉,導(dǎo)致自己也無法正常登錄服務(wù)器。比如說,防火墻關(guān)閉了遠(yuǎn)程連接的 SSH 服務(wù)的端口。
防火墻配置完全是靠手工命令完成的,配置規(guī)則和配置命令相對也比較復(fù)雜,萬一設(shè)置的時候心不在焉,悲劇就發(fā)生了。如何避免這種趟尬的情況發(fā)生呢?
最好的方法當(dāng)然是在服務(wù)器本地配置防火墻,這樣就算不小視自己的遠(yuǎn)程登錄給過濾了,還可以通過本機登錄來進行恢復(fù)。如果服務(wù)器已經(jīng)在遠(yuǎn)程登錄了,要配置防火墻,那么最好在本地測試完善后再進行上傳,這樣會把發(fā)生故障的概率降到最低。
雖然在本地測試好了,但是傳到遠(yuǎn)程服務(wù)器上時仍有可能發(fā)生問題。于是筆者想到一個笨辦法,如果需要遠(yuǎn)程配置防火墻,那么先寫一個系統(tǒng)定時任務(wù),讓它每 5 分鐘清空一下防火墻規(guī)則,就算寫錯了也還有反悔的機會,等測試沒有問題了再刪除這個系統(tǒng)定時任務(wù)。
總之,大家可以使用各種方法,只要留意不要在配置防火墻時把自己踢出服務(wù)器就好了。
指定合理的密碼規(guī)范并定期更新
除了前面給大家介紹設(shè)置密碼需要遵守復(fù)雜性、易記憶和時效性的三原則外,還需要注意密碼的保存。
日常使用的密碼,我們最簡單的原則是寫下來。服務(wù)器可能有很多,不可能所有的服務(wù)器都使用同樣的密碼,最好每臺服務(wù)器的密碼都不盡相同(但是在實際的工作中也不現(xiàn)實)。一般的做法是給服務(wù)器分類,每類服務(wù)器的密碼一致,這樣可以有效地減少密碼的數(shù)量。但是在有大量服務(wù)器的情況下,密碼的數(shù)量還是很可怕的。
比如,當(dāng)年筆者從事游戲運維的時候,有超過 2000 臺服務(wù)器,再加上交換機和路由器等網(wǎng)絡(luò)設(shè)備,雖然采用了每類服務(wù)器相同密碼的方法,但是密碼的總數(shù)量還是超過了 100 個……這時把密碼一次性記憶下來基本上是一項不可能完成的任務(wù)。那么,該如何保存這些密碼呢?只能通過文檔來保存了,當(dāng)然這些文檔不能是明文保存的,而是要加密的。
總之,合理的密碼還要有合適的保存方式,這些在構(gòu)建服務(wù)器架構(gòu)的時候都是必須考慮的內(nèi)容。
合理分配權(quán)限
管理服務(wù)器要遵守一個最基本的原則,“給予用戶最小的權(quán)限”。
初次接觸服務(wù)器的人會很迷惑,我們所有同事都使用管理員 root 賬戶登錄多好,省得還要學(xué)習(xí)如何添加用戶、設(shè)置權(quán)限。這樣操作,如果是對個人計算機來講問題不大,如日常使用的 Windows 桌面系統(tǒng),但如果是服務(wù)器,就會出現(xiàn)重大的安全隱患。
在實際的工作中,因為給內(nèi)部員工分配的權(quán)限不合理而導(dǎo)致數(shù)據(jù)泄密甚至觸犯法律的情況屢見不鮮。所以,在服務(wù)器上,合理的權(quán)限規(guī)劃必不可少!而且就算只有你是這臺服務(wù)器的 root,我們也建議在管理服務(wù)器時,能使用普通用戶完成的操作都使用普通用戶,確實完成不了的操作要么進行授權(quán),要么再切換到 root 執(zhí)行。因為 Linux 上的 root 用戶權(quán)限實在過大,一旦誤操作,后果是嚴(yán)重的,下場是慘淡的。
在實際的工作中,越是重要的服務(wù)器,對權(quán)限的管理越嚴(yán)格。原則上,在能夠完成工作的前提下,分配的權(quán)限越小越安全。當(dāng)然,權(quán)限越小,你需要做的規(guī)劃和權(quán)限分配任務(wù)就越多,但是服務(wù)器也越可靠。
定期備份重要數(shù)據(jù)和日志
沒有備份的服務(wù)器,就是在作死!
我身邊有很多人,手機壞了或丟了,通訊錄就沒了;自己電腦的硬盤壞了,上面的資料就再也找不到了,一點備份的意識也沒有。個人的損失往往可以承受,但是公司服務(wù)器的損失可能會非常驚人。
有的人知道備份重要,但是因為懶情或忘記,結(jié)果后悔莫及。很多事情都是知易行難的,備份來不得半點僥幸心理。如果公司的主要盈利項目是在互聯(lián)網(wǎng)上的業(yè)務(wù),那么數(shù)據(jù)的丟失就有可能造成公司的直接利益損失。