利用cloudflare的防火墙防御CC攻击

cloudflare默认自带5条防火墙规则,完全免费.
有了防火墙,可以设置自定义规则,防御CC攻击.
这个方法是cloudflare5秒盾防御CC攻击的补充

防火墙规则一


规则名: rule1
规则匹配:
1.标签1: threat score >5
2.标签2: known bots -> off
行动: Challenge (Captcha) 跳出验证码

防火墙规则二


规则名: rule2
规则匹配:
1.标签1: known bots -> off
2.标签2: ip address != 8.8.8.8
行动: Challenge (Captcha) 跳出验证码

防火墙规则:威胁评分防御


(cf.threat_score ge 2 and not cf.client.bot)

防火墙规则:WP登录安全防御


 (http.request.full_uri contains "xmlrpc.php") or (http.request.full_uri contains "wp-login.php") or (http.request.full_uri contains "login.php")  or (http.request.full_uri contains "/wp-admin/" and not http.request.full_uri contains "/wp-admin/admin-ajax.php" and not http.request.full_uri contains "/wp-admin/theme-editor.php")

质询

防火墙规则:HTTP版本和UA


(http.request.method ne "GET" and http.request.method ne "POST") or (http.request.version eq "HTTP/1.0") or (http.user_agent eq "") 

质询

防火墙规则:搜索页防御


 (http.request.full_uri contains "/?s=") or (http.request.full_uri contains "/index.php?s=")

JS质询

防火墙规则:WP评论防御


(cf.threat_score ge 2 and http.request.uri.path eq "/wp-comments-post.php" and http.request.method eq "POST" )

质询

防火墙规则:asnum防御

(ip.geoip.asnum in {10026 10453 11351 11426 11691 12076 1215 1216 1217 12271 12334 12367 12874 12876 12989 131090 131106 131138 131139 131140 131141 131293 131428 131444 131477 131486 131495 132196 132203 132509 132510 132513 132591 132839 133024 133199 133380 133478 133492 133746 133752 133774 133775 133776 133905 133929 134238 134327 134760 134761 134763 134764 134769 134770 134771 134835 134963 135061 135290 135300 135330 135377 135629 137693 137697 137699 137753 137784 137785 137787 137788 137876 137969 138366 138407 138607 138915 138949 138950 138952 138982 138994 139007 139018 139124 139144 139201 139203 139220 139316 139327 139726 139887 140096 140596 14061 140701 140716 140717 140720 140723 140979 141157 14117 141180 14140 142570 14576 14618 149167 15169 16276 16509 16591 16629 17043 174 17428 17707 177453 177549 17788 17789 17790 17791 18013 18228 18403 18450 18599 18734 18978 195 19527 197099 19740 197540 198047 198651 199490 199506 199524 199883 200756 201094 201978 202053 20207 202675 203087 204601 204720 20473 20552 20554 206092 206204 206791 206798 207319 207400 207590 208425 208556 20860 209 211914 212708 213251 213375 21704 21769 21859 21887 22773 22884 23468 23724 23885 23959 23969 24088 24192 24424 24429 24940 2497 25429 25697 25820 25935 25961 26160 262187 263022 263196 263639 263693 264344 264509 26496 265443 265537 266706 267784 26818 269939 270110 27715 28429 28431 28438 28725 29066 2914 29286 29287 29802 30083 30823 31122 31235 31400 31898 32097 32098 3223 32505 3255 32613 3269 328608 3326 3329 34081 34248 34549 3457 3462 34947 35070 35212 35320 35540 35593 35804 35816 35908 35916 3598 36351 36352 36384 36385 36444 36492 36806 37963 37969 38001 38197 38283 38365 38538 38587 38588 38627 39284 394699 395003 395936 395954 395973 398101 40065 40676 40788 41009 41096 41264 41378 4184 4190 42652 42905 43289 43624 43989 45011 45012 45062 45076 45085 45090 45102 45102 45102 45103 45104 45139 45458 45566 45576 45629 45753 45899 45932 4637 46484 46844 4694 47232 47285 4755 4785 4788 47927 48024 48024 4816 4826 48337 4835 48905 49327 49588 49981 50297 50340 5056 50837 51852 52000 52228 52341 53089 54463 54538 54574 54600 54854 54994 55158 55330 55720 55799 55924 55933 55960 55967 55990 55992 56005 56011 5610 56109 5617 56222 57613 577 58073 58199 58461 58466 58519 58543 58563 58593 58772 58773 58774 58775 58776 58844 58854 58862 58879 59019 59028 59048 59050 59051 59052 59053 59054 59055 59067 59077 59374 60068 60592 60631 60798 61154 61317 61348 61577 61853 62044 62240 62468 62785 62904 63018 63023 63075 63288 63314 63545 63612 63620 63631 63655 63677 63678 63679 63727 63728 63729 63835 63838 63888 63916 63949 64050 6471 6584 6830 6876 6877 6939 7029 7224 7303 7489 7552 7684 792 793 794 8068 8069 8070 8071 8074 8075 8100 8220 8560 8881 8987 9009 9299 9312 9370 9534 9678 9952 9984})

补充CF安全设置

aaa: CF→安全性→设置→安全级别设置为:高

(这里不要打开打开I'm Under Attack!我受到攻击,因为这样就是任何请求会做人机验证,等待5秒钟:会掉收录,API无法通讯,需要写防火墙规则排除。)
质询通过期设置成:15分钟或者30分钟,严重可以设置5分钟(这里慎重设置,不要太低,不要太高!)
浏览器完整性检查:打开

bbb: CF→安全性→DDOS→HTTP DDoS 攻击防护,点右边的配置进入


规则集操作(必填)设置为:托管质询或者直接阻止(建议你在受到攻击的时候直接阻止)
规则集敏感度(必填)设置为:高

ccc: CF→安全性→自动程序:打开自动程序攻击模式


ddd: CF→安全性→WAF→速率限制规则,创建一条速率限制规则,规则如下:


(http.request.uri.path eq "/" and not cf.bot_management.verified_bot)

规则名称 (必需):自己填个

如果传入请求匹配…
字段 URL路径
运算符 选择“包含”
值 自己输入英文的:/

速率限制匹配运算符包含输入英文 / 是关键,也代表网站所有目录都匹配

则...
选择操作:阻止
响应类型为 :默认 Cloudflare 速率限制响应(响应类型为 :默认 Cloudflare 速率限制响应,这会告诉访问被阻止,跳转到CF速度限制阻止页面。如果您想告诉您的网站访客发生了什么可以自定义HTML,利用UTF-8编码自己写个中文页面。)

对于…
持续时间 (必需) 10秒
当速率超过…
请求 (必需)35
期间 (必需)10秒钟

请求:35 可以设置为25,但会影响正常用户,最好不要低于20。如果太低了,用户正常访问都会被阻止。如果您的网站是一个博客,我建议这里设置成50以上。如果你的网站类型有文字、有图片、有视频,这里不要低。如果你是CF付费版,建议用托管质询,而不是直接阻止。

日志收集处理


利用上面任意规则后,可以收集到CC攻击的代理IP
收集次数高于n次的IP可以直接添加到防火墙,拉入黑名单

评论


这个方法适合于共享黑名单.
最佳还是5秒盾,因为你还没有开始封禁,巨大的访问量已经到达你的主机

参考文章
https://developers.cloudflare.com/firewall/known-issues-and-faq/#how-can-i-use-the-threat-score-effectively
https://www.hostloc.com/thread-541043-1-1.html
https://hostloc.pw/thread-1094822-1-1.html
https://www.livelu.com/201811322.html

此处评论已关闭