1. 網站程式碼的安全守門員
網頁程式安全維護一直是使用者/管理者長久的課題,是一場永無止境的戰役。因網頁程式並非寫好後就可一直使用到永久,畢竟網路世界規則並非一成不變而是時時在變。除了定期更新程式碼、使用強密碼外,主機層級的防護也至關重要。其中,「網站應用程式防火牆 (Web Application Firewall, WAF)」扮演著關鍵角色,它就像是您網站程式碼的專屬保鑣,負責過濾掉許多常見的網路攻擊手法。
而若疏於管理網頁程式而導致被駭,這會造成網站上很大的問題甚至會延伸出其它問題(EX:法律問題…),常見被駭狀況是被植入釣魚網頁、發釣魚信件…等,不僅公司信譽受到影嚮,更甚者會有法律問題,也會造成虛擬主機的IP信譽不佳而連帶影嚮其他用戶的使用;網站程式有問題會衍生出不少的問題,故程式定期維護是必然的喔。
現在不少Linux虛擬主機,是使用cPanel控制台的主機商,其虛擬主機都有內建提供ModSecurity;ModSecurity (簡稱 ModSec) 就是目前最廣泛使用的開源 WAF 之一,常被整合在 cPanel 主機中。它透過一系列預先定義的「規則 (Rules)」,檢查所有進出您網站的網路流量。如果發現疑似惡意的請求(例如:試圖進行 SQL Injection 攻擊、跨站腳本攻擊 XSS 等),ModSecurity 就會將其攔截,保護您的網站不受侵害。
然而,有時這些規則也可能過於嚴格,誤將正常的網站後台操作(例如:編輯文章、上傳檔案)判斷為惡意行為而加以阻擋。因此,了解如何在 cPanel 中暫時開啟或關閉 ModSecurity,對於網站管理者來說是一項重要的除錯技能。
2. 什麼是 ModSecurity (ModSec)?
何謂ModSecurity
ModSecurity(通常簡稱為ModSec)是一種開源的Web應用防火牆(WAF),用於保護Web應用程式免受各種攻擊。它通常與Apache HTTP Server、Nginx和IIS等Web伺服器一起使用。分享ModSecurity維基百科 ,ModSecurity已於 January 25, 2024.將控制權移轉給OWASP,也提供OWASP的官網針對ModSecurity說明連結。
ModSecurity 的核心概念是「規則比對」。它擁有一套龐大的規則庫(最知名的就是 OWASP ModSecurity Core Rule Set, CRS),這些規則描述了數百種已知的網路攻擊模式。當有訪客連線到您的網站時,ModSecurity 會檢查這次連線的內容(例如:網址參數、POST 表單資料、HTTP 標頭等)是否符合某條攻擊規則的特徵。如果符合,就會觸發預設的阻擋動作。
傳統上,ModSecurity 的開關與規則管理權限都在伺服器管理員手上。但為了方便使用者自行排除「誤擋」問題,許多 cPanel 主機商現在開放讓使用者可以自行決定是否要為自己的網域啟用或停用 ModSecurity 防護。
若您使用的虛擬主機cPanel控制台上有看到”Mod Security”的選項,就是您使用的Linux虛擬主機其伺服器商有開啟此功能讓您自行開啟或關閉;而要如何自行在cPanel控制台上開啟/關閉Mod Security呢?請依下列步驟操作即可
3. 如何在 cPanel 中開啟/關閉 ModSecurity?
3.1. 步驟一:找到 ModSecurity 功能入口
首先,登入您的 cPanel 控制台。在「安全性 (Security)」的功能區塊中,找到並點擊「ModSecurity」圖示進入。
3.2. 步驟二:針對特定網域進行開關
cPanel控制台開啟/關閉ModSecurity
進入 ModSecurity 介面後,您會看到您帳戶下所有網域(主網域、附加網域、子網域)的列表。每個網域後面都有一個狀態開關(開啟 On / 關閉 Off)。
- 預設狀態: 通常預設為「開啟 (On)」,表示 ModSecurity 正在保護該網域。
- 如何關閉: 如果您遇到某個網域的操作一直被 WAF 阻擋,且暫時無法排除規則問題,可以點擊該網域後方的「關閉 (Off)」按鈕,暫時停用對該網域的保護。
- 如何重新開啟: 問題排除後,記得回到這裡,點擊「開啟 (On)」按鈕,重新啟用保護
若您有多組網域,可以善用搜尋列來搜尋網域,能較快速找到要設定ModSecurity的網域喔。
⚠️ 重要警告: 關閉 ModSecurity 等同於撤除了網站的第一道防線,會讓您的網站暴露在各種常見攻擊之下。除非您非常清楚自己在做什麼,並且只是「暫時性」的除錯手段,否則強烈不建議長期關閉 ModSecurity。
4. ModSecurity 常見問題 Q&A
ModSecurity的Q&A常見疑問
Q:為何會需要關閉ModSecurity?
A:最常見的原因是「誤擋 (False Positive)」。例如,您在 WordPress 編輯器中儲存一篇包含特殊程式碼的文章,或上傳某個外掛設定檔,這些看似正常的動作,有時會意外觸發 ModSecurity 的某條規則而被攔截。暫時關閉 ModSecurity 可以讓您完成操作,但治本之道還是找出觸發的規則並進行調整。注意: 短時間內反覆觸發規則,可能導致您的 IP 被主機防火牆封鎖。
程式會觸碰到ModSecurity的規則,就需依编號去找出規則然後去修改程式;若程式無法修改就可選擇關閉ModSecurity。
Q:關閉ModSecurity後,程式會容易被駭嗎?
A:是的,關閉 ModSecurity 會顯著降低網站的安全性。它雖然不能取代程式碼本身的安全性(定期更新、避免使用來路不明的外掛),但能有效阻擋許多自動化的攻擊嘗試。
ModSecurity不是程式掃毒軟體也不是防毒軟體,程式的維護及更新需由程式人員處理。
虛擬主機的防火牆是什麼東西… 網站被駭該如何處理?
Q:ModSecurity不是掃毒軟體,那cPanel控制台上有提供程式掃毒功能嗎?
A:有Imunify360,而Imunify360偏向「惡意軟體掃描」與「行為偵測」; ModSecurity 則是專注於防禦「Web 應用程式攻擊」。兩者功能互補,理想情況下應同時啟用。
cPanel控制台上有imunify360此功能,有關imunify360詳細說明可參考此文章:https://wpoki.com/?p=11799
Q:不想關閉ModSecurity,還有什麼方法可以處理觸碰ModSecurity規則問題呢?
A:以下做法提供給您參考:
- 重現被阻擋的操作。
- 立即聯繫您的主機商,告知操作時間與內容,請他們協助查詢 ModSecurity 的 Log 紀錄。
- 主機商會從 Log 中找到觸發的規則 ID (如上圖範例中的 `[id “211540”]`)。
- 您可以將規則 ID 提供給您的程式開發人員,請他們調整程式碼以避開該規則;或者,您可以請求主機商將這條規則針對您的帳戶進行「白名單」排除(Whitelisting)。
不想關閉ModSecurity,您需依编號去找出規則然後去修改程式,而如何取得該程式编號,需詢問您的主機商(如下圖),請他們提供LOG檔給您讓您依LOG檔上的编號去改程式。
Q:ModSecurity模組規則是什麼?我可以自行修改規則嗎?
A:網路上有組織為mod_security模組設定常用的規則,可下載套用;但要提醒的是,不要貪心地將所有規則都套用。在虛擬主機環境下,通常無法自行修改規則,ModSecurity 的規則庫是由主機商統一管理與更新的。
5. 額外補充:LiteSpeed Web Server 的連線限制機制
LiteSpeed是什麼?
LiteSpeed系統可以有效提升WordPress網站程式的速度;LiteSpeed Web Server用來接收來自使用者瀏覽器的HTTP 請求(HTTP request),並向瀏覽器傳送所請求的網頁內容。
無法連結網頁而IP未被阻擋時,可能是觸碰到LiteSpeed機制
您使用的虛擬主機,該主機商的主機有安裝LiteSpeed的狀況下,若發生網頁無法連結,而在確認IP未被主機阻擋但卻仍無法連結網頁時,有可能是觸碰到LiteSpeed內建的另一套保護機制;每一套軟體都有其設定的規則機制。一般常見會觸碰到LiteSpeed機制是同時開啟多個網頁視窗連結而造成被LiteSpeed阻擋。
LiteSpeed 為了防止 DoS (阻斷服務) 攻擊,會限制單一 IP 在短時間內的「同時連線數」。如果您在瀏覽器中瞬間開啟大量分頁,或是網站上有某些元素(如圖片、JS檔)載入過慢導致連線卡住,就可能超過這個限制而被 LiteSpeed 暫時拒絕服務。
IP因PORT SCAN被主機防火牆阻擋的原因:https://wpoki.com/?p=9489
5.1. 為何會觸發 LiteSpeed 阻擋?
最常見觸發 LiteSpeed 連線限制的情況就是在瀏覽器中一次性開啟過多指向同一個網站的分頁,或是網頁載入不完全時不斷按 F5 重新整理。
5.2. 如何解決 LiteSpeed 阻擋?
觸碰到LiteSpeed機制時能如何解決呢?
當您的主機商確認您的IP是因觸碰到LiteSpeed機制而造成無法連結網頁時,此時只能等待LiteSpeed自動解除,觸碰到LiteSpeed機制無法由主機商去手動解除,只能被動等待;一旦被LiteSpeed阻擋,需等待50分鐘,50分鐘後LiteSpeed即會解除,LiteSpeed解除後即可連結網頁。
如何避免觸碰到LiteSpeed機制造成被阻擋?
如前述,會觸碰到LiteSpeed機制是同時開啟多個網頁視窗連結而造成被LiteSpeed阻擋;所以,不要同一個瀏覽器同時開啟多個網頁視窗連結,避免在短時間內對同一個網站發起大量連線請求,是避免被LiteSpeed機制阻擋的方法^.^。
重要的是要區分:因為 LiteSpeed 連線數限制而被擋,通常等待即可;因為 ModSecurity 或防火牆規則而被擋(可能需要解鎖 IP 或調整規則),則需要聯繫主機商處理。
6. 重點問題快速解答 (FAQ)
Q1:我應該一直開著 ModSecurity 嗎?
是的,強烈建議保持開啟。 ModSecurity 是保護您網站免受常見 Web 攻擊的重要防線。只有在您確定某個特定操作被 ModSecurity「誤擋」,且您暫時無法透過修改程式或請求主機商調整規則來解決時,才考慮「暫時」關閉它以完成該操作,完成後應立即重新開啟。
Q2:ModSecurity 會影響我的網站速度嗎?
ModSecurity 需要檢查每一個進出網站的請求,這無可避免地會增加一點點處理時間。然而,在現代伺服器硬體和優化的規則集下,這種效能影響通常非常輕微,使用者幾乎無法察覺。相較於它所提供的安全性,這點微小的效能損耗是完全值得的。
Q3:如果我關閉了 ModSecurity,我的網站會不會馬上被駭?
不一定會「馬上」被駭,但風險確實會大幅提高。ModSecurity 主要防禦的是自動化的、廣泛掃描的攻擊。關閉它就像是撤掉了大門口的警衛,雖然不代表小偷一定會立刻進來,但無疑讓宵小之徒更容易趁虛而入。網站的根本安全還是取決於程式碼本身是否健壯、是否及時更新。
Q4:LiteSpeed 的連線限制和 cPanel 的資源限制 (CPU/EP) 有什麼不同?
它們是不同層級的限制:
- LiteSpeed 連線限制: 由 LiteSpeed 網頁伺服器本身執行,主要目的是防止單一 IP 發起過多「同時連線」癱瘓伺服器,屬於 DoS 防護機制,通常是短暫封鎖 IP。
- cPanel 資源限制 (CloudLinux): 由 CloudLinux 作業系統執行,限制的是您整個 cPanel 帳戶可使用的 CPU、記憶體 (RAM)、進入處理程序 (EP) 等「總資源量」,目的是確保公平分享伺服器資源。超過限制會導致網站變慢或出現 508/503 錯誤。
兩者都可能導致網站無法訪問,但原因和解除方式不同。
cPanel更多教學及更多了解cPanel是什麼,提供幾篇文章參考:
主機空間常提到 cPanel 控制台,它是什麼?
cPanel控制台 ImunifyAV 掃瞄工具完整解析
搬遷網站到新主機時如何預覽?
Linux虛擬主機cPanel空間與MySQL資料庫計算
cPanel 控制台開啟 mod_rewrite
文章來源:https://wpoki.com
GIPHY App Key not set. Please check settings
One Comment