最近发现有直接访问源站的请求,查了一下他们的域名直接指向的就是源站,可能是之前这个 IP 的用户吧。为了保险期间,我们希望只允许 CDN 访问,那么应该怎么做呢?
ToC
获取 IP 列表
我们使用了 Cloudflare 和 百度云加速,从本质上来看其实都是 Cloudflare(
百度云加速的 IP 列表在此;Cloudflare 的 IP 列表在此。
生成 firewall-cmd
规则
这里摸了个脚本:
1function generateRule(ips = [], services = ["http", "https"], ip_version = 4) {2 return ips3 .map(ip => {4 return services5 .map(6 service =>7 `sudo firewall-cmd --zone=drop --add-rich-rule='rule family="ipv${ip_version}" source address="${ip}" service name="${service}" accept' --permanent`8 )9 .join("\n");10 })11 .join("\n");12}
把对应的 IP 地址分好了塞进去就行了,非常的方便(
关闭开启的 http(s)
服务
接下来就是执行上面输出的结果了。然后我们需要关掉上一篇文章中启用的 http
和 https
服务:
1sudo firewall-cmd --zone=drop --remove-service=http --permanent2sudo firewall-cmd --zone=drop --remove-service=https --permanent
最后重载 firewalld
即可:
1sudo firewall-cmd --reload