banner
moeyy

moeyy

一条有远大理想的咸鱼。
github
mastodon
email

使用 CloudFlare Business 無視CC攻擊

需求#

Cloudflare 企業版套餐(200 美元的,或者更高),PRO 版本可以參考這篇文章:https://moeyy.cn/posts/d4fb87f4694a.html

你的站點必須使用 HTTPS

開始(在 CloudFlare 上操作).#

自動程序#

首先,需要登入 Cloudflare 控制面板,選擇域名 --> 防火牆 --> 自動程序,點擊 配置超級自動程序攻擊模式
如圖所示,可以按照我的圖片進行設置

image

托管規則#

然後打開選擇 防火牆 --> 托管規則,把選項全部勾上,敏感度,操作為質詢

網站以及 SSL 證書配置#

大致分享一下我的規則。

建議您的站點設置 SSL 證書並開啟 http2 協議:

image

並且開啟強制 https,也可以限制最低 TLS 版本1.1(目前瀏覽器最低都是 1.2) 參考圖片:

image

頁面規則#

可以參考一下我的

image

防火牆規則#

阻止規則:#

image

Tor 是洋蔥路由,可以屏蔽。威脅分數大於等於 5 進行阻止。威脅分數正常訪客壓根不會觸發,不要害怕誤封。

驗證碼規則:#

image

第一段的意思是禁止 https 的訪問有 http1 的 HTTP 版本,因為正常訪客訪問 https 都是 HTTP2,只有代理 CC 會是 HTTP1,前提是你網站開啟了 https,不開啟 https 這個規則沒作用。

用戶代理這個我就不說了,防止一些奇奇怪怪的 ua。

威脅分數大於 1 的話自動彈出驗證碼,正常瀏覽器,乾淨的 IP 不會觸發。

最後一個是防止偽造 ip 的。

除了設置規則,你還需要設置一些其他的東西。

比如 HTTP DDOS, 全部拉滿:

image

到這裡,在 Cloudflare 上設置的規則已經完成了。接下來是設置源站的

Nginx 配置#

我們可以設置一個單獨的 UA 回源,並且只允許那個 ua 回源。

先在 Cloudflare 上操作:

image

創建一個 HTTP 請求頭修改,內容為 User-Agent:XXX (XXX 可以替換成其他):

image

比如我的是moeyydad,你可以替換成別的,別人猜不到就行。

然後我們在 nginx 配置文件內添加一個 if

if ($http_user_agent != "moeyydad"){
      return 444;
}

這段代碼加在 root 的下面

image

證書防護#

可以防止源站證書被掃到。如果源站使用 ssl 回源,我們需要上傳證書,但是我們不能使用自己的證書,可以使用自簽證書。比如:

證書#

-----BEGIN CERTIFICATE-----
MIIDITCCAsagAwIBAgIUTcEWLzynkLCFCoAC1iDH2vG3EkYwCgYIKoZIzj0EAwIw
gY8xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T
YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBDbG91ZEZsYXJlLCBJbmMuMTgwNgYDVQQL
Ey9DbG91ZEZsYXJlIE9yaWdpbiBTU0wgRUNDIENlcnRpZmljYXRlIEF1dGhvcml0
eTAeFw0xOTAxMTMxNDMxMDBaFw0zNDAxMDkxNDMxMDBaMGIxGTAXBgNVBAoTEENs
b3VkRmxhcmUsIEluYy4xHTAbBgNVBAsTFENsb3VkRmxhcmUgT3JpZ2luIENBMSYw
JAYDVQQDEx1DbG91ZEZsYXJlIE9yaWdpbiBDZXJ0aWZpY2F0ZTBZMBMGByqGSM49
AgEGCCqGSM49AwEHA0IABAg/hZ9lDHj/f+0jDRAN23TkNEqIi46mCGnwZVD3glxL
l+a1mpfXLHSEFTipnSyQgmvkPYzQGaEIFD0q6W/ZgMujggEqMIIBJjAOBgNVHQ8B
Af8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMAwGA1UdEwEB
/wQCMAAwHQYDVR0OBBYEFCEZF6Eyem01XPbgwr6DXLZV1qsQMB8GA1UdIwQYMBaA
FIUwXTsqcNTt1ZJnB/3rObQaDjinMEQGCCsGAQUFBwEBBDgwNjA0BggrBgEFBQcw
AYYoaHR0cDovL29jc3AuY2xvdWRmbGFyZS5jb20vb3JpZ2luX2VjY19jYTAjBgNV
HREEHDAaggwqLmRuc3BvZC5jb22CCmRuc3BvZC5jb20wPAYDVR0fBDUwMzAxoC+g
LYYraHR0cDovL2NybC5jbG91ZGZsYXJlLmNvbS9vcmlnaW5fZWNjX2NhLmNybDAK
BggqhkjOPQQDAgNJADBGAiEAnrequCk/QZOOrcPH6C3Hgcy4SPNUy5rQtku/aYkj
qQoCIQCN6IyYNiXuwG+8jUgJrveiirBjiz2jXZSTEfVAyibjTg==
-----END CERTIFICATE-----

密鑰#

-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgK0HE3hTJQDg6p/fj
nS92eSuRKZEZ5F4grT6tWFKNYVmhRANCAAQIP4WfZQx4/3/tIw0QDdt05DRKiIuO
pghp8GVQ94JcS5fmtZqX1yx0hBU4qZ0skIJr5D2M0BmhCBQ9Kulv2YDL
-----END PRIVATE KEY-----

如何測試你的源 ip 不會被洩露呢?

你可以先在 hosts 文件把添加你的源 ip 和域名,然後打開瀏覽器訪問,如果無法訪問就是成功的,因為受到 ua 限制。

其次,檢查證書確保不是你域名的證書。還要檢查默認證書,https://ip/ 進行訪問,看看證書是不是你域名的,如果不是則大功告成。

其他配置#

屏蔽地區#

如果你的訪客只是中國地區的,你可以設置只允許中國訪問:

image

使用速率限制#

image

可以根據你網站的 api 或者其他進行速率限制。

自定義 Host 回源#

image

這個跟自定義 UA 回源類似,目前一些掃源程序的原理是帶一個 host 頭訪問全球的 ip 進行測試和驗證。

比如我設置一個回源域名為moeyydad.xyz回源,然後把源站域名moeyy.cn替換為moeyydad.xyz,這樣就不會找到我們的源站。配合自定義 UA 回源,源站配置CF 的自簽 SSL 證書,自定義 Host 回源,攻擊者則無法找到我們的源站。

CF 的自簽 SSL 證書 在這裡生成:

image

做完以上操作,你的網站已經是無敵的了。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。