小公司Linux伺服器維護更新實踐
當負責管理的人員無法分配大量時間來測試每個更新的軟體包是否損壞時,面向 Web 的伺服器的安全更新計劃是什麼?當然,出於安全原因,我想定期更新 LAMP 堆棧,但我不需要最新的 Java 更新檔破壞 Solr,或最新的 PHP 更新檔以不明顯的方式破壞腳本。我確實知道要警惕 PHP 點發布,但對於 Java,我不太自信。現在我們的伺服器是基於 Debian 的(Ubuntu Server LTS),但由於 Yum 的回滾功能,我正在考慮切換到基於 Red-hat 的(CentOS)。
我的擔心沒有根據嗎?請注意,這是一家小公司,我們剛剛聘請了第四名員工。因此,除了作為軟體開發人員的職責之外,我的任務還包括維護越來越多的硬體,包括公共網路伺服器。網路伺服器上沒有敏感數據,利用漏洞可能發生的最壞情況是有人會破壞我們的網站,這也是我們的產品(通過公共 API 的 SaaS)。
選擇一個“供企業使用”的 Linux 發行版,只安裝其工作所需的包(額外的包意味著額外的易受攻擊的表面),除非嚴格要求,否則不要安裝任何“非官方包”(然後只為穩定性和上游考慮仔細考慮過的包)對安全問題的響應能力,以及不踐踏分發包的跟踪記錄/承諾),謹慎配置(本地防火牆規則,任何本地配置)。根據需要創建本地帳戶,為他們提供安全密碼。採用
root
機器上盡可能少。為選定的使用者設置無密碼 SSH。不要按照網上的許多建議“關閉 SELinux”,SELinux 能夠提供更多的安全性。使用它,如果一個包不能與 SElinux 一起使用,它就壞了,不應該被使用。訂閱發行版的軟體包更新公告,至少盡快更新安全更新(不是“每月一次”,至少每天檢查一次)。定期查看LWN的安全頁面。
無論機器將提供什麼服務,請在您的發行版提供的內容中謹慎選擇要執行此操作的軟體包。可能是整體上最好的更難使用……這裡有一些關於選擇/評估軟體的想法。
尋找要提供的服務的“最佳實踐”,特別是針對您安裝的配置建議。檢查線上文件是否完整、清晰且可搜尋。看看是否有報告錯誤的方法,檢查隨機選擇的錯誤以查看它們的響應速度。尋找線上問答網站、常見問題解答、郵件列表(如果遇到麻煩,您想知道可以問誰)。
設計一個全面的備份方案,遲早你將不得不依靠它。記錄安裝(或者更好的是,設置自動安裝並保持最新),機器可能會發生不合時宜的事情。確保你也有“舊”備份(一些不法之徒可能會接管機器,幾個月後你會發現……)。
考慮聘請一些專門從事您想要設置的極客,只需確保 (a) 讓他們近在咫尺,並且 (b) 您對設置有足夠的了解,能夠在大多數情況下應付自如,並且 (c ) 確保您通過了公共汽車測試(即,如果您被公共汽車碾過,周圍的其他人可以接管)。
設置一台具有相同作業系統的機器供個人使用,在遇到危機時熟悉故障系統非常有用(甚至手頭有備用;-)。這將是一份兼職工作,就像“它只需要我 95% 的時間”,除非你花時間組織任務以盡量減少意外(或者你最終成為 24/7 全天候呼叫的消防隊)。
就我個人而言,我會使用Red Hat Enterprise Linux或像CentOS這樣的複製,也許會補充EPEL。但這只是我,95 年左右的 Red Hat 使用者,最近的Fedora粉絲。