如何通過IP遮蔽工具, Cloudflare, Nginx或Apache拒絕攔截IP地址

如何通過IP遮蔽工具, Cloudflare, Nginx或Apache拒絕攔截IP地址

與不斷攻擊您網站的機器人、垃圾郵件傳送者或黑客打交道?根據嚴重程度,它可能會對您的訪問和頻寬產生重大影響,在這種情況下,您可能需要嘗試阻止它們。

大部分雲伺服器都附帶一個免費的IP拒絕工具,可讓您攔截特定IP地址和範圍訪問您的網站。在本文中,我們將介紹可用於拒絕攔截IP地址的幾種方法。

  1. 如何識別有問題的IP地址
  2. 如何使用寶塔控制面板攔截IP地址
  3. 如何在Cloudflare中攔截IP地址
  4. 如何在Nginx中攔截IP地址
  5. 如何在Apache中攔截IP地址

如何識別有問題的IP地址

WordPress是一個動態 CMS ,這意味著PHP worker按需生成未快取的頁面。由於未快取的請求需要顯著更多的CPU和RAM資源來提供服務(與快取的請求相比),惡意行為者有可能通過傳送大量請求來強制伺服器停止響應。

如果您遇到這種情況,可以幫助減少伺服器負載的一種策略是拒絕麻煩的IP地址訪問。

如果您的伺服器提供商提供IP訪問統計,您可以通過伺服器提供商提供的控制面板檢視IP訪問統計表以識別有問題的IP地址。

您也可以通過分析伺服器訪問日誌來實施,當然如果您希望通過安裝外掛來統計訪問IP,也是可行的,比如WP Statistics

如果您發現某個IP地址發出的請求比其他IP多得多(例如5-10倍),您可能需要進一步調查以確定該IP是機器人還是垃圾郵件傳送者。檢查IP是否惡意的最簡單方法是使用諸如CleanTalkSpamhaus之類的reputation檢查器。

如果reputation檢查器將IP地址識別為機器人或垃圾郵件傳送者 IP,您可以採取進一步措施來阻止該IP。請記住,即使信譽檢查器沒有將該IP列為惡意IP,也可能只是意味著該IP尚未在其資料庫中。

如果您發現IP導致您的伺服器返回HTTP 502錯誤或完全關閉,則值得測試阻止IP地址是否會使事情變得更好。

如何使用寶塔面板拒絕攔截IP地址

寶塔面板提供遮蔽IP工具允許您阻止單個IP地址以及IP地址範圍,而無需編輯Web伺服器配置檔案。

重要的:遮蔽IP工具是一項強大的功能,如果使用不當,可能會阻止合法服務或個人。

要在寶塔面板中遮蔽攔截IP地址,請導航至安全,選擇遮蔽IP,填入遮蔽IP或者IP段,點選遮蔽按鈕即可新增指定IP/IP段至遮蔽列表。

寶塔面板中的IP遮蔽工具

寶塔面板中的IP遮蔽工具

在“將IP地址新增到遮蔽”模式中,您可以將IPV4地址、IPV6地址和CIDR(無類域間路由)IP地址範圍新增到阻止列表。CIDR範圍可用於遮蔽IP地址的連續範圍(例如127.0.0.1到127.0.0.255)。要生成有效的CIDR範圍,我們建議使用這樣的工具

以下是一些您可以遮蔽的IP地址示例:

  • IPV4地址 – 103.5.140.141
  • IPV6地址 – 2001:0db8:0a0b:12f0:0000:0000:0000:0001
  • CIDR範圍 – 128.0.0.1/32

如何在Cloudflare中拒絕攔截IP地址

如果您是Cloudflare使用者,您可以使用Cloudflare儀表盤中的“IP Access Rules”工具來遮蔽IP地址和IP範圍。

在Cloudflare儀表盤中,導航到Firewall > Tools

Cloudflare工具儀表盤

Cloudflare工具儀表盤

要建立新的IP訪問規則,請新增IP地址,選擇“Block”操作,選擇“This Website”(如果您希望規則適用於所有Cloudflare域,則選擇“All Websites in Account”),然後單擊“Add”。

新增IP訪問規則

新增IP訪問規則

新增訪問規則後,它將出現在“IP Access Rules”列表中。在這裡,您可以對訪問規則進行更改,例如更改操作、新增註釋和刪除規則。

Cloudflare儀表盤中的IP訪問規則

Cloudflare儀表盤中的IP訪問規則

除了“Block”動作,Cloudflare還支援“Challenge”、“Allow”和“JavaScript Challenge”。根據您要實現的目標,您可能希望使用這些其他操作之一,而不是“Block”。

在Cloudflare中攔截IP範圍、國家和ASN

除了單個IP地址,Cloudflare的IP訪問規則還支援IP範圍、國家名稱和ASN(自治系統編號)。

  • 要遮蔽IP範圍,請為IP訪問規則值指定CIDR範圍。
  • 要遮蔽某個國家/地區,請指定其為Alpha-2國家/地區程式碼
  • 要遮蔽ASN(由單個網路運營商控制的IP列表),請指定以“AS”開頭的有效ASN

如何在Nginx中拒絕攔截IP地址

如果您的站點是使用Nginx Web伺服器自託管的,您可以直接在Web伺服器配置中遮蔽IP地址。

要在Nginx中遮蔽IP地址,請通過SSH連線到您的伺服器並使用nano文字編輯器開啟Nginx配置檔案,如下所示:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
nano /etc/nginx/nginx.conf
nano /etc/nginx/nginx.conf
nano /etc/nginx/nginx.conf

如何使用Nginx遮蔽單個IP地址

要在 Nginx 中阻止單個 IP(IPV4 或 IPV6)地址,請使用如下deny指令:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
deny 190.60.78.31;
deny 4b73:8cd3:6f7b:8ddc:d2f9:31ca:b6b1:834e;
deny 190.60.78.31; deny 4b73:8cd3:6f7b:8ddc:d2f9:31ca:b6b1:834e;
deny 190.60.78.31;
deny 4b73:8cd3:6f7b:8ddc:d2f9:31ca:b6b1:834e;

如何使用Nginx遮蔽CIDR IP範圍

要在Nginx中阻止CIDR IP範圍,請使用以下指令:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
deny 192.168.0.0/24;
deny 192.168.0.0/24;
deny 192.168.0.0/24;

高階Nginx IP攔截技術

如果要阻止對特定目錄的訪問(ed domain.com/secret-directory/),可以使用下面的Nginx指令:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
location /secret-directory/ {
deny 192.168.0.0/24;
}
location /secret-directory/ { deny 192.168.0.0/24; }
location /secret-directory/ {
deny 192.168.0.0/24;
}

deny指令接受all一個值。這對於您想要阻止所有 IP 地址訪問您的站點的情況很有用。deny all;指令通常與allow – 一起使用- 這使您可以允許特定的 IP 地址同時阻止其他所有內容。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
location /secret-directory/ {
allow 192.168.0.0/16;
deny all;
}
location /secret-directory/ { allow 192.168.0.0/16; deny all; }
location /secret-directory/ {
allow 192.168.0.0/16;
deny all;
}

儲存Nginx配置並重新載入Nginx

使用nano完成配置編輯後,請務必按Ctrl+O儲存更改。儲存檔案後,按Ctrl+X 退出nano。

要啟用新的IP遮蔽規則,您還需要使用以下命令重新載入Nginx配置:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo systemctl reload nginx
sudo systemctl reload nginx
sudo systemctl reload nginx

如何在Apache中遮蔽IP地址

如果您的站點是使用Apache Web伺服器自託管的,您可以直接在Web伺服器配置中遮蔽IP地址。要在Apache中遮蔽IP地址,您需要使用.htaccess檔案,它允許您將唯一規則應用於特定目錄。要在整個站點上應用規則,應將.htaccess檔案放在站點的根目錄中。

首先,通過SSH連線到您的伺服器,導航到您站點的根目錄,然後使用以下命令建立.htaccess檔案:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
touch .htaccess
touch .htaccess
touch .htaccess

接下來,使用nano文字編輯器開啟.htaccess檔案,如下所示:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
nano .htaccess
nano .htaccess
nano .htaccess

遮蔽IP的確切規則取決於您使用的是Apache 2.2還是2.4,因此我們將包含兩個版本的規則。編輯.htaccess檔案時,請使用Apache版本對應的規則。

如何使用Apache攔截單個IP地址

要在Apache中攔截單個IP(IPV4或IPV6)地址,請使用以下規則:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# Apache 2.2
order allow, deny
allow 192.168.0.0
deny from all
#Apache 2.4
Require all granted
Require not ip 192.168.0.0
# Apache 2.2 order allow, deny allow 192.168.0.0 deny from all #Apache 2.4 Require all granted Require not ip 192.168.0.0
# Apache 2.2
order allow, deny
allow 192.168.0.0
deny from all
#Apache 2.4
Require all granted
Require not ip 192.168.0.0

如何使用Apache遮蔽CIDR IP範圍

要在Apache中攔截IP範圍地址,請使用以下規則:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# Apache 2.2
order allow, deny
allow 192.168.0.0/16
deny from all
#Apache 2.4
Require all granted
Require not ip 192.168.0.0/16
# Apache 2.2 order allow, deny allow 192.168.0.0/16 deny from all #Apache 2.4 Require all granted Require not ip 192.168.0.0/16
# Apache 2.2
order allow, deny
allow 192.168.0.0/16
deny from all
#Apache 2.4
Require all granted
Require not ip 192.168.0.0/16

小結

根據您的站點配置,有不同的方法可以遮蔽攔截IP地址訪問您的站點。如果您是寶塔使用者,我們建議使用寶塔自帶的IP遮蔽工具。

如果你使用Cloudflare之類的CDN,則可以使用CDN自帶的IP遮蔽規則實現,它允許您建立唯一的IP訪問規則來攔截IP地址、範圍等。最後,如果前兩者您都沒在用,您可以直接在您的Web伺服器配置檔案中實施IP遮蔽攔截規則。

評論留言