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