以文本文件形式阻止 Cloudflare 上的 IP 地址列表?

以文本文件形式阻止 Cloudflare 上的 IP 地址列表?

我有一个文本文件中的 IP 地址列表。我想通过 cloudflare 的防火墙和 IP 阻止功能阻止所有 IP 地址访问我的网站。例如,在我的文本文件中,我有

34.122.xxx.xxx
173.64.xxx.xxx
67.231.xxx.xxx
... 1000 more rows ...

我知道如果我去,我可以将它们每一个单独添加到 Cloudflare Security > WAF > Tools,但这似乎很乏味。

问题:

有没有办法将我的列表添加为文本文件或一个大块?

答案1

根据我在谷歌上找到的一些信息(这是 ebin.blog 存档网页,链接到 cs-cf 指向的脚本,该脚本目前在第一个站点上已损坏)。该站点提供了由 c.oyler 修改的 Python 脚本:

import re, sys
import requests
fhand = open ('ip_list.txt')
auth_key = '***'
auth_email ='***'
    
headers = {'X-Auth-Email': auth_email, 'X-Auth-Key': auth_key, 'Content-Type': 'application/json'}

for ip in fhand:
    data = str('{{"mode":"js_challenge","configuration":{{"target":"ip","value": "{0}"}} }}'.format(str(ip.strip())))
    r = requests.post("https://api.cloudflare.com/client/v4/zones/***/firewall/access_rules/rules",   headers=headers, data=data)
    print ip
    print r.content

或者,您可以按照以下步骤操作:

  1. 创建一个新的文本文件并按照以下格式输入要阻止的 IP 地址,每行一个 IP 地址:
    192.168.0.1
    10.0.0.2
    172.16.0.3
  1. 使用描述性名称(如“blocked_ips.txt”)保存文件。

  2. 登录您的 Cloudflare 帐户并导航到防火墙应用程序。

  3. 点击侧栏中的“工具”,并选择“IP 访问规则”。

  4. 点击“创建规则”并选择“阻止”。

  5. 在“IP 地址或范围”字段中,单击“上传文件”并选择您创建的“blocked_ips.txt”文件。

  6. 为规则选择一个描述性名称,然后单击“保存并部署”以将该规则应用到您的网站。

Cloudflare 现在将阻止来自“blocked_ips.txt”文件中列出的 IP 地址的所有流量。

我还没有尝试过任何方法,因此请确保先备份您的设置。

相关内容