Unsplash+
MyKinsta 是 Kinsta 主機的後端控制台,簡單好用,裡面有一個封鎖 IP 的好用功能 IP deny,可以處理不斷訪問你網站的機器人、垃圾郵件發送者或不友善的 IP 來源。
MyKinsta 的 IP deny 阻止 IP 地址
MyKinsta 的 IP deny 工具支援 3 種方式來封鎖 IP:
- IPV4 地址 – 103.5.140.141
- IPV6 地址 – 2001:0db8:0a0b:12f0:0000:0000:0000:0001
- CIDR 範圍 – 128.0.0.1/32
其他線上工具
CIDR 可用於阻止 IP 地址的區段範圍,例如:127.0.0.1 到 127.0.0.255。
https://www.ipaddressguide.com/cidr
為了產生有效的 CIDR 範圍,建議使用 CIDR to IPv4 Conversion 線上工具來查詢。
https://cleantalk.org/blacklists
識別有問題的 IP 地址
因為 WordPress 是一個動態 CMS,未快取的頁面是由 PHP Workers 生成的,由於未快取的請求需要更多的 CPU 和 RAM 資源來提供服務,因此,惡意行為的 IP 會通過發送大量請求來消耗伺服器的資源。
我們利用 MyKinsta 的 analytics dashboard 查看訪問網站的 IP 地址列表。
如果看到一個 IP 地址發出的請求比其他 IP 多很多 (例如:5 – 10 倍),就可能需要進一步查看該 IP 是機器人還是垃圾郵件發送者。
檢查 IP 是否惡意的最簡單方法是利用線上工具來查看,例如:CleanTalk 或 Spamhaus。
Nginx 中阻止 IP 地址
如果你是自架 VPS Nginx 伺服器管理自己的網站,可以直接在 nginx.conf 配置文件中阻止 IP 地址。
要阻止 Nginx 中的 IP 地址,Nginx 配置文件,如下所示。
Nginx 阻止單個 IP 地址:
deny 190.60.78.31;
deny 4b73:8cd3:6f7b:8ddc:d2f9:31ca:b6b1:834e;
Nginx 阻止 CIDR IP 範圍:
deny 192.168.0.0/24;
Nginx 阻止訪問特定目錄:
location /secret-directory/ {
deny 192.168.0.0/24;
}
阻止其他所有內容的同時允許特定的 IP 地址:
location /secret-directory/ {
allow 192.168.0.0/16;
deny all;
}
最後別忘了重新加載 Nginx 配置,讓配置生效:
sudo systemctl reload nginx
發佈留言