互聯(lián)網時代的到來對企業(yè)的經營方式產生了深遠的影響。如果大多數(shù)公司想要保持相關性和競爭力,那么維持在線形象就不再是可選的了。現(xiàn)有和潛在客戶使用 Internet 進行購買、管理他們的帳戶、研究產品等等。這樣做的好處是無法估量的,但它并非沒有黑暗的一面——黑客。由于您的網站和在線聲譽如此之多,因此確保您的服務器安全絕對至關重要。
安全專業(yè)人員的整個職業(yè)生涯都致力于跟上在線威脅不斷發(fā)展的本質,而全球公司擁有擁有大量資源的完整團隊,致力于確保其在線資產的安全。承擔保護服務器安全的工作似乎是一項艱巨的任務,但我們隨時為您提供幫助!我們已經確定了一些關鍵做法,這些做法可以保護您的服務器,足以抵御絕大多數(shù)攻擊,并勸阻除最精英黑客之外的所有人。使用這些方法來保護您的服務器并不需要大量的系統(tǒng)管理能力,但如果您愿意將其交給我們有能力的人 ,請查看我們的管理計劃和SecureServer+服務。
躲在防火墻后面
任何安全環(huán)境的第一道防線都是防火墻。有幾種防火墻可供選擇,但它們通常都具有相同的基本功能。防火墻是駐留在互聯(lián)網和服務器上任何面向網絡的服務之間的應用程序或物理設備。它充當網絡流量的看門人,使用一組規(guī)則過濾入站和出站連接。然而,防火墻的好壞取決于它使用的規(guī)則。配置良好的防火墻可以過濾掉絕大多數(shù)惡意連接,而配置不當?shù)姆阑饓t效率低下。
第一個決定是硬件還是軟件。大多數(shù)現(xiàn)代操作系統(tǒng)都帶有內置的軟件防火墻應用程序,這通常就足夠了。專用設備,也稱為硬件防火墻,通常用于多服務器環(huán)境的前面,為防火墻管理提供單點。
無論您最終使用哪種類型的防火墻,下一步都是定義一套好的規(guī)則。配置防火墻時的第 1 條規(guī)則,尤其是遠程配置時,要非常小心,不要通過阻止您用于訪問防火墻的連接來鎖定自己。如果您不小心阻止了自己的連接(通常是物理控制臺或帶外控制臺解決方案(如 IPMI、ILO 或 DRAC),那么使用備用訪問方法來更改防火墻規(guī)則始終是一個好習慣。
首先考慮您的服務器提供哪些服務。網絡服務利用特定端口來幫助區(qū)分連接類型。將它們想象成一條非常寬的高速公路上的車道,帶有分隔線以防止有人改變車道。例如,Web 服務器通常將端口 80 用于標準連接,將端口 443 用于使用 SSL 證書保護的連接。這些服務可以配置為使用非標準端口,因此請務必驗證您的服務正在使用哪些端口。
接下來,確定您將如何遠程管理您的服務器。在 Windows 上,這通常通過 RDP(遠程桌面協(xié)議)完成,而在 Linux 上,您可能會使用 SSH(安全外殼)。理想情況下,您將希望阻止對除少數(shù) IP 或小子網之外的所有 IP 或小子網的管理端口的訪問,以限制組織內任何人對這些協(xié)議的訪問。例如,如果您是 Linux 服務器的唯一管理員,請打開 SSH 端口(通常為 22)以僅來自您計算機的靜態(tài) IP 地址的連接。如果您沒有靜態(tài) IP 地址,您通常可以確定一個子網,您將從該子網中分配一個 IP。雖然將一系列 IP 列入白名單并不理想,但它比將該端口開放給整個互聯(lián)網要好得多。
要生成一組可靠的規(guī)則,請阻止來自所有 IP 的所有端口,然后創(chuàng)建特定規(guī)則以打開您的服務和管理所需的端口——記住不要將自己鎖定在外。為您的服務打開的端口通常應從所有 IP 開放,但如上所述限制管理端口。
雖然防火墻不應該是您唯一的防線,但創(chuàng)建一組合理的防火墻規(guī)則是增強服務器安全性的一個很好的起點。事實上,任何服務器都不應該沒有基本的防火墻配置。
身份驗證和密碼
增強服務器安全性的最簡單方法之一就是強制執(zhí)行強身份驗證策略。您的服務器僅與密碼最弱的帳戶一樣安全。對于在服務器上使用的任何密碼,請遵循良好的密碼準則,例如確保您的密碼長度足夠,而不是字典單詞,并且不要用于其他本身可能會受到損害并泄露您的密碼的服務。雖然您可以通過良好的防火墻配置限制對服務器的遠程訪問,但仍有一些漏洞可用于通過在開放網絡端口上運行的受損或未修補服務向系統(tǒng)發(fā)送命令。
在許多情況下,完全沒有密碼是可能的(而且更方便)!如果您訪問服務器的主要方法是通過 SSH,您可以在服務器的 SSH 配置文件中禁用密碼驗證,而是使用一對公鑰和私鑰來授權您的連接。
請記住,如果您需要能夠隨時從任何地方登錄到您的服務器,則此方法可能不太方便,因為您需要將您的私鑰添加到您正在連接的任何新系統(tǒng)。此外,雖然這種方法使遠程連接的安全性提高了一個數(shù)量級,但請不要忘記在您的帳戶上設置一個強密碼。黑客有時能夠以其他方式訪問系統(tǒng),并且您不希望擁有一個由“1234”之類的密碼保護的具有高級訪問權限的帳戶。
如今,兩因素身份驗證 (2FA) 變得非常流行。使用 2FA 時,用戶不僅需要使用密碼進行身份驗證,還需要提供一次性使用代碼,發(fā)送到之前注冊的電子郵件地址或移動設備,以進一步驗證其身份。可以通過第三方服務或使用啟用 2FA 的帳戶(如 Google 或 Microsoft)在您的服務器上實施類似的操作。cPanel\WHM 現(xiàn)在支持雙重身份驗證,因此如果您將此控制面板用作服務器管理的主要方式,這可能是您的一個選項。
蠻力保護
服務器上常見的攻擊向量是蠻力攻擊。這些是使用猜測的用戶名和密碼進行的遠程登錄嘗試,一遍又一遍地重復,只要服務器和網絡允許的話。在不受保護的情況下,每天可能會進行數(shù)十萬次嘗試——足以在一個月內破解任何 8 個字符的密碼。出于這個原因,在您的服務器上安裝某種形式的蠻力保護是明智的。
大多數(shù)蠻力保護方法采用兩種形式之一。第一種方法在登錄嘗試之間引入了超時。即使此超時時間只有一秒,這也可能導致攻擊花費數(shù)倍的時間來破解密碼。您可能需要更長的超時時間以提供更好的安全性,同時又不會過度干擾用戶輸入錯誤的合法登錄嘗試。一些系統(tǒng)對這種方法采取了一種巧妙的方法,通過增加每次失敗嘗試的超時時間,通常是指數(shù)級的。失敗一次,等待1秒。再次失敗,等待 5 秒。第三次失敗,等待 30 秒……到第四次嘗試時,您將非常小心地輸入密碼。
或者,此方法的變體對在設定的時間段內允許的嘗試次數(shù)設置了硬上限。登錄失敗次數(shù)過多會導致帳戶被鎖定——無論是暫時的,還是在更極端的情況下,直到被服務器管理員解鎖。這種方法有效地阻止了任何暴力攻擊,但對于那些在輸入密碼時不太小心的有效用戶來說可能會更煩人。
第二種方法是在登錄請求中引入驗證碼。這迫使用戶執(zhí)行一項對人類來說微不足道但對計算機來說卻很困難的壯舉。通常,這涉及某種圖像識別,例如識別網格中包含路燈的所有圖片,或破譯一些以模糊字體書寫的文本。雖然計算機通常最終能夠解決這些請求,但它比普通人花費的時間要長得多,并且大大減慢了攻擊速度。驗證碼還經常用于保護公眾評論部分免受垃圾郵件帖子和注冊表單的虛假帳戶創(chuàng)建。
蠻力保護可以在許多防火墻或操作系統(tǒng)本身中找到——但不要忘記其他帳戶,例如 WordPress、cPanel/WHM 等。確保任何暴露的登錄都啟用了某種形式的蠻力保護。
軟件更新和安全補丁
軟件和操作系統(tǒng)更新以及安全補丁對于維護安全服務器也很重要。如果您運行的是易受已知漏洞攻擊的過時版本的操作系統(tǒng),您的所有其他努力都將毫無意義,并且完全白費。
大多數(shù)軟件和操作系統(tǒng)供應商都投入了大量資源來保持他們的產品針對最近發(fā)現(xiàn)的漏洞進行修補,以至于許多次要版本包含的安全修復比功能更新更多。對其產品的舊版本保持這種級別的警惕性可能會付出高昂的代價,因此軟件和操作系統(tǒng)通常會在多年后被歸類為生命周期結束 (EOL)。除其他外,這意味著該產品將不再接收在達到 EOL 后可能發(fā)現(xiàn)的漏洞的更新。
這種類型的常見案例與 PHP 相關,PHP 是 Web 上常用的一種腳本語言。在本文發(fā)布時,所有早于 7.2 的 PHP 版本都已停產。盡管如此,5.3 之前的 PHP 版本仍然很常見。7.2 和 5.3 之間存在顯著差異,如果不對代碼進行重大修改,就不可能升級到受支持的版本。
幸運的是,通過這個 PHP 版本的特定示例,CloudLinux 為您提供了一個cPanel 服務器。CloudLinux 提供舊 PHP 版本的強化版本以及安全更新,遠遠超過 EOL 日期。然而,這個問題可能發(fā)生在任何軟件上,而且大多數(shù)軟件都沒有像 CloudLinux 這樣簡單的解決方案。
運行過時的操作系統(tǒng)也不是好習慣。例如,CentOS 5 已經 EOL 一段時間了,但它并不是一個非常罕見的景象。如果你碰巧在運行這樣的東西,你應該盡快規(guī)劃你的升級路徑。當您運行的操作系統(tǒng)進入 EOL 時,通常即使您服務器上受支持的軟件也將停止接收更新,因為供應商不會在 EOL 操作系統(tǒng)版本上限定新版本。這會對服務器的安全性產生級聯(lián)的負面影響。
代碼和自定義應用程序
不幸的是,即使是最堅固的服務器仍然容易受到不安全代碼或網站上運行的應用程序的攻擊。
如果您正在運行可自定義的 Web 應用程序,例如 WordPress、Joomla 或 Magento,那么不僅要讓核心應用程序保持最新,還要讓任何插件或主題保持最新狀態(tài),這一點至關重要。這也適用于項目本身的代碼——如果你懷疑你的主題或插件已經“死”并且不再更新,那么尋找替代品是明智的。不斷發(fā)現(xiàn)新的漏洞,應用程序或插件僅與上次更新一樣安全。
在處理開發(fā)人員為您創(chuàng)建的自定義代碼時,明智的做法是與您的開發(fā)人員保持持續(xù)的關系,以便您可以繼續(xù)接收更新。否則,您可能會遇到上述情況,您會發(fā)現(xiàn)您無法再更新您的 PHP 或其他重要軟件,因為該網站與新版本不兼容。
這種攻擊向量可能是最難防御的,因為您的數(shù)據(jù)中心或托管服務提供商通常不支持在您的服務器上運行的自定義軟件和代碼。除非您運行的是完全現(xiàn)成的軟件,否則請確保您有計劃更新和修補代碼。
如您所見,保護服務器遠遠超出了初始設置。雖然這很重要,但同樣重要的是保持最新狀態(tài),以對抗不斷增長的已知黑客和漏洞利用列表。受損系統(tǒng)造成的經濟損失和聲譽損失可能是巨大的。正如那句古老的格言所說,一盎司的預防勝于一磅的治療。