我有一个文本文件中的 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
或者,您可以按照以下步骤操作:
- 创建一个新的文本文件并按照以下格式输入要阻止的 IP 地址,每行一个 IP 地址:
192.168.0.1
10.0.0.2
172.16.0.3
使用描述性名称(如“blocked_ips.txt”)保存文件。
登录您的 Cloudflare 帐户并导航到防火墙应用程序。
点击侧栏中的“工具”,并选择“IP 访问规则”。
点击“创建规则”并选择“阻止”。
在“IP 地址或范围”字段中,单击“上传文件”并选择您创建的“blocked_ips.txt”文件。
为规则选择一个描述性名称,然后单击“保存并部署”以将该规则应用到您的网站。
Cloudflare 现在将阻止来自“blocked_ips.txt”文件中列出的 IP 地址的所有流量。
我还没有尝试过任何方法,因此请确保先备份您的设置。