使用CloudFlare WAF自定义规则保护网站

写在开头

  只要是建站,那就难免会被爬虫爬取整个网站,有一些是搜索引擎爬虫,我在网站设置了robots.txt,搜索引擎爬虫会根据文件之中的规则进行爬取。但其他就是恶意爬虫,寻找网站弱点,爬取网站重要消息。

常见爬取恶意爬取内容

  1. 登录页面:

    • /login/admin
    • 目的:进行暴力破解。
  2. 管理面板:

    • /admin/wp-admin(WordPress)、/dashboard
    • 目的:获取管理员权限。
  3. 用户数据:

    • /user/profile
    • 目的:进行社交工程或身份盗窃。
  4. 配置文件:

    • /config.php/config.ini
    • 目的:获取数据库连接信息和其他敏感配置。
  5. 搜索功能:

    • /search
    • 目的:探测网站的内容结构。
  6. 备份文件:

    • 常见备份文件名如 .bak.zip.tar
    • 目的:获取可能的敏感数据。
  7. 敏感文档:

    • .pdf.doc 文件
    • 目的:获取公司内部文件或用户信息。
  8. 脚本和API:

    • /api 或其他脚本文件(如 .php.js
    • 目的:探测网站操作相关的敏感逻辑。
  9. 常见漏洞路径:

    • /cgi-bin/ 或特定于应用程序的已知漏洞
    • 目的:利用已知漏洞。

预防措施

  • 使用 robots.txt: 指定允许和不允许爬虫访问的目录。
  • 访问控制: 对敏感目录和文件实施访问控制和身份验证。
  • 监控流量: 监控异常流量并及时采取措施,屏蔽恶意IP。
  • 安全扫描: 定期进行安全扫描,发现潜在的安全隐患并修复。
  • 应用防火墙: 使用WAF(Web Application Firewall)来过滤恶意请求。

  下面就介绍我使用CloudFlare设置WAF对网站机进行保护。

CloudFlare设置WAF

  点击进入需要设置WAF的网站,点击安全性。点击WAF,点击创建规则开始创建自定义规则。

我在网站上是创建了三天规则,分别是

  • 探针: 放行我自己监控探针进入;
  • SEO:放行搜索引擎爬虫;
  • 区域外质询:对存在恶意流量进行质询或者拦截。

创建SEO规则

  填写规则名称 –> SEO

  点击编辑表达式在表达式框之中填入下面内容,放行常见SEO爬虫,如有其他内容,自定义添加即可。

1
(cf.client.bot) or (http.user_agent contains "Googlebot") or (http.user_agent contains "Bingbot") or (http.user_agent contains "DuckDuckBot") or (http.user_agent contains "Baiduspider") or (http.user_agent contains "Yahoo! Slurp") or (http.user_agent contains "YandexBot") or (http.user_agent contains "360Spider") or (http.user_agent contains "Sogou Spider")

  选择操作之中选择跳过,放行搜索引擎爬虫;

  要跳过的组件之中全选,全部放行;

  放行位置选择顺序选择第一个

  点击部署完成设置。


创建质询托管规则

  填写规则名称 –> 质询托管

  点击编辑表达式在表达式框之中填入下面内容,拦截恶意流量。

1
(cf.threat_score ge 5 and cf.client.bot) or (not http.request.version in {"HTTP/2" "HTTP/3"}) or (not ip.geoip.country in {"CA" "CN" "FR" "DE" "HK" "JP" "KR" "MY" "SG" "TW" "GB" "US"})

  威胁分数设置为5,cloudflare判断是否拦截,5是比较合适,不会影响正常使用。只允许HTTP2HTTP3进行访问,允许常见的几个国家和地区进行访问,一些太过偏远的IP进行质询拦截。

  选择操作之中选择质询托管

  放行位置选择顺序选择自定义,规则在SEO之后。

  点击部署完成设置。


成果展示

  前往侧边栏安全性事件,可以看见自定义规则拦截或者放行的事件。



碎碎念

  本来我的小破站,每天也就十几、几十、上百访问量,大家随缘看看就好,好家伙,前段时间几个国外IP访问网站大几千次,也不是浏览文章,就是爬我网站/admin /wp-login登录页,疯狂爬取php和config文件,我这小破站,至于嘛……