目录
需求
Cloudflare 企业版套餐(200美元的,或者更高),PRO版本可以参考这篇文章:https://moeyy.cn/1860
你的站点必须使用HTTPS
开始(在CloudFlare上操作).
自动程序
首先,需要登录Cloudflare控制面板,选择域名–>防火墙–>自动程序,点击 配置超级自动程序攻击模式
如图所示,可以按照我的图片进行设置
托管规则
然后打开选择 防火墙–>托管规则,把选项全部勾上,敏感度高,操作为质询。
网站以及SSL证书配置
大致分享一下我的规则。
建议您的站点设置SSL证书并开启http2协议:
并且开启强制https,也可以限制最低TLS版本为1.1(目前浏览器最低都是1.2) 参考图片:
页面规则
可以参考一下我的
防火墙规则
阻止规则:
Tor是洋葱路由,可以屏蔽。威胁分数大于等于5 进行阻止。威胁分数正常访客压根不会触发,不要害怕误封。
验证码规则:
第一段的意思是禁止https的访问有http1的HTTP版本,因为正常访客访问https都是HTTP2,只有代理CC会是HTTP1,前提是你网站开启了https,不开启https这个规则没作用。
用户代理这个我就不说了,防止一些奇奇怪怪的ua。
威胁分数大于1的话自动弹出验证码,正常浏览器,干净的IP不会触发。
最后一个是防止伪造ip的。
除了设置规则,你还需要设置一些其他的东西。
比如HTTP DDOS,全部拉满:
到这里,在Cloudflare上设置的规则已经完成了。接下来是设置源站的
Nginx配置
我们可以设置一个单独的UA回源,并且只允许那个ua回源。
先在Cloudflare上操作:
创建一个HTTP请求头修改,内容为User-Agent:XXX (XXX可以替换成其他):
比如我的是moeyydad,你可以替换成别的,别人猜不到就行。
然后我们在nginx配置文件内添加一个if
if ($http_user_agent != "moeyydad"){ return 444; }
这段代码加在root的下面
证书防护
可以防止源站证书被扫到。如果源站使用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/ 进行访问,看看证书是不是你域名的,如果不是则大功告成。
其他配置
屏蔽地区
如果你的访客只是中国地区的,你可以设置只允许中国访问:
使用速率限制
可以根据你网站的api或者其他进行速率限制。
自定义Host回源
这个跟自定义UA回源类似,目前一些扫源程序的原理是带一个host头访问全球的ip进行测试和验证。
比如我设置一个回源域名为moeyydad.xyz回源,然后把源站域名moeyy.cn替换为moeyydad.xyz,这样就不会找到我们的源站。配合自定义UA回源,源站配置CF的自签SSL证书,自定义Host回源,攻击者则无法找到我们的源站。
CF的自签SSL证书 在这里生成:
做完以上操作,你的网站已经是无敌的了。