如何使用 Nginx 防止 DDoS 攻擊

如何使用 Nginx 防止 DDoS 攻擊

DDoS(分散式阻斷服務)攻擊透過濫用數位通訊策略使伺服器資源過載。這些類型的攻擊是電腦世界中有組織的襲擊。無數令人討厭的反對行為結合在一起,造成了足以迫使伺服器停止運作的威脅。

最糟糕的是,有很多方法可以對此類主機發動遊擊網路「戰爭」。幸運的是,伺服器可以配置為抵禦此類攻擊。

Nginx 是一種非常受歡迎的 Unix 機器伺服器系統,具有足夠的內建功能,可顯著限制 DDoS 攻擊的有效性。

以下是使用 Nginx 處理此類威脅的一些有效選項。

如何使用Nginx防止DDoS攻擊?

備份設定檔

在更改任何設定之前,請確保快速備份伺服器的配置。以下命令可用於此目的:

sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.backup-original

如何使用 Nginx 防止 DDoS 攻擊

完成後,您就可以繼續了。

檢查交通狀況

監控伺服器上的流量可以輕鬆優化安全性並實施其他策略。 Nginx 有一個專門為此目的創建的模組。

設定狀態頁面

Nginx 通常附帶一個名為「stub status」(http_stub_status_module)的模組,它允許將此類功能非常輕鬆地整合到伺服器環境中。首先,使用以下命令對其進行測試:

nginx -V

如何使用 Nginx 防止 DDoS 攻擊

或者使用以下命令可以更快找到它:

nginx -V 2>&1 | grep -o with-http_stub_status_module

如何使用 Nginx 防止 DDoS 攻擊

如果您的輸出與上面的輸出類似,那麼一切都很好。否則,您將需要使用包含的模組來安裝或重新編譯 Nginx 安裝。

設定可以檢查的狀態頁面很簡單,但您還需要將存取限制在最低限度(僅限電腦)以維護安全。首先開啟位於/etc/nginx/nginx.conf 的伺服器主設定檔。

打開它並將以下程式碼新增至「http指令」以啟用該模組,取代「localhost」、「/status_page」「127.0.0.1」中您自己的資訊。

server {
listen 80;
listen [::]:80;
server_name localhost;
##
# Status Page Settings
##
location /status_page {
stub_status on;
allow 127.0.0.1;
allow ::1;
deny all;
}
}

注意:您需要 sudo 權限才能修改此檔案。

如何使用 Nginx 防止 DDoS 攻擊

現在,測試您的配置:

sudo nginx -t

如何使用 Nginx 防止 DDoS 攻擊

如果一切順利,向伺服器發送重新載入訊號:

sudo systemctl reload nginx

如何使用 Nginx 防止 DDoS 攻擊

若要存取狀態頁面,請在 Web 瀏覽器中存取位置server_name,後面跟著「/status_page」,或使用命令列工具(如curl)。(如果您的瀏覽器快取未自動更新,這非常有用)。以下是訪問範例中頁面的curl命令:

curl localhost/status_page

如何使用 Nginx 防止 DDoS 攻擊

在瀏覽器中,上述指令輸出如下圖所示。

如何使用 Nginx 防止 DDoS 攻擊

檢查訪問日誌

如果您在檢查上面配置的狀態頁面時發現異常流量,您可能需要檢查伺服器的存取日誌。伺服器存取日誌可以在“/var/log/nginx/access.log”中找到此日誌列出了使用的 HTTP 方法、存取嘗試的日期/時間、使用者代理程式和造訪的頁面。

如何使用 Nginx 防止 DDoS 攻擊

連線限制

在許多值得嘗試的防止 DDoS 攻擊的有用策略中,最簡單且最有效的策略之一是限制傳入流量的速率。

理想情況下,您應該限制存取權限,以防止惡意機器人淹沒您的伺服器,同時仍保持合理的速率。在 Nginx 中,這可以透過limit_req_zone和limit_req指令來完成以下程式碼設定記憶體和速度限制,以便在伺服器配置為顯示的任何位置使用:

limit_req_zone $binary_remote_addr zone=speedbump:10m rate=10r/s;

「Zone」指定儲存使用者請求的記憶體空間的名稱和容量(在本例中以兆位元組為單位)。「Rate」設定 Nginx 每秒接受的請求總數(本例為 10 個請求)。將此程式碼視為一條規則,接下來是該規則的使用:

limit_req zone=speedbump burst=20;

上面的程式碼實際上不僅僅只是實作一個限制規則。它還添加了一個最多包含 20 個請求的小佇列,以優雅地處理合法連接,其渲染速度比正常情況要快一些,超出了規則和佇列,導致客戶端出現 503 錯誤。這兩個指令在 nginx.conf 中看起來像這樣:

如何使用 Nginx 防止 DDoS 攻擊

建立IP位址黑名單

如果您獲得正在對您的伺服器執行 DDoS 攻擊的IP 位址,您可以簡單地將其列入黑名單並消除源自該 IP 位址的任何連線。

將以下程式碼加入您的伺服器指令:

location / {
deny 123.123.123.0/28;
# ...
}

阻止對某些文件的請求

如果 DDoS 攻擊針對的是伺服器上的某些檔案 - 例如WordPress上的xmlrpc.php檔案(這是大多數 WordPress 伺服器中的常見目標檔案),您可以封鎖所有這些檔案。將此程式碼新增至您的伺服器指令:

location /xmlrpc.php {
deny all;
}

按照上述流程,您將能夠限制大多數 DDoS 攻擊。請務必查看Nginx 文件以了解可以套用的其他安全性選項。

希望你成功。


如何在 Windows 10 中停用 iphlpsvc

如何在 Windows 10 中停用 iphlpsvc

Windows 中的 Iphlpsvc 代表 Internet 協定協助服務。停用 iphlpsvc 不會使系統崩潰、破壞其一般功能或極大影響效能。

如何在 Chromebook 上複製和貼上

如何在 Chromebook 上複製和貼上

在本文中,我們將了解在 Chromebook 上複製和貼上文字、文件和資料夾的不同方法。對於高級用戶來說,有許多強大的剪貼簿管理器可以幫助實現最大的生產力。

如何允許/拒絕應用程式存取 Windows 10 中的檔案系統

如何允許/拒絕應用程式存取 Windows 10 中的檔案系統

本指南將向您展示如何變更隱私設定以允許或拒絕所有使用者或僅您在 Windows 10 中的帳戶的應用程式存取檔案系統。

小米3C無線路由器如何設定成中繼器

小米3C無線路由器如何設定成中繼器

如果您在家庭和辦公區域面臨 WiFi 訊號範圍問題,原因是主 WiFi 路由器的範圍較小。您可以使用小米 3C 的中繼模式設定來增加 WiFi 範圍,而無需更改主 WiFi 名稱和密碼。

適用於 Android 的最佳免費 Wi-Fi 查找應用程式

適用於 Android 的最佳免費 Wi-Fi 查找應用程式

以下適合 Android 用戶的最佳免費 Wi-Fi 尋找應用程式將協助您快速找到免費的公共 Wi-Fi 連線點。此外,在行動數據包容量不足或速度過高的情況下,使用此軟體非常有用。

備份 Windows 10 上的開始功能表設置

備份 Windows 10 上的開始功能表設置

Windows 10 上的「開始」功能表是最有用且可自訂的工具之一。您可以將新佈局排列在左側以存取設定和其他位置。在中間您可以快速存取已安裝的應用程式列表,在右側您可以設定動態磁貼以持續顯示更新。

在 Windows 10/8/7 上啟動管理員共享的說明

在 Windows 10/8/7 上啟動管理員共享的說明

在某些情況下,使用者需要在本機硬碟上啟用管理共用。管理員共用是 Windows 電腦上所有硬碟(C$、D$...)的預設共用帳戶。預設情況下,管理員共享是隱藏的並且無法在網路上存取。

如果您想刪除網路上的廣告 - Social 2 搜尋廣告,請閱讀這篇文章

如果您想刪除網路上的廣告 - Social 2 搜尋廣告,請閱讀這篇文章

Social 2 Search 整合在免費程式、垃圾郵件或惡意網站上。在某些情況下,用戶會造訪來源不明的網站,將免費程式下載到他們的裝置上並進行安裝。雖然它是免費軟體,但其內部隱藏著許多惡意軟體,例如廣告軟體、間諜軟體或其他惡意軟體。那麼您將受到包含的廣告軟體的威脅。

如何在 Windows 10 中使用事件檢視器

如何在 Windows 10 中使用事件檢視器

Windows 10 事件檢視器可協助解決應用程式問題或檢視您的電腦最近在做什麼。

2018年最大的安全漏洞

2018年最大的安全漏洞

2018 年對於全球 IT 專業人士來說是令人頭痛的一年。